апрель 8, 2021

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=.thenifc=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 8ifx>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-z:pokea,g:goto5:elsegoto5 9pokee(o),73:print"{home}"spc(v)s$;j;h$;r" {светло-зелёный}lv{белый}"e:x=h:pokek+q,x:pokee( o),b:pokee(o)+t,v:e(o)=d+s+o+m:pokee(o),67:sound2,d,3,1,d,w,3,.: возвращаться

ОСНОВНЫЕ ПЕРЕМЕННЫЕ

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 запустится автоматически и предложит выбрать место для сохранения дистрибутива.
  • После того как репак скачается, запускайте его. Начнется установка и... это все, приятной игры!