апрель 6, 2021

Trick Shot TEN by Jim Happel

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

Базовый вкладыш 10

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

Trick Shoot-TEN

Категория:

ПУР-80

Компьютер/БАЗОВЫЙ:

Commodore PET 2001 BASIC 1 (исходные ПЗУ с ошибками)

Описание игры:

Соревнование по трюковой стрельбе! Поднимите мяч на нужную высоту, бросьте его на рампу и забросьте в корзину. По мере того, как вы делаете все больше и больше бросков, корзины становятся все меньше и появляются в более случайных местах. Сколько трюковых бросков вы можете сделать подряд?

Инструкции по игре:

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

Особенности игры:

- Отображает как текущий балл, так и высокий балл

– Увеличение сложности — корзина становится меньше, а расположение становится более случайным

– Истинные параболические расчеты

– Красивая графика PETSCII

– Уникальные игровые звуки движения мяча, подсчета очков и окончания игры.

Видео игры на настоящем ПЭТ 2001 (дизайн 1977 года):

Код:

Ни одна строка не длиннее 80 символов при вводе с использованием стандартных экранных кодов commodore и сокращенных команд.

- В VICE:

Список программ PET 2001 screen.png

– В ASCII с описанием кода экрана

0 POKE59466,15:POKE59467,16:L=(-10+S)*(10-S>0)+3:X=0:Y=12:T=24:IFB– В формате ASCII с сокращенными командами и описанием кода экрана 

0pO59466,15:pO59467,16:L=(-10+S)*(10-S>0)+3:X=0:Y=12:T=24:IFBПеременные:

Переменная, имя, описание

B, лучший, высокий балл

C, Char, Экранный код символа для печати на экране

H, H, значение формулы параболы

I, I temp, временная переменная цикла

J, J temp, временная переменная цикла

К, К, значение формулы Параболы

L, длина, длина корзины

O, Смещение, Смещение корзины слева

P, Позиция, Текущая позиция мяча в памяти экрана

S, Счет, Счет текущей игры

T, T Pos, Последнее нарисованное местоположение Y

X, X Pos, X местоположение для рисования персонажа

Y, Y Pos, Y место для рисования персонажа

Z, Z Pos, последнее нарисованное X местоположение

Как это работает:

Код сильно зависит от подпрограммы в строках 8 и 9, поэтому я начну с нее (по строке №):

8: рисует указанный символ (экранный код) C на экране в точках X,Y. Он также очищает (space=32) последнее место, нарисованное в (Z,T), чтобы анимация мяча не оставляла следов. GOSUB к строке 8 не возвращается, но переходит к строке 9 перед RETURN.

9: Воспроизведение короткого сигнала в зависимости от последней точки Y. В нем используется звуковая модификация CB2, которая была обычным хаком пользователей для PET 2001 — commodore принял это соглашение в более поздних PET. Символ, находящийся выше на экране (нижний Y), получает более высокий тон, так что дуга шара издает приятный звук подъема и опускания в зависимости от положения мяча. Строка 9 также вызывается напрямую, когда нужно воспроизвести звук без рисования.на экран (например, звуки подсчета очков и окончания игры)

0: Устанавливает звук CB2, вычисляет длину (L) для следующей корзины (цель), устанавливает X, Y на 0,12 и символ на 223 (наклон), и проверяет, если высокий балл (B ) необходимо обновить. Длина (L) должна уменьшаться на единицу в каждом раунде до 3, а затем оставаться на этом уровне. Поскольку commodore BASIC 1 не поддерживает ELSE в операторах IF THEN (нет L=L-1:IF L<3 THEN L=3 ELSE), необходимы инновационные средства. Уравнение (10-S>0) используется для остановки уменьшения на нуле. Он оценивается как ИСТИНА (-1) или ЛОЖЬ (0). Следовательно, если оценка равна 9 или меньше, (10-S>0)=-1; но если оценка 10 или более, (10-S>0)=0. (-10+S) начнется с -10 и начнет обратный отсчет (фактически вверх, поскольку он отрицательный) по мере увеличения счета (S). Примеры: Если S=0; (-10+S)*(10-S>0)=(-10)*(-1)=10. Если S=8; (-10+S)*(10-S>0)=(-2)*(-1)=2. Если S=11; (-10+S)*(10-S>0)=(1)*(0)=0. Добавлена ​​константа 3, чтобы ширина корзины не была меньше трех символов. Таким образом, ширина начинается с 13 и уменьшается до 3.

