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

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

квадраты разностей координат черного короля и других фигур целесообразно находить с помощью ПП: 00.ИП5 01.—

02. Fx2 ОЗ.ХУ 04.ИП4 05.— 06.Fx2 07.В/О (адреса условные), а перед обращением вызывать в нужном порядке координаты соответствующей белой фигуры, например, ИП7 ИП8 ПП и т. д. Это даст экономию еще в четыре команды. Если же использовать для вызова новой ПП освободившийся регистр В (обращение будет выглядеть, например, ИП7 ИП8 КППВ), освободятся еще три команды, всего девять, а это уже солидный резерв. В Вашем варианте не очень удобен ввод. Целесообразно, мне кажется, отвести регистры 1, 2 и 3 для хранения координат белых фигур в том виде, в котором Вы выводите координаты черного короля (например, el =51), сообщение Е50 в этом случае придется записать в регистр 0. Теперь при вводе (после С/П) достаточно вставить (адреса Ваши) 52. ПА. 53, КПА, а ввод производить так: (номер фигуры) ПП (номер поля) С/П. В КППВ придется теперь еще и «расчленять» новые координаты на прежние. Она может, скажем, начинаться с фрагмента: 00. стрелка вверх 01.ПА 02.ВП

03.— 04.FBx и далее: 05.ИП5 06.— 07.Fx2 08.ХУ 09.ИПД 10.Х 11.ИП4

12.— 13.Fx2 14.В/О (адреса, как и прежде, условные). Такая процедура займет шесть команд из сэкономленных девяти (две при вводе плюс семь в ПП, зато на обращениях — они теперь имеют вид ИП1 КППВ — экономится три команды). Осталось три команды плюс два свободных регистра (7 и 8); с этим запасом, думаю, можно еще что-нибудь сообразить. Например, сделать так, чтобы черный король при случае мог «скушать» и белого слона. На это, видимо, нужно пять команд: сзади к КППВ пристыковывается слон проверяется последним, после обращения к измененной КППВ вставляется проверка на равенство нулю и отсылка на индикацию хода, затем FBx — FBx — и Ваша проверка (Кх=^оД). Вставлено шесть команд, ушло две (команды по Вашим адресам 10 и 31), итого, четыре. Три уже есть, а если, например, вставить перед КПП9 команды ИП6 П4 (на адреса 01 и 02), ввести в регистр 9 число 3, а в 8 — единицу, заменить фрагмент 75—77 на КПП8, фрагмент 80—83 на КИП5 КПП8, легко экономятся еще две команды. Возможно, есть и другие варианты улучшения качества игры (допустим, чтобы ПМК отличал поле 88, где он проигрывает, от

LQ

> >v JCVjJ,

Консультант р*идяла Г«*рои Сгм«гч< кого Сою а летчик космонавт СССР Ю. Н. ГЛАЗКОВ

других). В общем, посмотрите, что можно еще сделать. За информацию о стеке подпрограмм спасибо, такой у нас пока не было. Кстати, если при любом его заполнении сформировать ЗГГОГ (например, 1 ВП 50 Fx2 Fx2 Сх), то команда В/О (в программе) при первом исполнении передаст управление на 01, при втором —на 11, а затем — снова на 01. Этим приемом можно пользоваться при полном заполнении стека, чтобы не выключать ПМК при переходе к новой программе (или при каком-нибудь неприятном зацикливании).

С уважением, дежурный администратор КЭИ».

«Уважаемые товарищи!

Спасибо за рекомендации по улучшению программы. Способа, которым вы разделяете координаты, я не знал. (Далее следует измененный вариант программы.— М. П.) Изменено начало перебора полей черного короля: 1 2 3. Изменена проверка выхода короля за пределы доски.

Теперь условие, что нельзя подставлять фигуры, можно заменить другим — если черному королю удастся «съесть» одну из фигур, игра сразу считается ничьей (согласно «Шахматному кодексу» остался король с легкой фигурой против одинокого короля). После хода черных нажатием клавиши ХУ можно узнать, сколько ходов еще можно сделать.

И все-таки, по-моему, проверка на «съедение» слона необязательна и лишь удлиняет время игры. Можно использовать этот резерв для улучшения игры черных. (Следует еще один вариант программы.— М. П.) В этом варианте черный король, попав на первую горизонталь (такое будет случаться часто), не будет топтаться на месте, сразу проверяется поле на пути к а 1 и не тратится время на проверку невозможных ходов. Этот вариант мне нравится больше. Программу можно сократить еще на две команды, но этого слишком мало. Проверку на взятие слона можно ввести в программу для МК-61, у которого память побольше (у меня такого нет). Возможно, удастся еще вместить перебор полей только по первому варианту перебора при нахождении черного короля на восьмой горизонтали.

Отличать поле Ь8 от других калькулятору не нужно, это игру черных не улучшит. В таком окончании белые фигуры оттесняют черного короля в угол, цвет поля которого противоположен

КЛУК электронных ИГР

4 «Техника — молодежи» № 12