март 16, 2022

Meteor Storm by Sioban

Добавить в
Мои игры
Торрент
Скачать

11-й конкурс BASIC 10 Liner Contest (2022 г.)

---------------------------------------------

Название игры: Meteor Storm

8-битный компьютер: C64

Язык: Commodore 64 BASIC V2

Категория: ПУР-80

Подкатегория: ДЕЙСТВИЕ (пристрели их)

Автор: Сиобан©2022

*** Я согласен, что программу можно немедленно опубликовать.

╔════════════════════════╗ ║************************║ ║***** МЕТЕОРНЫЙ ШТОРМ *****║ ║************************║ ╚════════════════════════╝

2332 год. Планете Вулкан Б угрожает рой метеоритов, прилетевших из глубокого космоса. Вам как флагману Звездного Флота поручено не допустить падения метеоритов на вашу планету и тем самым спасти ее от разрушения.

В вашем распоряжении суперпушка, которую вы можете ориентировать в разных направлениях прибытия метеоров. Оказавшись на позиции, у вас есть только один выстрел на каждый метеор. Но будьте осторожны, с увеличением уровня количество метеоров и их скорость также увеличиваются, поэтому вам придется выбирать, какой из них сбить первым!

┌─────────────────┐ │Запуск игры│ └────────────────┘

После некоторой инициализации через несколько секунд вы готовы спасти свою маленькую планету от роя метеоров!

Клавиша «R» для перемещения пушки по планете

[пробел] для запуска ракеты.

Помните... у вас только одна жизнь.

Удачи!

┌─────────────────┐ │Пояснение кода│ └────────────────┘

Описание переменной

<р> --------------------------------------------------------- ------

#имя #описание

Переменная, используемая для чтения ДАННЫХ (значение приращения)

B() Количество возможных позиций для каждого направления метеора

Строка B$, используемая для чтения ДАННЫХ (ячейки памяти)

C количество метеоров на экране (+1)

Приращение D для движения метеора

Флаг E(): начать движение каждого метеора

Переменная F для положения пушки

Флаг G и индекс положения ракеты

Переменная K для ASCII-кода нажатой клавиши

Уровень игры L

Константа L$ "LEVEL:"

Индекс позиции M() для каждого метеора

Константа O$ "ИГРА ЗАКОНЧЕНА"

Начальное направление P() для каждого метеора

Ячейки памяти Q(i,j) для положений метеоров в соответствии с направлением «i» и индексом положения «j»

Адрес цвета границы экрана R

Оценка S

Константа S$ "SCORE:"

Адрес тома V SID

Константа Z для кода ASCII 32

FN P(x) возвращает случайное число от 0 до x

FN Y(x) возвращает M(x), если M(x)>=0; 0, иначе

>>>[line0]:

L=-1 инициализирующая переменная для номера уровня

D=0,1 начального приращения движения метеора 

R=53280 адрес для цвета границы

V=54296 адрес для тома SID 

READ B$ прочитать строку DATA строки 6

O$="GAME OVER" понятная строка 

Матрица DIM Q(8,18) положений метеоров: (направление, положение)

ПОКЕР,0:POKER+1,0 устанавливает черный цвет рамки и фона

Цикл FORI=0TO7 для 8 направлений

>>>[строка1]:

Q(I,0)=VAL(MID$(B$,1+I*4,4)) первая позиция для каждого направления считывается непосредственно из строки B$

  (4 символа)

READ A,B(I) прочитать приращение позиции и количество позиций

  для каждого направления