1: очищает экран и печатает высокий балл (B) и текущий счет (S), устанавливает наименьшую позицию Y (T) в безвредное значение для стирания в строке 8, вызывает процедуру в 8 для рисования символа рампы, присваивает C значение 102 (шахматная доска), вычисляет смещение (O) корзины (цели) от левого края экрана и вычисляет значение Y корзины (цели). Для смещения RND(0)*S создает случайное значение вплоть до текущего значения S и, следовательно, рандom размещение растет по мере роста вашего счета. Выполнение И с 15 ограничивает значение 15. Добавляется константа 9, так что смещения могут варьироваться от 9 до 24. Для значения Y RND(0)*S создает случайное значение вплоть до текущего значения S и, следовательно, случайный место растет по мере роста вашего счета. И с 7 ограничивает значение 7. Добавляется константа 14, так что значение Y корзины может варьироваться от 14 до 21.

2: FOR J циклически рисует две линии корзины (цель), FOR X рисует от смещения (O) до смещения плюс длина (O+L), последний Y устанавливается в безопасное место (T = 24), нарисуйте процедуру и петлю, увеличивая Y (следующая строка) между двумя петлями J. Устанавливает X, Y = 0,12, T = 24 (последний безопасный Y) и C = 81 и вызывает процедуру рисования, чтобы нарисовать мяч на рампе. Ждет пробел.

3: перемещает мяч вверх (Y-1), пока нажата клавиша пробела (PEEK(515)=6). ABS предотвращает превращение значения Y мяча в отрицательное число и создает веселое подпрыгивание в верхней части экрана. Третья строка короткая, но зацикливается на самой себе. Как только пробел будет отпущен, код упадет до строки 4.

4: Константы уравнения параболы (H.K) рассчитываются на основе значения Y, когда клавиша пробела была отпущена. Цикл FOR NEXT перемещает мяч обратно на рампу. Уравнение параболы было получено из: https://www.radfordmathematics.com/functions/quadratic-functions-parabola/vertex...

5: Теперь мяч движется по параболической дуге. X увеличивается на единицу, а значение Y равно cвычисляется по уравнению. ONSGN(22-Y)+2GOTO7 переходит к строке 7 (игра окончена), если значение Y мяча больше 22. Поскольку commodore BASIC 1 не поддерживает ELSE в операторах IF THEN (без IF Y>22 THEN 7 ELSE), нужны инновационные средства. SGN(22-Y) проверяет знак 22-Y. Когда он отрицательный (22> Y), он дает значение -1. ON разветвляется со значением 1. Таким образом, SGN(22>Y)+2 = -1+2 = 1, когда Y>22. ONABS(PEEK(P+40)-101)GOTO6 переходит к строке 6, когда символ под мячом представляет собой шахматную доску. PEEK(P+40) получает экранный код символа под мячом. Мы ищем 102, символ шахматной доски. ON разветвляется со значением 1. Таким образом, PEEK(P+40)-101=102-101=1, если символ под шаром представляет собой шахматную доску. Ошибка команды ON при отрицательных значениях, поэтому для защиты от этого используется ABS (например, пробел = 32, поэтому PEEK(P+40)-101=32-101=-69 без ABS).

<р>6. Это процедура подсчета очков. Эта строка выводит красивое сообщение, добавляет единицу к счету, устанавливает значение Y на что-то низкое (2), выполняет цикл FOR J, который вызывает звуковую процедуру 4 раза, уменьшая Y между циклами, создавая приятный чирикающий звук, сигнализирующий о счете, ждет для нажатия пробела, а затем GOTOs 0.

<р>7. Это игра над рутиной. Эта строка выводит сообщение о завершении игры, устанавливает значение Y в какое-то высокое значение (14), выполняет цикл FOR J, который вызывает звуковую процедуру, увеличивая Y в 12 раз между циклами, создавая уменьшающийся низкий звук, сигнализирующий об окончании игры.ждет нажатия пробела, устанавливает счет равным 0, а затем переходит к 0.

Как скачать Trick Shot TEN by Jim Happel через торрент

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

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