Техника - молодёжи 1986-12, страница 55

Техника - молодёжи 1986-12, страница 55

* 2 3 4 5 6 7 8

в программе константы, команд переходов и подпрограммы, оставляя содержимое регистра У неизменным. К сожалению (к этому мы уже успели привыкнуть) , и это полезное свойство осталось неосвещенным на страницах заводской инструкции.

В данном случае команда «точка» эквивалентна ИП1 и ни к какой экономии не приводит Зато легче будет понять работу этой команды, записанной по адресу 64. Пойдем дальше. Команда С/П останавливает ПМК для индикации координат черного короля. Команды ввода 09—10 записывают заданный номер фигуры (допустим, 4) в регистр 7 и вносят новую координату в соответствующий регистр (в нашем случае 4). Команды 11—27 осуществляют перебор вариантов хода черного короля по одной из двух схем: 678 876 594 495 123 321

— которые меняются ход от хода. Последним, как видим, проверяется исходное поле, на котором стоит король. Если и этот ход невозможен (поле под боем), команда по адресу 28 вызывает на индикатор сообщение ЗГГОГ: ходить ьекуда, мат.

При переборе полей используется основная подпрограмма, расположенная на адресах 29—83. Начальных адресов у нее три: 29 (КППА), 32 (КППВ), 33 (КППС); то или иное обращение используется в зависимости от ситуации. К основной подпрограмме сзади «пристыкована» подпрограмма КППД (84— 97); в программе не хватило места, чтобы поставить после адреса 83 команду В/О. Действие подпрограммы рассмотрим на примере первого обращения (11-12).

Команда КИП1 (И) переносит черного короля на следующую горизонталь: например, с 8-й на 7-ю. Команда КППВ (12) эквивалентна ПП 32. Первая команда подпрограммы вызывает содержимое регистра 8, а его знак меняется ход от хода. Допустим, там —10; это число складывается с новым содержимым регистра 1 — король пошел «вниз-влево». Блок 35—38 заносит новую координату короля в регистр I, «срезает» первую цифру (нестайдартно используется команда ВП), а вторую заносит в регистр 2. Равенство последней нулю соответствует выходу короля

за нижнюю либо левую границу доски (кроме поля 00 — оно проверяется особо) . Если такое случилось, команда перехода (39) передает управление на В/О (97), а та возвращает его на адрес 13, и начинается проверка очередного хода. Если же все в порядке, фрагмент 40—42 проверяет выход за верхнюю границу доски, 43—44 — на фиктивное «поле» 00, 45—46 — за правую границу. Если все в порядке, наступает очередь проверок битых полей.

Первой «к барьеру» вызывается координата белого короля (47). Тут же следует обращение КППД — к вспомогательной подпрограмме (84—97), после возврата из которой в регистре У оказывается квадрат разности вертикальных координат черного и белого королей, в регистре X — то же для горизонтальных координат. Эти величины суммируются (49); если сумма равна нулю (совпадение координат), значит, белые ошиблись, на своем ходе вплотную придвинув своего короля к королю противника. Команда 50 модифицирует содержимое регистра 0 (там был ноль) в —99999999, и управление передается на последние две цифры числа: адрес 99 короткой побочной ветви (при игре с Б3-34). Исполняется дубль-команда -т- (адрес 01), на индикаторе выскакивает ЕГГОГ. При игре с МК-61 происходит модификация 2 в 1 с теми же последствиями.

Если проверка завершилась успешно, из полученной суммы вычитается тройка; если результат отрицателен, ход запрещен — короли сближаются вплотную (51—53).

Затем наступает очередь коня (54— 59). Из суммы квадратов разностей вертикальных и горизонтальных координат вычитается 5 — легко видеть, что «ход конем» соответствует именно этому значению.

Проверка слона (60—83) начинается по той же схеме (60—61). Команды 62—64 заносят в регистр 2 модуль разности горизонтальных координат слона и черного короля, затем восстанавливают стек. Далее следует проверка того, не стоит ли король на одной из простреливаемых слоном диагоналей (65—66). Если нет, то такой ход возможен (все проверки закончены) и управление передается на адрес 00 для индикации новых координат черного короля. В противном случае циклом 67—83 проверяются все поля, разделяющие черного короля и слона: не стоит ли на одном из них король или конь белых? Если да, ход опять-таки допустим, управление передается на адрес 00 При совпадении координат слона и черного короля (слон «съеден») содержимое регистра 2 еще до входа в цикл равно нулю и команды 80—81 выводят на индикатор ЕГГОГ. Если же диагональ полностью свободна, цикл заканчивается, затем «вхолостую» отрабатывает КППД (84—97), ход невозможен, и ПМК начинает обдумывать следующий. И все повторяется.

_L0

ПОЗДРАВЛЯЕМ ПОБЕДИТЕЛЕЙ

Подведены итоги первого в истории космонавтики массового перелета по маршруту Луна — Земля на электронных лунолетах системы «Кон-Тики». Победителями признаны следующие участники астропробега:

1. Александр АРТАМОНОВ (г. А п-р е л е в к а Московской области)

2. Александр АУЛА (г. Запоро-ж ь е).

3. Андрей ДОЛГАЛЛО (г. Л е н и н-

г р а д).

4. Анатолий КОЛОСОВ (сПышуг Костромской области).

5. Юрий КУЗНЕЦОВ (г. К у й б ы-

ш е в).

6. Вадим ЛАДОХИН (г. Сургут Тюменской области).

7. Лев РОКАНИДИ (г.Сызран ь).

8. Сергей СВИНОЛОБОВ (г. Д н е п-ропетровск).

9. Павел ТРУБАЕВ (г. Белгород). 10. Валерий ШИЛОВ (г. Ярославль).

Все они награждены дипломами имени Юрия Гагарина, с чем мы их от всей души поздравляем.

Многие читатели в своих письмах высказывают справедливый упрек: КЭИ в своих публикациях игнорирует расширенные возможности новых моделей ПМК — МК-61 и МК-52. Действительно, наличие семи лишних команд и одного дополнительного регистра позволяет, например, легко до'биться того, чтобы ПМК в патовой ситуации выдавал на индикатор ЕГГОГ. Для этого достаточно между командами 07—08 вставить фрагмент: 08.ИП0 09.— lO.-f-11. ИП1 12.ПО, команду по старому адресу 50. Кх=5*=о0 заменить двумя Fx^fco 01, в конце основной подпрограммы (после старого адреса 83) поставить В/О. Вот и все изменения, не считая того, что из-за сдвига адресов перед игрой вводится другой комплект исходных данных: 34 ПА 37 ПВ 38 ПС 0 ПЕ ПО 91 ПД 1 ВП 50 Fx2 Fx2 90 X П9 50 ПЗ 10 /—/ П8. А для утешения владельцев Б3-34 и МК-54 сообщаем, что на их ПМК можно в любой момент игры передать очередь хода черным: Сх С/П.

В заключение администрация КЭИ объявляет Николаю Авдееву благодарность и выражает надежду, что предложенные идеи помогут читателям в разработке собственных шахматных игр: мат ферзем, ладьей, двумя слонами и даже (да простят нас профессионалы) двумя конями!

Михаил ПУХОВ С Новым годом!

КЛУБ ЭЛЕКТРОННЫХ ИГР