апрель 8, 2021

Mines+ MC10 by Fabrizio Caruso

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

ШАХТЫ+ MC10

для TRS-80 MC-10

Оригинальная идея игры от Фабрицио Карузо

Это стратегическая игра. Двигайтесь осторожно.

Вы находитесь на минном поле, где есть мины

- под ногами при движении и 

- вокруг вас (больше, если вы не двигаетесь)

Вы начинаете с 3 жизнями и 9 противоминными зарядами.

Вы можете очищать территорию вокруг себя с помощью противоминных зарядов, но вы можете нести не более 9 зарядов.

Если вы достигаете предмета "$", вы получаете дополнительный заряд противоминной защиты.

Поле имеет верхнюю и нижнюю границы. При достижении вы теряете все свои жизни. Левая и правая границы закругляются.

Количество мин, появляющихся вокруг вас, постоянно увеличивается.

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

Цели:

- Наберите максимально возможное количество очков, проходя по пустым позициям или собирая сборы "$"

- Не наступайте на мины или верхнюю и нижнюю границы.

- Достигните следующих 500 очков, чтобы получить дополнительную жизнь и полную перезарядку противоминных зарядов.

ОЦЕНКА:

- Зайти на пустую позицию: 1 балл

- Зайти в противоминный заряд "$": 10 баллов

ЭЛЕМЕНТЫ УПРАВЛЕНИЯ:

– Используйте I J K L для перемещения 

- Используйте ПРОБЕЛ, чтобы очистить близлежащую территорию (если у вас остались заряды)

РАСШИРЕННЫЙ КОД (?->ПЕЧАТЬ) 

0ON-((INKEY$="")И(J>0))GOTO0:CLS0:A=16384:O=A+95:P=A+271:M=35:K=1:FORI=0TOM:POKEO +RND(384),M:NEXT:IFJ>RTHENNR=J 1X=500:B=49151:Q=.98:G=O-95:H=106:W=100:V=3:T=32:Z=64:N=160:J=.:D=A +480:U=.0005:ПЕЧАТЬ@0,"ИСПОЛЬЗУЙТЕ IJKL ":IFINKEY$=""ПЕРЕХОД1 2POKEA+45,13:POKEA+46,9:POKEA+47,14:POKEA+48,5:POKEA+49,19:POKEA+50,43:FORI=0TO31:POKEO-I,255-T:POKED+ I, 255-T: СЛЕДУЮЩИЙ 3PRINT@0,"$"9-F;" "V" СЧЕТ:"J" HI:"R:POKEO-90,H:IFPEEK(P)=WTHENSOUNDZ,1:J=J+9:F=F+( Ф>0) 4POKEP,191:IFRND(0)>Q AND P>O+T THENPOKEP-6+2*RND(5)-Z*(RND(3)-2),M 5L=JAND3:A$=INKEY$:S=.:Y=.:IFA$<>""THENS=ASC(A$):E=SAND1:Q=Q-U 6C=S-75+E:POKEP,H:IFSGN(C)=CTHENY=1:POKEP,M:P=P+C*31*E+C:J=J+1:SOUNDT,1:IFJ>= K*XTHENSOUNDN,2:POKEB,Z:K=K+1:F=0:V=V-(V<9) 7V=-V*(PO):POKEG,W:G=O-95:POKEB,0:IF-YTHENIFL=3THENG=O+RND(384):POKEG,36 8IFS=TTHENIFF<9THENPOKEB,Z:POKEP-1,N:POKEP+1,N:POKEP-T,N:POKEP+T,N:F=F+1:POKEP,42:IFP>=(D-T)ОВП< =(О+Т)ПЕРЕХОД2 9ON-(V>0AND(PEEK(P)<>M))GOTO3:F=.:POKEP,H:V=V-1:SOUND1,2:ON-(V>0)GOTO3:PRINT@Z," ИГРА ЗАВЕРШЕНА":FORI=-XTOX:NEXT:GOTO0

ГЛАВНЫЕ ПЕРЕМЕННЫЕ

O в правом верхнем углу стены

D расположение внизу слева на стене

Позиция игрока P

Главный символ H (106 = ромб)

M мой символ (35 = перевернутый #)

W символ минной бомбы (100 = $)

Оценка J

Результат

F количество использованных минных бомб (минных бомб осталось = 9 - F)

Вероятность Q не создать поблизости дополнительную мину

Счетчик K для бонуса дополнительной жизни (следующая дополнительная жизнь = 500 x K)

Счетчик L по модулю 4 для генерации новых мин-бомб

V количество оставшихся жизней

Позиция G вновь сгенерированной случайным образом минной бомбы

Передний план экрана Bзарегистрироваться (49151)

Исходное расположение видеопамяти (16384)

ОБЪЯСНЕНИЕ КОДА

0

// Очистить экран и установить черный цвет

CLS0:

// Ожидаем нажатия клавиши, если игра была только что перезапущена (J>0)

ВКЛ-((INKEY$="")И(J>0))GOTO0:CLS0:

// Инициализировать переменные

A=16384:O=A+95:P=A+271:M=35:K=1:

// Инициализировать экран случайными минами

FORI=0TOM:POKEO+RND(384),M:NEXT:

// Обновить запись

IFJ>RTHENR=J

1

// Инициализировать переменные

X=500:B=49151:Q=.98:G=O-95:H=106:W=100:V=3:T=32:Z=64:N=160:J=.: Д=А+480:

// Отображаем инструкцию и ждем нажатия клавиши

PRINT@0,"ИСПОЛЬЗОВАТЬ IJKL ":IFINKEY$=""ПЕРЕХОД1

2

// Отображение MINES+ в инвертированных цветах

POKEA+45,13:POKEA+46,9:POKEA+47,14:POKEA+48,5:POKEA+49,19:POKEA+50,43:

// Отображаем верхнюю и нижнюю границу

FORI=0TO31:POKEO-I,255-T:POKED+I,255-T:ДАЛЕЕ

3

// Обновляем оценку и отображаем запись

PRINT@0,"$"9-F;" "V" ОЦЕНКА:"J" HI:"R:

ПОКЕО-90,Ч:

// Если игрок на $, то произведите звук, увеличьте счет на 9 (дополнительные очки после +1 за ход) и 

// увеличить доступные бомбы для разминирования, если еще не 9

IFPEEK(P)=WTHENSOUNDZ,1:J=J+9:F=F+(F>0)

4

// Кратковременно отображаем проигрыватель в виде красного прямоугольника для создания эффекта мерцания

ПОКЭП, 191:

// если случайным условием является попытка и позиция игрока не слишком близко к верху, то отображаем одну случайную мин.e вокруг игрока

IFRND(0)>Q AND P>O+T THENPOKEP-6+2*RND(5)-Z*(RND(3)-2),M

5

// L соответствует модулю 4

L=JAND3:

// Чтение ввода

A$=INKEY$:S=.:Y=.:IFA$<>""THENS=ASC(A$):

// Часть приёма ввода IJKL (см. [*] ниже): вычисление паритета (по вертикали и по горизонтали)

E=ПЕСОК1:

// Увеличиваем случайный шанс создания ближайших мин

Q=Q-.0005

6

// Часть трюка ввода IJKL (см. [*] ниже)

C=S-75+E:

// Показать проигрыватель

ПОКЭП,Ч:

// если нажата клавиша из I, J, K, L, то отобразить мою на позиции игрока, обновить позицию игрока, воспроизвести звук 

IFSGN(C)=CTHENY=1:POKEP,M:P=P+C*31*E+C:J=J+1:SOUNDT,1:

    // Если счет достигает следующего кратного K=500, то воспроизводится звук, все мины восстанавливаются и дается дополнительная жизнь

    IFJ>=K*XTHENSOUNDN,2:POKEB,Z:K=K+1:F=0:V=V-(V<9)

7

// Все жизни теряются, если игрок стоит на стене

V=-V*(PO):

// Показать новую анимацию шахты

ПОКЕГ,W:G=O-95:

ПОКЭБ,0:

// Если L равно 3 и игрок переместился, то генерируется новый $ (перезарядка минной бомбы)

IF-YTHENIFL=3THENG=O+RND(384):POKEG,36

8

// Если нажата клавиша пробела и осталась мина-бомба, то обезвредить мины на севере, юге, востоке и западе

// уменьшаем количество доступных минных бомб, отображаем игрока в виде перевернутого ромба, мигаем экраном и 

// если игрок был слишком близкоe на стену, перейти к строке 2, т.е. перерисовать стены

IFS=TTHENIFF<9THENPOKEB,Z:POKEP-1,N:POKEP+1,N:POKEP-T,N:POKEP+T,N:F=F+1:POKEP,42:

        

        // Если игрок был слишком близко к стене, переходим к строке 2, т. е. перерисовываем стены

        IFP>=(D-T)ORP<=(O+T)GOTO2

9

// Если игрок не умер, возвращаемся к строке 3 (основной игровой цикл)

ON-(V>0AND(PEEK(P)<>M))GOTO3:

// В противном случае отображаем игрока, уменьшаем количество жизней. Если остались жизни, перейдите к строке 3.

// В противном случае выводим "end", ждем пару секунд и возвращаемся к 0

F=.:POKEP,H:V=V-1:SOUND1,2:ON-(V>0)GOTO3:PRINT@Z,"            GAME OVER":FORI=-XTOX:NEXT:GOTO0

[ТРЮК] [*]

Я придумал этот трюк (сам) в 2019 году. Возможно, это новый трюк.

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

Я использую формулу интерполяции, которая вычисляет смещение от ASCII-кода нажатой клавиши.

Я использую особую симметрию кодов ASCII ключей I J K L:

- I и K имеют нечетные коды и расстояние 2 байта

- J и L имеют четные коды и расстояние 2 байта

– I и K имеют нечетные коды ASCII

- J и L имеют четные коды ASCII

Итак, если s=ASC(a$) с a$ либо I, либо J, либо K, либо L, мы обновляем позицию p с помощью

p=p+c*(31*e+1) 

где

- e=s и 1 -> четность кода, т. е. движение по вертикали и по горизонтали

- c=s-75+e -> -1 for влево/вверх против +1 вправо/вниз

- 31*e+1 -> абсолютное значение смещения по вертикали и горизонтали, т. е. 1 против 32

Как скачать Mines+ MC10 by Fabrizio Caruso через торрент

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

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