The Horde II by Fabrizio Caruso
ОРДА II
Цель:
Защитите замок от нападения орды.
Постарайтесь набрать наибольшее количество очков и высший уровень.
Управление:
J (слева), L (справа), [пробел] огонь.
РАСШИРЕННАЯ ВЕРСИЯ (синтаксис CBM Prg Studio)
0poke52,48:poke56,48:clr:k=1944:d=1104:w=53272:z=56334:y=12288:fast:bank14:fora=yto12752:pokea,peek(a+40960):next:bank15 :reada$:дайм(40) 1t=54272:poke2604,peek(2604)and240or12:pokez,peek(z)and254:poke1,peek(1) and251:poke1,peek(1) or4:pokez,peek(z) or1:pokew,peek(w) и240или12 2h=66:q=20:s=40:color.,1:color4,1:fori=.to87:m=asc(mid$(a$,i+1))-1:m=m-62* (m=s):poke12816+i,m:next:slow:print"{светло-серый}{прозрачный}{светло-зелёный}орда ii":getkeyk$ 3z=80:e=1:m=0:v=15:b=32:g=68:fori=.to39:e(i)=d+i:pokek+t+i,2:pokek+s+ t+i,9:pokek+s+i,76:poked+i,67:next:s$="{cyan}score{white}":ifj>rthenr=j 4j=.:h$="{green} привет{белый}":gosub9:volv:data"{25}{45}{75}{75}{172}{158}{09}{21}{25} {37}{25}{41}{154}{25}{37}{41}{09}{29}{09}{09}{09}{09}{09}{21}{25}{37 }{67}{67}{190}{130}{01}{01}{1}{1}{1}{1}{25}{37}{25}{41}{154}{25}{ 37}{41}{1}{1}{1}{1}{25}{37}{154}{41}{25}{25}{37}{67}{25}{1}{154} {1} {25} {1} {37} {1} {1} {1} {1} {1} {1} {1} {25} {37} {25} {41} {154} {25. }{37}{41}{1}{1}{52}{52}{128}{76}{128}{128}{41}{128}" 5f=rnd(.)*s:c=e(f):pokec,70:pokec+s,71:::pokec,74:pokec+s,75:ifj>e*vthencolor4,3:sound3,y, 2,.,.,.,2:e=e+1:color4,1:ifeОСНОВНЫЕ ПЕРЕМЕННЫЕ
k: позиция самого нижнего левого игрока
q: смещение позиции игрока
e: уровень
m: (из строки 3) создано смещение стартовой линии противника
g: символ стрелки
f: индекс зомби
e(f): f-е положение смещения зомби относительно начальной строки
j: оценка
r: высокий балл
k$: ключ чтения
x: символ лука (66 для заряженного, 69 для незаряженного)
a: положение смещения стрелки
b: символ пробела (32)
h: персонаж с загруженным луком (66)
t: смещение цветовой памяти относительно оперативной памяти экрана
s: количество символов в строке (40)
ОБЪЯСНЕННЫЙ КОД
0
// Оставляем немного места, чтобы избежать конфликта с кодом BASIC
poke52,48:poke56,48:clr:
// Инициализируем
k=1944:d=1104:w=53272:z=56334:y=12288:
// Быстрый режим, чтение части набора ПЗУ и сохранение, начиная с 12288
fast:bank14:fora=yto12752:pokea,peek(a+40960):next:bank15:reada$:dime(40)
1
//
t=54272:poke2604,peek(2604)and240or12:pokez,peek(z)and254:poke1,peek(1) and251:poke1,peek(1) or4:pokez,peek(z) or1:pokew,peek(w)and240or12
2
// Инициализируем переменные
h=66:q=20:s=40:
// Устанавливаем черный цвет экрана
цвет.,1:цвет4,1:
// Считываем и устанавливаем 11 пользовательских символов.
// Примечание: специальная кодировка:
// 1. Добавляем 1 ко всем значениям, чтобы избежать 0 (этот символ невозможно будет редактировать)
// 2. используйте 41 для кодирования 103 (этот символ невозможно редактировать)
fori=.to87:m=asc(mid$(a$,i+1))-1:m=m-62*(m=s):poke12816+i,m:next:
// Устанавливаем медленный режим. Распечатайте название игры и дождитесь нажатия клавиши.
slow:print"{светло-серый}{прозрачный}{светло-зелёный}орда ii":getkeyk$
3
// Инициализируем переменные
z=80:e=1:m=0:v=15:b=32:g=68:
// Отображение зомби на второй верхней строке, отображение стены и установка цвета игровой зоны
fori=.to39:e(i)=d+i:pokek+t+i,2:pokek+s+t+i,9:pokek+s+i,76:poked+i,67:next :
// Инициализируем s$
s$="{cyan}score{white}":ifj>rthenr=j
4
// Инициализируем переменные
j=.:h$="{зеленый} привет{белый}":
// Отображение оценки
gosub9:
// Устанавливаем максимальную громкость
вольв:
// Графические данные, закодированные как «закодированные» символы. Кодировка гарантирует, что используются только редактируемые символы.
данные"{25} {45} {75} {75} {172} {158} {09} {21} {25} {37} {25} {41} {154} {41}{09}{29}{09}{09}{09}{09}{09}{21}{25}{37}{67}{67}{190}{130}{01}{01 }{1}{1}{1}{1}{25}{37}{25}{41}{154}{25}{37}{41}{1}{1}{1}{1}{ 25}{37}{154}{41}{25}{25}{37}{67}{25}{1}{154}{1}{25}{1}{37}{1}{1}{1}{1}{1}{1}{1}{25} {37}{25}{41}{154}{25}{37}{41}{1}{1}{52}{52}{128}{76}{128}{128}{41}{128 }"
5
// Выбираем случайного зомби
f=rnd(.)*s:c=e(f):
// Отображаем 1-й и 2-й кадр движущегося зомби
pokec,70:pokec+s,71:::pokec,74:pokec+s,75:
// Если достигнут новый уровень, то мигают цвета экрана, издается высокий звук, повышается уровень, если уровень ниже 15, то опускается стартовая линия респама зомби
ifj>e*vthencolor4,3:sound3,y,2,.,.,.,2:e=e+1:color4,1:ife 6 // Выбранный зомби отображается внизу e(f)=c+s:i=e(f):pokei-s,b:pokei,67: // Чтение клавиатуры. Если нажата клавиша J или L, вычислите новую позицию. Если новая позиция не выходит за линию, обновите позицию игроков. getk$:n=(k$="j")-(k$="l"):ifnthenc=q+n:ifc>=.thenifc 7 // Если зомби достиг стены, напечатайте «игра окончена», отобразите счастливого зомби, подождите 2 секунды, дождитесь нажатия клавиши, перейдите к 2 (перезапустите игру) ifi>=kthenprint"{home}{down}{red}игра окончена":pokei,72:sleep2:getkeyk$:goto2: // В противном случае проверьте, является ли нажатая клавиша пробелом, если это так, и если лук загружен стрелой, затем установите новую стрелку и издайте звук elseifk$=" "thenifx=hthenx=69:pokek+q,x:a=k+q-s:pokea,g:o=q:sound1,d,2,2,.,.,2,d< /п>
8 // [Эта часть сложна из-за того, как интерпретируется оператор ELSE.n BASIC V7, т. е. область действия не существует, все интерпретируется слева направо, поэтому, если условие IF ложно, программа переходит к следующему оператору ELSE.] // Если стрелка движется и достигла зомби, то отобразить мертвого зомби; короткая пауза (используйте для этого sin(9.9)); увеличить балл; // удаляем стрелку и переходим к процедуре на строке 9; перезапустить основной игровой цикл. // Если стрелка движется и не дошла до зомби, то переместите стрелку вверх. Перезапустите основной игровой цикл. // Если стрелка не движется, перезапускаем основной игровой цикл. ifx>hthenife(o)>=athenpokee(o),72:pokee(o)+t,2:zz=tan(9.9):j=j+1:pokea,b:gosub9:goto5:elseifx> hthenpokea,b:a=a-80:poKa,g:gO5:elsegO5 9 // [Процедура обновления оценок] // Отображение мертвого зомби pokee(o),73: // Отображение линии счета print"{home}"spc(v)s$;j;h$;r" {light green}lv{white}"e: // Перезарядка лука x=h:pokek+q,x: // Отображение взорванного зомби pokee(o),b:pokee(o)+t,v: // Сбрасываем позицию зомби e(o)=d+s+o+m:pokee(o),67: // Производим короткий шумовой звук sO2,d,3,1,d,w,3,.:возврат
Как скачать The Horde II by Fabrizio Caruso через торрент
Всего несколько простых шагов:
- Устанавливаем программу μTorrent, через которую мы будем скачивать торренты
- Выбираем и скачиваем подходящий торрент-файл репака The Horde II by Fabrizio Caruso
- Двойным кликом открываем скаченный файл, программа μTorrent запустится автоматически и предложит выбрать место для сохранения дистрибутива.
- После того как репак скачается, запускайте его. Начнется установка и... это все, приятной игры!