Fill the Box by RAX
10-строчный БАЗОВЫЙ
=============
Категория: ПУР-80
TITLE : Заполните поле
ПЛАТФОРМА: Oric Atmos
ЯЗЫК: БАЗОВЫЙ 1.1b
АВТОР : РАКС
КОД:
---------1---------2---------3---------4---------5 ---------6---------7-------- 0E$="####6I######'+'#'+#+'+'+##3%##+'S*####))_2_2))#### );S&S&);####A)AA/A/)##" 1F$="#$1@##Z^S#)#V+#++,#+###'%$=2%4/4####31<13131####)#3 \3#_B####+'Q@%3U3##" 2PING:LORES0:INK6:Q=14:W=6:D$=E$+F$:?@16,W+7;"Level:"L+1:PLOT15,4,"FillTheBox" 3POKE#26A,2:DEFFNC(X)=(DANDX)/X:GOSUB8:X=0:Y=5:P=23:REPEAT:PLOT14,W-2,P-16'''' 4K$=KEY$:E=X:R=Y:IFK$>""THENK=ASC(K$):X=X-(K=9)+(K=8):Y=Y-(K= 10)+(К=11)''''''' 5Z=SCRN(Q+X,W+Y):IFZ<>20THENX=E:Y=RELSEN=N-1:P=P+1:IFP>19THENP=18:M=N=0ORK=82 6PLOTQ+X,W+Y,P:WAIT9:PLOTQ+X,W+Y,17:UNTILM:IFK<>82THENL=L+1'''''''''''''''''' ' 7IFL<12THEN2ELSE:PLOT8,5,"Поздравляем! Вы выиграли!":END''''''''''''''''''''''' 8I=L*12+1:N=72:FORY=0TO5:FORX=0TO1:D=ASC(MID$(D$,I,1))-35:FORK=0TO5:C=FNC(2^K) 9IFCTHENC=23:N=N-1ELSEC=20:PLOTQ+X*6+K,Y+W,C:NEXT:I=I+1:NEXTX,Y:A$=KEY$:RETURNБЕГ
ИСТОРИЯ:
Это небольшая логическая игра. Цель — заполнить все поля (синие),
и нельзя наступать на уже заполненные места (красные). Клавиша «R» перезапустит уровень.
В игре 12 уровней.
ОБЪЯСНЕНИЕ КОДА:
----------------------------------------
0E$="####6I######'+'#'+#+'+'+##3%##+'S*####))_2_2))# ###);S&S&);####А)АА/А/)##"
E$="####6I######'+'#'+#+'+'+##3%##+'S*####))_2_2))# ###);S&S&);####A)AA/A/)##" - данные уровней
----------------------------------------
1F$="#$1@##Z^S#)#V+#++,#+###'%$=2%4/4####31<13131#### )#3\3#_B####+'Q@%3U3##"
F$="#$1@##Z^S#)#V+#++,#+###'%$=2%4/4####31<13131#### )#3\3#_B####+'Q@%3U3##" - данные уровней
----------------------------------------
2PING:LORES0:INK6:Q=14:W=6:D$=E$+F$:?@16,W+7;"Level:"L+1:PLOT15,4,"FillTheBox"< /п>
PING - небольшой звуковой эффект звонка
LORES0 - установить альтернативный текстовый режим 0
INK6 - установить голубые чернила
Q=14 - игровая площадка - начальная позиция x
W=6 - игровая площадка - начальная позиция y
D$=E$+F$ - объединяет данные уровня в одну переменную D$
?@16,W+7;"Level:"L+1 - вывести текущий уровень
PLOT15,4,"FillTheBox" — распечатать название игры
----------------------------------------
3POKE#26A,2:DEFFNC(X)=(DANDX)/X:GOSUB8:X=0:Y=5:P=23:REPEAT:PLOT14,W-2,P-16
POKE#26A,2 - остановить мигание курсора системы
DEFFNC(X)=(DANDX)/X - пользовательская функция C(X). вернуть один бит из байта (X = номер бита)
GOSUB8 - подпрограмма уровня печати
X=0 – начальная позиция x
Y=5 – начальная позиция
P=23- текущий цвет курсора
REPEAT – игровой цикл
PLOT14,W-2,P-16 - курсор печати
----------------------------------------
4K$=KEY$:E=X:R=Y:IFK$>""THENK=ASC(K$):X=X-(K=9)+(K=8):Y=Y- (К=10)+(К=11)
K$=KEY$ - получить ключ в K$
E=X - установить старую позицию X в E
R=Y - установить старую позицию Y в E
IF K$ > "" THEN - если клавиша нажата
K=ASC(K$) - получить число в формате ASCII
X=X-(K=9)+(K=8) - вычислить теперь x pos (при нажатии клавиши со стрелкой влево или разворота)
Y=Y-(K=10)+(K=11) - вычислить теперь y pos (при нажатии клавиши со стрелкой вверх или вниз)
----------------------------------------
5Z=SCRN(Q+X,W+Y):IFZ<>20THENX=E:Y=RELSEN=N-1:P=P+1:IFP>19THENP=18:M=N=0ORK=82
Z=SCRN(Q+X,W+Y) - переместить персонажа в новую позицию игрока (игровая площадка + игрок)
IF Z <> 20 THEN - если экранный символ не равен 20 (синий цвет)
X=E - x = старая позиция x
Y=R - x = старая позиция x
ЕЩЕ
N=N-1 - уменьшить свободные позиции счетчика игровой площадки на 1
P=P+1 - увеличить цвет курсора игрока
IF P > 19 THEN - если цвет курсора игрока больше 19 (20 — синий цвет, как в игровойд цвет)
P=18 - установите цвет курсора игрока на 18 (18 - зеленый цвет)
M = N=0 ИЛИ K=82 - установите M (переменный цикл) N == 0 (нет больше свободных мест на игровой площадке) или K == 82 (нажата клавиша 'R')
----------------------------------------
6PLOTQ+X,W+Y,P:WAIT9:PLOTQ+X,W+Y,17:UNTILM:IFK<>82THENL=L+1
PLOTQ+X,W+Y,P - распечатать цветной курсор проигрывателя
WAIT9 - ожидание 90 мс
PLOTQ+X,W+Y,17 - вывести курсор красного цвета
UNTIL M - игровой цикл
IF K<>82 THEN - если не нажата клавиша 'R'
L=L+1 - уровень повышения
----------------------------------------
7IFL<12THEN2ELSE:PLOT8,5, «Поздравляем! Вы выиграли!»:END
IF L < 12 THEN - если не пройти весь уровень
goto 2 - goto line 2
ЕЩЕ
СЮЖЕТ8,5,"Поздравляем! Вы победили!" - распечатать поздравление
END - конец
----------------------------------------
8I=L*12+1:N=72:FORY=0TO5:FORX=0TO1:D=ASC(MID$(D$,I,1))-35:FORK=0TO5:C=FNC(2 ^К)
I=L*12+1 - установить индекс
N=72 - все свободные места на игровой площадке
fory = 0to5- y петля
FORX=0TO1 - цикл X байт (данные игровой площадки содержатся в 2 байтахs для строки)
D=ASC(MID$(D$,I,1))-35 - получить один байт из строковых данных
FORK=0TO5 - цикл 6 бит
C=FNC(2^K) - получить текущий бит
----------------------------------------
9IFCTHENC=23:N=N-1ELSEC=20:PLOTQ+X*6+K,Y+W,C:NEXT:I=I+1:NEXTX,Y:A$=KEY$:RETURN р>
IF C THEN - если бит установлен
C=23 - c = 23 (белый цвет)
N=N-1 - уменьшить на один счетчик свободных позиций на игровой площадке
ЕЩЕ
C=20 - набор 20 (синий цвет)
PLOTQ+X*6+K,Y+W,C - распечатать текущую позицию игровой площадки
ДАЛЬШЕ
I=I+1 - увеличить индекс уровня строковых данных
NEXTX,Y
A$=KEY$ - принимает паразитную клавишу, если нажать ее во время рисования уровня
RETURN - возврат
Как скачать Fill the Box by RAX через торрент
Всего несколько простых шагов:
- Устанавливаем программу μTorrent, через которую мы будем скачивать торренты
- Выбираем и скачиваем подходящий торрент-файл репака Fill the Box by RAX
- Двойным кликом открываем скаченный файл, программа μTorrent запустится автоматически и предложит выбрать место для сохранения дистрибутива.
- После того как репак скачается, запускайте его. Начнется установка и... это все, приятной игры!