Игра "Лабиринт"


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

лабиринт программы 43 БРП-4

Вам необходимо найти выход из лабиринта. Как это сделать?

Предположим, что лабиринт состоит из нескольких помещений, соединенных проходами, один из которых ведет к выходу из лабиринта. Если вы оказались в помещении, которое имеет два выхода (1 и 2), наугад выберите один. В следующих помещениях Вы уже по определенной системе (например, по часовой стрелке) исследуете все проходы, пропуская отмеченные ранее как тупиковые или пройденные.

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

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

Результаты вычислений записываются в ячейки памяти: множество номеров пройденных проходов - в ячейку ПD, множество тупиков - в ячейку ПС. Номер прохода в следующее помещение отображается на дисплее.

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

  • 1. Наберите адрес 1196084 и введите программу, нажав клавиши А↑, ↑↓.
  • 2. Введите 0 в регистры С и D.
  • 3. Введите исходные данные.
  • 4. Включите счет, нажав клавиши В/0, С/П.
  • 5. Повторяйте пп. 3,4, пока на дисплее не отобразится 0, что значит выход найден.

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

  • 1. Загрузите программу с нулевого адреса.
  • 2. Введите 0 в регистры С и D.
  • 3. Введите исходные данные.
  • 4. Включите счет, нажав клавиши В/0, С/П.
  • 5. Повторяйте пп. 3,4, пока на дисплее не отобразится 0, что значит выход найден.

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

Вы попали в помещение с двумя входами в лабиринт. Для наглядности на рисунке показан план лабиринта, хотя по условию игры он не известен. Как найти выход из лабиринта, показано в таблице.

Возможные проходы Время счёта на МК-52, с Выход из лабиринта
1,2 15 1
3,41 18 3
5,3 22 5
5 9 5
5,3 15 3
3,41 35 4
6,74 30 6
9,86 4 0

Программа "Игра "Лабиринт"

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

Файл brp4-43.mkp (КС 9082/160)

  0 1 2 3 4 5 6 7 8 9
00 П 7 K ИП 7 F O ИП 7 - П 4 ИП 7 9 - F x≠0
10 75 ИП 4 F x≠0 67 ИП C П 8 K ИП 8 F O ИП 8 -
20 ИП 7 ИП 8 - F x≠0 52 F O F x≠0 33 1 0
30 × БП 15 ИП D П 9 K ИП 9 F O ИП 9 - ИП 7
40 ИП 9 - F x≠0 52 F O F x≠0 58 1 0 ×
50 БП 34 ИП 4 1 0 × БП 00 ИП D 1
60 0 ÷ ИП 7 + П D БП 74 ИП C 1 0
70 ÷ ИП 7 + П C ИП 7 С/П БП 00 0 0
80 0 0 0 0            

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

Файл brp4-43.mkl

.CHARSET 1251

; БРП-4
; 43. Игра "Лабиринт" (2 - 1196084)

.ORG 0

A0:	 ; с адреса 56, 76
	M 7

A1:	 ; с адреса 46
	K RM 7
	F R
	RM 7
	-
	M 4
	RM 7
	9 -
	F X!=0 A75
	RM 4
	F X!=0 A67
	RM C

A15:	 ; с адреса 31
	M 8
	K RM 8
	F R
	RM 8
	-
	RM 7
	RM 8
	-
	F X!=0 A52
	F R
	F X!=0 A33
	10 *
	GOTO A15

A33:	 ; с адреса 26
	RM D

A34:	 ; с адреса 50
	M 9
	K RM 9
	F R
	RM 9
	-
	RM 7
	RM 9
	-
	F X!=0 A52
	F R
	F X!=0 A58
	10 *
	GOTO A34

A52:	 ; с адреса 23, 42
	RM 4
	10 *
	GOTO A0

A58:	 ; с адреса 45
	RM D
	10 /
	RM 7
	+
	M D
	GOTO A74

A67:	 ; с адреса 12
	RM C
	10 /
	RM 7
	+
	M C

A74:	 ; с адреса 65
	RM 7

A75:	 ; с адреса 9
	R/S
	GOTO A0
	000000
.END 

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


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