Номера фрагментов шахматных фигур.

Компьютер играет в шахматы

Разработка шахматной программы — задача достаточно сложная (см. книгу: Адельсон-Вельский Г. М., Аргалазов В. Л., Битман А. Р., Донской М. В. «Машина играет в шахматы». М., «Наука», 1983 г.). Поэтому воспользуемся готовой программой вычисления хода (ПВХ) в заданной позиции. ПВХ не содержит средств диалога с игроком и потому должна обслуживаться сервисной программой (СП), которую и предстоит нам подготовить. Возможно, кому-то захочется написать такую программу самостоятельно, но для этого надо знать правила взаимодействия ПВХ и СП (рис. 1).

Рис. 1. Схема алгоритма взаимодействия сервисной и шахматной программ.
Рис. 1. Схема алгоритма взаимодействия сервисной и шахматной программ.

ПВХ занимает ячейки 2000 — 2ECF (см. таблицу 1) и использует еще область 3000 — 32FF. Следует учесть, что во время работы программы она перемещается в начало ОЗУ, а после вычисления очередного хода содержимое этой части памяти восстанавливается. Передача параметров ПВХ и обратно осуществляется через ОЗУ.

Параметры, передаваемые от СП к ПВХ

1. Позиция кодируется таблицей 12288 [3000] из 64 байт (рис. 2).

Рис. 2. Кодировка шахматной доски в начальной позиции. Компьютер играет черными фигурами. Для смены цвета достаточно поменять местами королей и ферзей и считать поля в обратном направлении.
Рис. 2. Кодировка шахматной доски в начальной позиции. Компьютер играет черными фигурами. Для смены цвета достаточно поменять местами королей и ферзей и считать поля в обратном направлении.

Коды фигур

Фигуры компьютера

02 — пешка
04 — конь
06 — слон
08 — ладья
0А — ферзь
0С — король

Фигуры игрока

82 — пешка
84 — конь
86 — слон
88 — ладья
8А — ферзь
8С — король

00 — пустое поле

2. При вызове ПВХ с адреса 11852 [2Е4С] в ячейки 11910 [2Е86] — 11913 [2Е89] надо записать ход игрока. Ходу Е2Е4 соответствует:

Ходу Е2Е4 соответствует

3. Содержимое ячейки 12748 [31СС] определяет уровень игры и соответственно время, необходимое компьютеру на вычисление обратного хода. Значения этого параметра могут быть 0, 1, 2.

Рокировку должна выполнять СП. Это можно сделать следующим способом. Записать в таблицу (рис. 2) позицию, из которой нужная позиция получается после какого-либо хода короля или ладьи, и этот ход передается ПВХ.

Параметры, передаваемые от ПВХ к СП

1. Позиция на доске (см. рис. 2).

2. Ответный ход компьютера в ячейках 12744 [31С8] — 12747 [31СВ]. На ход Е2Е4 компьютер ответит Е7Е5:

компьютер ответит Е7Е5

Кроме того, возможны следующие ответы:

00 00 00 00 — ошибочный ход, 09 09 00 00 — рокировка, 09 09 09 00 — рокировка.

3. Ячейка 11917 [2E8D] дает дополнительную информацию: (11917) = 2 — шах.

Убедиться в работе ПВХ можно с помощью Монитора:

Убедиться в работе ПВХ можно с помощью Монитора

Предлагаемая СП написана на расширенном БЕЙСИКе (см. «М-К» № 6 за 1988 г.). Чтобы освободить место в ОЗУ для ПВХ, надо изменить содержимое ячеек:

0243 = 01
0244 = 39
1744 = 00
1745 = 39.

Изображения шахматных фигур, изготовленных с помощью «графического редактора» (см. «М-К» № 8 за 1988 г.), надо теперь разместить в свободной части ОЗУ. Присвоим фрагментам номера в соответствии с рисунком 3.

Следующая программа (таблица 2) устанавливает параметры соответствующих фрагментов (их размер 24×24 и расположение в ОЗУ).

После выполнения программы содержимое таблицы атрибутов графических фрагментов будет таким (таблица 3).

Далее с помощью новой программы (таблица 4) прочитаем с магнитофона изображения фигур и поместим их в соответствующее место ОЗУ.

В строке 50 задается размер фрагмента (24X24) для программы чтения с магнитофона. В строке 60 читается очередной фрагмент (появляется в левом верхнем углу экрана). Далее вводится номер фрагмента (рис. 3), и все повторяется для всех фигур. Операторы 20 и 40 подготавливают белые и черные поля.

Компьютер играет в шахматы

Компьютер играет в шахматы

Компьютер играет в шахматы

В дальнейшем эти две программы не понадобятся.

Результат можно проверить с помощью оператора PLOT X, Y, N, где N — номер соответствующего фрагмента.

Читатели, которых больше интересует конечный результат, чем сам процесс создания программы, могут ввести коды фигур с помощью Монитора (таблица 5).

Если ПВХ и изображения фигур размещены в ОЗУ, можно набрать сервисную программу (таблица 6).

После ввода сервисной программы места в младшем блоке ОЗУ практически не остается, поэтому пользоваться оператором REM не рекомендуется.

После запуска программы инициализируется ПВХ (строка 15), рисуется шахматная доска, и программа ожидает ввода уровня игры.

Введите число 1, 2 или 3. Ход игрока объявляется нажатием клавиши «пробел» после установки курсора в нужном месте. Отменить неправильно указанный ход можно клавишей <2>. Клавиша <1> запускает программу с начала. Для выполнения рокировок служат клавиши <3> и <4>.

Готовую гибридную программу надо записать на ленту с помощью Монитора:

с помощью Монитора

Дополнительные изменения в БЕЙСИКе упростят пользование программой:

0004 = 54—10
0054 = 21—89—05—Е3—С3—АВ—06

Автоматический запуск программы.

0589=AF—00—00
05E5=AF—00—00

Блокировка клавиатуры.

А. ВОЛКОВ, г. Днепродзержинск, Днепропетровская обл.

Рекомендуем почитать

  • МОДЕЛИСТ-КОНСТРУКТОР 1989-01МОДЕЛИСТ-КОНСТРУКТОР 1989-01
    СОДЕРЖАНИЕ: Организатору технического творчества: В.Бакин. Одна, но пламенная (1). Общественное КБ «М-К»: И.Стома. Летящие по снегу (3). Резонанс: (6);...
  • САМЫЕ МЛАДШИЕ ИЗ «МЕРСЕДЕСОВ»САМЫЕ МЛАДШИЕ ИЗ «МЕРСЕДЕСОВ»
    Компактные автомобили MERCEDES-BENZ А-класса. Слухи о создании концерном Mercedes-Benz необычного автомобиля гольф-класса начали циркулировать в автомобильной прессе еще в начале 90-х...
Тут можете оценить работу автора: