Повторение последовательности сигналов


Главная / ЭКВМ / Программы для ЭКВМ / Игры
Вид электронной игры Simon

Одна из первых электронных игр, основанная на повторении последовательности сигналов - это Simon (евр. "услышанный"), выпущенная в 1978 году в США компанией Milton Bradley. В создании игры принимали участие Ralph H. Baer, Howard J. Morrison и Lenny Cope.

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

Особенности игры для ЭКВМ

Для ЭКВМ в 2013 г. автором Pavabor была разработана усовершенствованная игра (см.: http://mk_152.livejournal.com/50486.html ), частично напоминающая указанную и отличающаяся от неё рядом особенностей.

  • Отсутствует цветовое различие выделяемых экранных зон и клавиш. Ахроматическая сигнализация создаёт равные игровые условия для людей как с нормальным, так и с аномальным цветовосприятием.
  • Выделяемые экраны зоны пространственно не совпадают с нажимаемыми клавишами. Такой способ организации человеко-машинного интерфейса в большей степени соответствует типичной работе оператора пульта управления и отвечает целям выработки требуемых навыков.
  • Требуемый уровень громкости звука в МК-152 может быть настроен при помощи регулятора, расположенного в отсеке со стороны нижней части корпуса. Если звуковое сопровождение нежелательно, на любой модели ЭКВМ можно его отключить путём обнуления константы, записанной в адресах 149-151.




Игра

Игра ЭКВМ simon

Игра начинается сразу после запуска командами "В/О", "С/П". Необходимо запомнить предлагаемую последовательность и воспроизвести её при помощи нажатия на клавиши "-", "+", "÷" и "×".

Расположение клавиш на клавиатуре ЭКВМ аналогично расположению сигнальных полей на экране. Для справки, в левом верхнем углу каждого поля приведен символ соответствующий клавиши.

При правильном повторе размер последовательности возрастает. При ошибке происходит останов, в RX - длина текущей последовательности. Перезапуск программы выполняется клавишами "В/О", "С/П".




Программа

Текст игровой программы "Simon" приведён ниже и снабжён комментариями.

Файл программы simon3.mkp на ЯМК - 160 байт, КС 22229/19



	
.CHARSET1251
; SIMON
; -----
; ИГРА НА ПОВТОРЕНИЕ ЗВУКОВОЙ ПОСЛЕДОВАТЕЛЬНОСТИ
; ПОСЛЕ ОСТАНОВА: Х - МАКСИМАЛЬНОЕ КОЛ-ВО ШАГОВ (НА 1 БОЛЬШЕ ПОВТОРЁННЫХ)
; ЗАПУСК И ПЕРЕЗАПУСК: В/О С/П
; УПРАВЛЕНИЕ КНОПКАМИ: - / + *
; ПРИОРИТЕТ ОТДАВАЛСЯ КОМПАКТНОСТИ КОДА В УЩЕРБ ИНТЕРФЕЙСУ
; И ВСЁ РАВНО 2 СТРАНИЦЫ :)
; PAVABOR

	.OPT 1
	.ORG 0

	SETXY	.EQU 9000
	ATTR	.EQU 9001
	FONT	.EQU 9003
	SCROLL	.EQU 9007
	GRINI	.EQU 9010
	POINT	.EQU 9011
	LINE	.EQU 9012
	FBOX	.EQU 9013
	BOX	.EQU 9014
	DRAW	.EQU 9015
	EMIT	.EQU 9020
	TYPE	.EQU 9021	
	NPRINT	.EQU 9023
	KEY	.EQU 9029
	ADDR	.EQU 9041
	SOUND	.EQU 9052
	TIMER0	.EQU 9050


START:
	PGSB INI

BOXES:	
	GSB PREDRAW  
	RM5 KPRGM KME		; E - EMIT 
	KRM5
	FL0 BOXES

	RMD 1 - MD 		; В ДЕЛЬНЕЙШЕМ БУДЕМ РИСОВАТЬ ЗАКРАШЕННЫЕ КВАДРАТЫ
	3 PPM ATTR		; ПО XOR-У

MAIN:
	0 GSB BEEP1	; ПАУЗА-РАЗДЕЛИТЬЕЛЬ
	GSB WAIT
	PGSB RESRND 	; ПЕРЕЗАПУСК ГСЧ И СЧЁТЧИКА
SAY:			; ГОВОРИМ
	PGSB RND
	GSB SHOW
	FL1 SAY

	PGSB RESRND	; ПРЕЗАПУСК ГСЧ И СЧЁТЧИКА
LISTEN:			; СЛУШАЕМ
	PPRM KEY
	KNOT
	FX!=0 LISTEN 	; ИНВЕРТИРОВАННЫЙ НОМЕР КЛАВИШИ
	1 + 3 KAND 	; ПРЕОБРАЗОВАНИЕ ИНВЕРТИРОВАННОЙ КЛАВИШИ В НОМЕР ЧЕТВЕРТИ
	PGSB RND 
	-
	FX=0 STOP
	GSB SHOW
	FL1 LISTEN
	KRM6
	GOTO MAIN

STOP: 
	RM6
	R/S

SHOW:
	GSB PREDRAW
	GSB BEEP	; ПОКАЗЫВАЕМ И НАЧИНАЕМ ПИСК
	GSB DRAWB	; ЗАРАНЕЕ СТИРАЕМ НО НЕ ПОКАЗЫВАЕМ
WAIT: 	PPRM SOUND 	; ЖДЁМ ТИШИНЫ
	FX=0 WAIT
	K GRPH		; ПОКАЗЫВАЕМ СТЁРТОЕ
	RTN

PREDRAW:
	GSB TOXY	; ВЫЧИСЛЕНИЕ И ЗАДАНИЕ НАЧАЛА КООРДИНАТ	
	PPM SETXY
DRAWB:
	RMA RMB		; РАЗМЕР ПРЯМОУГОЛЬНИКА ДЛЯ ОТРИСОВКИ
	KMD		; ВЫЗОВ ПОДПРОГРАММЫ ОТРИСОВКИ
	RTN

TOXY:	1 GSB TOX 	;
	2   		; ХИТРОЕ ФОРМИРОВАНИЕ КООРДИНАТ R0 - МАСКА ЧЕТВЕРТИ ЭКРАНА *00 *01 *10 *11
TOX:	RM0 KAND RMA *	;
	RTN		;

BEEP:  	
	RM0 3 + RM9 *	; ПРИБЛИЖЕННОЕ ВЫЧИСЛЕНИЕ ЧАСТОТЫ ЗВУКА
BEEP1:  
	RMB		; ЗАДЕРЖКА
	PPM SOUND
	KGRPH		; ОБНОВЛЕНИЕ ЭКРАНА
	RTN

RND: 	RM7 11 * FPI + KFRAC M7 ; КЛАССИЧЕСКИЙ (ДЛЯ МК) ГСЧ - НУЖЕН ДЛЯ ПОЛУЧЕНИЯ ПОВТОРЯЕМОЙ ПОСЛЕДОВАТЕЛЬНОСТИ
	4 * KINT M0
	RTN

RESRND:
	RMC M7 RM6 M1	; РЕСТАРТ ГСЧ И СЧЁТЧИКА ШАГОВ
	RTN

INI: 
	Cx		; ИНИЦИАЛИЗАЦИЯ:
	1 M6		; СЧЁТЧИК МАКСИМАЛЬНОЙ ПОСЛЕДОВАТЕЛЬНОСТИ
	2 PPM GRINI	; ДИСПЛЕЙ
	K RAN MC	; ГСЧ
	9014 MD		; РЕГИСТР РИСОВАНИЯ РАМКИ/КВАДРАТА
	6 + ME		; РЕГИСТР ВЫВОДА СИМВОЛА
	32 MA		; БАЗОВЫЕ КООРДИНАТЫ
	2 * MB
	.NUMT CHARS 
	M5		; УКАЗАТЕЛЬ НА СИМВОЛЫ ДЛЯ ВЫВОДА
	110 M9		; МНОЖИТЕЛЬ ЧАСТОТЫ НОТ
	4 M0		; КОЛ-ВЛ ЧЕТВЕРТЕЙ ДЛЯ ПЕРВОНАЧАЛЬНОЙ ОТРИСОВКИ
	RTN	
CHARS:	.DB 45, 179, 176, 43

	.END

  0 1 2 3 4 5 6 7 8 9
000 P ПП 01 22 ПП 75 ИП 5 K ИПРГ K П E K ИП 5 F L0
010 03 ИП D 1 - П D 3 PP П 90 01 0
020 ПП 98 ПП 68 P ПП 01 17 P ПП 01 04
030 ПП 62 F L1 27 P ПП 01 17 PP ИП 90 29
040 K NOT F x≠0 37 1 + 3 K AND P ПП 01 04
050 - F x=0 60 ПП 62 F L1 37 K ИП 6 БП 19
060 ИП 6 С/П ПП 75 ПП 93 ПП 80 PP ИП 90
070 52 F x=0 68 K ГРФ В/О ПП 84 PP П 90 00
080 ИП A ИП B K П D В/О 1 ПП 88 2 ИП 0 K AND
090 ИП A × В/О ИП 0 3 + ИП 9 × ИП B PP П
100 90 52 K ГРФ В/О ИП 7 1 1 × F π +
110 K {x} П 7 4 × K [x] П 0 В/О ИП C П 7 ИП 6
120 П 1 В/О Cx 1 П 6 2 PP П 90 10 K СЧ
130 П C 9 0 1 4 П D 6 + П E 3
140 2 П A 2 × П B 1 5 6 П 5 1
150 1 0 П 9 4 П 0 В/О 2Dh B3h B0h 2Bh

НПП "СЕМИКО" (383) 271-01-25 (многоканальный)