Игра "Цзяньшицзы" с двумя множествами предметов


Главная / ЭКВМ / Программы для ЭКВМ / БРП-4

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

Программа реализует игру, в которой одним партнером являетесь Вы - игрок (И), а вторым - калькулятор (К).

Исходные данные a1, a2 (число предметов в каждом множестве, определяемое игроком. Причем a1, a2 < 100, a1 ≤ a2) заносятся в ячейки памяти: a1 → П7, a2 → П8.

Результаты вычислений (оставшееся число предметов в каждом множестве) записываются в те же ячейки и отображаются на дисплее в виде числа a1a2, целая часть которого означает число предметов в первом множестве, дробная - число предметов во втором множестве (если в дробной части одна цифра, то во втором множестве количество предметов исчисляется целым числом десятков).

Инструкция по пользованию программой для МК-52 с БРП-4

  • 1. Наберите адрес 1032291 и введите программу, нажав клавиши А↑, ↑↓.
  • 2. Введите исходные данные.
  • 3. Включите счет, нажав клавиши В/0, С/П. Время вычисления около 4 с.
  • 4. Нажмите клавишу С/П - ход калькулятора. Время вычисления около 15 с. После окончания счета дисплей отобразит число предметов, оставшихся в множествах. Знак "-" слева от числа означает, что следующий ход игрока.
  • 5. Введите число оставшихся в каждом множестве предметов в соответствующую ячейку памяти (П7, П8) и включите счет, нажав клавишу С/П. Время вычисления около 4 с.
  • 6. Отображение на дисплее числа 0 означает конец игры.
  • 7. Для повторного запуска программы повторите пп.2-5.

Инструкция по пользованию программой для ЭКВМ

  • 1. Загрузите программу с нулевого адреса.
  • 2. Введите исходные данные.
  • 3. Включите счет, нажав клавиши В/0, С/П.
  • 4. Нажмите клавишу С/П - ход калькулятора. После окончания счета дисплей отобразит число предметов, оставшихся в множествах. Знак "-" слева от числа означает, что следующий ход игрока.
  • 5. Введите число оставшихся в каждом множестве предметов в соответствующую ячейку памяти (П7, П8) и включите счет, нажав клавишу С/П.
  • 6. Отображение на дисплее числа 0 означает конец игры.
  • 7. Для повторного запуска программы повторите пп.2-5.

Тестовый пример

a1 = 43, a2 = 86.

1) К : 43,70.

2) И : 42,70; К : 42,68.

3) И : 10,36; К : 6,10.

4) И : 6,08; К : 3,5.

5) И : 3,4; К : 1,2.

6) И : 1,1; К : 0.

Калькулятор выиграл.


Программа "Игра "Цзяньшицзы"

Программа 33 из блока расширения памяти БРП-4, переключатель "1/2" блока в положении "2", адрес 1032291.

Файл brp4-33.mkp (КС 7136/98)

  0 1 2 3 4 5 6 7 8 9
00 Cx 5 F √ 1 + 2 ÷ П 9 1 П 6
10 ИП 8 2 F 10x ÷ ИП 7 + × С/П ИП 6 F x≥0
20 08 ИП 7 ИП 8 - F x≠0 17 ИП 8 ИП 7 ИП 9 ×
30 - F x<0 47 ИП 8 ИП 7 - B↑ ИП 9 × K [x]
40 П 7 + П 8 1 /-/ БП 09 ИП 7 1 +
50 ИП 9 F x2 ÷ K [x] П 5 F Bx ИП 9 × K [x] П 4
60 ИП 9 × K [x] ИП 7 - F x=0 80 ИП 8 ИП 7 ИП 4
70 + П 8 - F x=0 43 ИП 8 1 - БП 42
80 ИП 7 П 8 ИП 5 - П 7 БП 43 0 0 0
90 0                  

Исходный текст для кросс-компилятора

Файл brp4-33.mkl

.CHARSET 1251

; БРП-4
; 33. Игра Цзяншицзы с двумя множествами предметов (2 - 1032291)

.ORG 0
	CX
	5 F SQRT
	1 +
	2 /
	M 9

A8:	 ; с адреса 19
	1

A9:	 ; с адреса 45
	M 6
	RM 8
	2 F 10^X /
	RM 7
	+
	*

A17:	 ; с адреса 24
	R/S
	RM 6
	F X>=0 A8
	RM 7
	RM 8
	-
	F X!=0 A17
	RM 8
	RM 7
	RM 9
	*
	-
	F X<0 A47
	RM 8
	RM 7
	-
	ENT
	RM 9
	*
	K INT
	M 7
	+

A42:	 ; с адреса 78
	M 8

A43:	 ; с адреса 73, 85
	1 +/-
	GOTO A9

A47:	 ; с адреса 31
	RM 7
	1 +
	RM 9
	F X^2
	/
	K INT
	M 5
	F ANS
	RM 9
	*
	K INT
	M 4
	RM 9
	*
	K INT
	RM 7
	-
	F X=0 A80
	RM 8
	RM 7
	RM 4
	+
	M 8
	-
	F X=0 A43
	RM 8
	1
	-
	GOTO A42

A80:	 ; с адреса 65
	RM 7
	M 8
	RM 5
	-
	M 7
	GOTO A43
	0000
.END 

Примечание. Считывание программ из БРП в МК-52 производилось блоками по 7 байт. Неиспользуемые команды в конце программы оставлены для совместимости и используются при подсчёте контрольной суммы.


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