FORJ=1TOB(I):Q(I,J)=Q(I,J-1)+A:NEXTJ,I для каждого направления вычисляет все ячейки памяти экрана

  (по приращению) и сохраняем их в матрицу Q. Расчет производится

  снаружи к центру экрана

  (ячейка памяти $05F3(#1523))

Z=32 присваивает переменной Z код ASCII для

>>>[строка2]:

PRINT"{CLR}": POKE1523,160 очищает экран и помещает "сплошной квадрат" в центр экрана  

(примечание: {CLR}=[SHIFT]+[CLR/HOME] )

DEF FN P(X) = INT(RND(.)*X) определяет функцию: получает случайное число от 0 до X-1

DEF FN Y(X) = -(M(X)>=0)*M(X) определяет функцию: получить M(X), если M(X)>=0, в противном случае 0

G=0 инициализировать флаг срабатывания

L$ = "УРОВЕНЬ: строка, не требующая пояснений

>>>[line3]:

POKE Q(P(C),FN Y(C)),Z удалить символ в позиции Q()

IF E(C)=0 THEN P(C)=FN P(8) выбирает случайное направление для c-го метеора (только в первый раз)

M(C) = FN P(4) - 4 индекс стартовой позиции c-го метеора (между -4 и -1)

E(C) = 1 разрешает движениеметеор 

S$="{HOME}SCORE: строка для отображения счета

(примечание: {HOME}=[CLR/HOME])

 

>>>[line4]:

M(C)=M(C)+D увеличивает положение c-го метеора

IF M(C)>=0 THEN POKE Q(P(C),M(C)),42, если метеор находится в видимой области 

  затем визуализируйте его (42 — это символ ASCII для '*')

IF M(C)>=B(P(C)) THEN PRINT SPC(255)O$:END, если метеор упадет на планету... ИГРА окончена

  (положение метеора превышает максимально допустимое)

>>>[line5]:

POKE Q(F,G),Z удалить последнюю позицию ракеты

POKE Q(F, B(F)),90 отобразить пушку

K=0 инициализировать переменную для получения символа

GET K$: IF K$ THEN K=ASC(K$), если нажат символ, его ASCII-код в K

IF K=Z AND G=0 THEN G=B(F), если [пробел] нажат, а выстрел еще не произошел,

  узнать направление пушки

>>>[line6]:

ЕСЛИ K=82 И G=0, ТО POKE Q(F,B(F)),Z, если нажата кнопка "R" и она еще не стреляла,

  очистить последнюю позицию пушки

F=-(F<7)*(F+1) если f<7, то f=f+1 иначе f=0 (всего 8 позиций)

DATA"10721083109415422015200319911504 строка данных для ячеек памяти (каждая из 4 цифр)

  для 8 стартовых углов

>>>[line7]:

IF G THEN G=G-1:POKE Q(F,G),46 если пушка выстрелила, переместите ракету в новое положение

ЕСЛИ F=P(C) AND M(C)>=G, ТОГДА POKE Q(F,G),Z уничтожить метеор, если произошло столкновение с ракетой

G=0:E(C)=0:S=S+100 снова включить пушку, сбросить положение метеора, увеличить счет

GOTO 9 переход на строку 9

>>>[line8]:

PRINT S$ S TAB(Z) L$ INT(L+1) распечатать счет и уровень в верхней части экрана

C=-(C

ПЕРЕЙДИТЕ 3, повторите цикл

DATA 41,10,40,10,39,10,-1,18,-41,11,-40,11 пары значений: приращение для каждого направления

  и общее количество позиций

>>>[line9]:

POKE R, 2 рамки красного цвета

ДЛЯ T=0 ДО 8: POKE V, FN P(15): СЛЕДУЮЩАЯ случайная громкость для получения звукового эффекта

D=D+0,025 метеор движется быстрее

L=L+.1 повышение уровня игры 

Цвет границы POKE R,0 снова черный  

GOTO 8 переход к строке 8

ДАННЫЕ -39,11,1,18 пар значений: приращение для каждого направления

  и общее количество позиций

 

Как скачать Meteor Storm by Sioban через торрент

Всего несколько простых шагов:

  • Устанавливаем программу μTorrent, через которую мы будем скачивать торренты
  • Выбираем и скачиваем подходящий торрент-файл репака Meteor Storm by Sioban
  • Двойным кликом открываем скаченный файл, программа μTorrent запустится автоматически и предложит выбрать место для сохранения дистрибутива.
  • После того как репак скачается, запускайте его. Начнется установка и... это все, приятной игры!