The Snake Temple by RAX
10-строчный БАЗОВЫЙ
=============
Категория: ПУР-80
НАЗВАНИЕ : Змеиный храм
ПЛАТФОРМА: Oric Atmos
ЯЗЫК: БАЗОВЫЙ 1.1b
АВТОР : РАКС
Код:
---------1---------2---------3---------4---------5 ---------6---------7-------- 0D$="$$$b$$$b$$$b,bGb#%###3###+7+7Ea?#1>aS1$a#Ab#Vbb##/#AP/5V" :A=#B507:INK6''' 1FORI=1TOLEN(D$):K=ASC(MID$(D$,I,1))-35:POKEA+I,K:NEXT:DEFFNR(X)=INT(RND(1)*X) 2DIMD(999):O=37:B=161:FORI=0TO36:D(I)=B:D(I+888)=B+1:T=INT(I*.65)*O:D(T )=B'''' 3D(T+36)=B:NEXT:PAPER0:H=8:FORY=2TO23STEP2:FORX=2TO34STEP2:D(X+Y*O)=B:R=FNR(5) 4D=(R=0)-(R=1)+O*(R=2)-O*(R=3):D(X+Y*O+D)=B:NEXTX,Y:FORI=0TO924 :T=D(I):?".";'' 5IFT=BANDD(I+O)=0THENT=162ELSEIFT=0THENT=FNR(3)+35ELSE:D(I)=T:NEXT:Y=FNR(22)+2 6D(O+1+FNR(35)+FNR(20)*O)=38:X=FNR(35)+2:CLS:REPEAT:GETK$:Q=X:W=Y:K=ASC(K $)''' 7Y=Y+(K=11)-(K=10):X=X+(K=8)-(K=9):IFD(X+Y*O)>99THENX=Q:Y=WELSE:B=X +Y*O:Z=D(Б) 8H=H-2*(Z=36)+(FNR(3)+2)*(Z=O):FORG=-1TO1:FORL=-1TO1:PLOT2+X+L,Y+G,D(B +Л+Г*О)' 9NEXTL,G:D(B)=35:PLOTX+2,Y,39:?@2,25;"HP:"H:UNTILZ=38ORH<1:ZAP:IFH>0THEN?"WIN"БЕГ
ИСТОРИЯ:
Вы — юный герой по имени Бокко, который отправился на поиски сокровищ в Храме Змей.
Среди лабиринта туннелей находится сундук с сокровищами, который вы должны найти. В храме полно змей
так что будьте осторожны!. Змея наносит урон от 1 до 4 единиц здоровья. Каждая найденная фляга восстанавливает 2 очка здоровья.
Используйте клавиши со стрелками для управления Бокко. Веселиться:)
ОБЪЯСНЕНИЕ КОДА:
----------------------------------------
0D$="$$$b$$$b$$$b,bGb#%###3###+7+7Ea?#1>aS1$a#Ab#Vbb##/#AP /5V":A=#B507:INK6'''
D$="$$$b$$$b$$$b,bGb#%###3###+7+7Ea?#1>aS1$a#Ab#Vbb##/#AP /5V" - данные символов
A=#B507 - начальный адрес изменяемых символов
INK6 - установить голубой цвет символов
----------------------------------------
1FORI=1TOLEN(D$):K=ASC(MID$(D$,I,1))-35:POKEA+I,K:NEXT:DEFFNR(X)=INT(RND(1)*X )
FORI=1TOLEN(D$) - изменение символов
K=ASC(MID$(D$,I,1))-35 - получение данных из D$
POKEA+I,K - изменить строку символа
ДАЛЬШЕ
DEFFNR(X)=INT(RND(1)*X) – определить пользовательскую функцию R для генерации случайных чисел
----------------------------------------
2DIMD(999):O=37:B=161:FORI=0TO36:D(I)=B:D(I+888)=B+1:T=INT(I*.65)*O: D(T)=B''''
DIMD(999) - лабиринтный массив
O=37 - ширина лабиринта
B=161 – символ кирпича (33) с установленным битом 7 для инверсии цветов
FORI=0TO36 - создание границ лабиринта
D(I)=B - установить верхнюю границу
D(I+888)=B+1 - установить нижнюю границу
T=INT(I*.65)*O - вычисление левой вертикальной границы
D(T)=B - установить левую границу
----------------------------------------
3D(T+36)=B:ДАЛЕЕ:PAPER0:H=8:FORY=2TO23STEP2:FORX=2TO34STEP2:D(X+Y*O)=B:R=FNR(5)
D(T+36)=B - установить правую границу
ДАЛЬШЕ
PAPER0 - установить черный цвет фона
H=8
FORY=2TO23STEP2 - создать лабиринт
FORX=2TO34STEP2
D(X+Y*O)=B - установить кирпич
R=FNR(5) - получить случайное число от 0 до 4
----------------------------------------
4D=(R=0)-(R=1)+O*(R=2)-O*(R=3):D(X+Y*O+D)=B:NEXTX,Y: FORI=0TO924:T=D(I):?".";''
D=(R=0)-(R=1)+O*(R=2)-O*(R=3) - получить направление для установки следующего случайного кирпича
D(X+Y*O+D)=B - установить случайный кирпич
NEXTX,Y
FORI=0TO924 - заменяет стандартный кирпич в лабиринте на другой для более нарядного вида :), а также устанавливает колбу и змей
T=D(I) - получить текущий символ в позиции
?"." - Распечатать "." на экран, чтобы увидеть, как выполняется какая-то обработка
----------------------------------------
5IFT=BANDD(I+O)=0THENT=162ELSEIFT=0THENT=FNR(3)+35ELSE:D(I)=T:NEXT:Y=FNR(22)+2
IF T=B AND D(I+O)=0 THEN - если в текущей позиции находится кирпич и под ним пустое место, то
T=162 - установить новый кирпич в T
ЕЩЕ
ЕСЛИ T=0 THEN - если это только пустой блок, то
T=FNR(3)+35 - задается в T случайный символ между (35-37) (земля, колба, змея)
ЕЩЕ
: - ничего
D(I)=T - установите измененное значение в лабиринте
ДАЛЬШЕ
Y=FNR(22)+2 - получить случайную позицию Y для игрока
----------------------------------------
6D(O+1+FNR(35)+FNR(20)*O)=38:X=FNR(35)+2:CLS:REPEAT:GETK$:Q=X:W=Y:K= ASC(K$)'''
D(O+1+FNR(35)+FNR(20)*O)=38 - поместить сундук в лабиринт (символ 38)
X=FNR(35)+2 - получить случайную позицию X для игрока
CLS - чистый экран
REPEAT - игровой цикл
GET K$ - получить ключ в k$
Q=X - старая позиция X
W=Y - старая позиция Y
K=ASC(K$) - получить ascii-номер для нажатой клавиши
----------------------------------------
7Y=Y+(K=11)-(K=10):X=X+(K=8)-(K=9):IFD(X+Y*O)>99THENX=Q:Y=WELSE: B=X+Y*O:Z=D(B)
Y=Y+(K=11)-(K=10) - вычислить новую позицию Y
X=X+(K=8)-(K=9) - вычислить новую позицию X
IFD(X+Y*O)>99 ТОГДА- если в новой позиции есть кирпич, то
X=Q - вернуть старую позицию в X
Y=W - вернуть старую позицию в Y
ЕЩЕ
: - ничего
B=X+Y*O - вычисление новой позиции игрока в массиве лабиринта
Z=D(B) - принимает символы, находящиеся в текущей позиции игрока.
----------------------------------------
8H=H-2*(Z=36)+(FNR(4)+1)*(Z=O):FORG=-1TO1:FORL=-1TO1:PLOT2+X+L,Y+G, Д(Б+Л+Г*О)'
H=H-2*(Z=36)+(FNR(4)+1)*(Z=O) - расчет здоровья игрока с символом в позиции игрока
(если это пуля, то добавьте 2, а если змея, то здоровье уменьшится от 1 до 4)
FORG=-1TO1 - вывести цикл области проигрывателя 3х3
FORL=-1TO1
PLOT2+X+L,Y+G,D(B+L+G*O) - вывести текущий символ лабиринта
----------------------------------------
9NEXTL,G:D(B)=35:PLOTX+2,Y,39:?@2,25;"HP:"H:UNTILZ=38ORH<1:ZAP:IFH>0THEN?"WIN"< /п>
NEXTL,G
D(B)=35 - устанавливает наземный шарат в лабиринт (удаляет змей и колбы, когда игрок проходит мимо них)
PLOTX+2,Y,39 - проигрыватель печати
?@2,25;"HP:"H - print plaтвое здоровье на экране
UNTIL Z=38 OR H<1 - выполните игровой цикл, пока Z=38 (взять сундук) или H<1 (у игрока нет здоровья)
ZAP - небольшой звуковой эффект
IF H>0 THEN - если игрок здоров, то
?"WIN" - напечатайте «WIN»
Как скачать The Snake Temple by RAX через торрент
Всего несколько простых шагов:
- Устанавливаем программу μTorrent, через которую мы будем скачивать торренты
- Выбираем и скачиваем подходящий торрент-файл репака The Snake Temple by RAX
- Двойным кликом открываем скаченный файл, программа μTorrent запустится автоматически и предложит выбрать место для сохранения дистрибутива.
- После того как репак скачается, запускайте его. Начнется установка и... это все, приятной игры!