Главная Промышленная автоматика.

СПИСОЩс+Ю]:=6; СПИСОК[с+11]: =КР2; СПИС0Щс+12]:=-КР1; с: = с+13 end ХОДЫ РОКИРОВКИ;

Наконец, во внешнем блоке программы должно быть описание логических переменных, подобное следующему:

Boolean КОРОТКАЯ РОКИРОВКА БЕЛЫХ, ДЛИННАЯ РОКИРОВКА БЕЛЫХ,

КОРОТКАЯ РОКИРОВКА ЧЕРНЫХ, ДЛИННАЯ РОКИРОВКА ЧЕРНЫХ; а после метки НАЧАЛО должно быть присваивание этим переменным начальных значений в зависимости от того, какая из рокировок еще допускается*.

Дополнение 3 к алгоритму 50CJ

Ниже приведены операторы, обеспечивающие ввод таблиц дополнения 1 и исходной позиции задачи на мат в два хода... **

Для примера, приведенного на рис. 3, исходные данные должны поступать в читающее устройство в следующем порядке: 11

6 10 1 12 5 14 2 18 1 22 1 32 4 33 1 39 3 51 3 57 2 62 7

1 20 1 28 1 30 2 36 5 37 6 38 1 46.

Дополнение 4 к алгоритму 50CJ

Нижеследующая процедура печатает позицию с обозначением фигур, подобным изображенному на рис. 3,й...***

procedure ПЕЧАТЬ ПОЗИЦИИ; begin switch ФИГУРА:=П,К,С,Л,Ф,КР; for i:=56 step -8 until О do begin output ( ); for j: = l step 1 until 8 do begin output {BB); if ДОСКА БЕЛЬЩ!Н-j]=0 then

go to ЧЕРНАЯ else output (TV-f); go to ФИГУРА [ДОСКА БEЛЫXli-j]]; ЧЕРНАЯ: if ДОСКА 4EPHbIX[i-fj]=0 then

go to ПОЛЕ СВОБОДНО else output (T,*-); go to ФИГУРА[ДОСКА 4EPHbIXii-f j]]; output {Т,П ); go to НОВОЕ ПОЛЕ; output (TVKl j); go to НОВОЕ ПОЛЕ; outputCTVCuj); go to НОВОЕ ПОЛЕ; output {Т,*Л ); go to НОВОЕ ПОЛЕ; output(T,©i j); go to НОВОЕ ПОЛЕ;

* Кроме указанных здесь А. Беллом операторов для выполнения рокировки нужны еще « другие изменения в программе. См. ниже «Свидетельство к алгоритму 50CJ». (Прим. ред.)

** Здесь эти операторы опущены, поскольку в алгоритме 50CJ они вставлены (в переработанном для системы БЭСМ - АЛГОЛ [29] виде) в ошоиную лрограмму, начиная с метки «ВВОД ТАБЛИЦ»: и до межи «НАЧАЛО»: (Прим. ред.)

*** Процедура ПЕЧАТЬ ПОЗИЦИИ приведена здесь в переработанном для системы БЭСМ - АЛГОЛ 129] и яесколвко модифицированном виде. (Прим. ред.)



КР: output (Т.КР); go to НОВОЕ ПОЛЕ;

ПОЛЕ СВОБОДНО: output(ZBDB,0); НОВОЕ ПОЛЕ: end j end i; output ( ) end ПЕЧАТЬ ПОЗИЦИИ;

Таблица замены в алгоритме 50CJ английских идентификаторов русскими *

abishop - СЛОНОМ

aking -КОРОЛЕМ

aknight-КОНЕМ

apawn - ПЕШКОЙ

aqeen - ФЕРЗЕМ

агоок -ЛАДЬЕЙ

back to -ОБРАТНО К

bishop -ТАБЛИЦА СЛОНА

black king side - РОКИРОВКА ЧЕРНЫХ

black king side castle - КОРОТКАЯ РОКИРОВКА ЧЕРНЫХ

blackmen -ДОСКА ЧЕРНЫХ

blackpiece -ПОЛЯ ЧЕРНЫХ

black queen side -ДЛИННАЯ ЧЕРНЫХ

black queen side castle - ДЛИННАЯ РОКИРОВКА ЧЕРНЫХ

bpawn -ТАБЛИЦА ЧП

Ы-41

Ь2 -42

сап castb bk side - ВОЗМОЖНА КОРОТКАЯ ЧЕРНЫХ

сап castle bq side - ВОЗМОЖНА ДЛИННАЯ ЧЕРНЫХ

сап castle wk side - ВОЗМОЖНА КОРОТКАЯ БЕЛЫХ

сап castle wq side - ВОЗМОЖНА ДЛИННАЯ БЕЛЫХ

cant castle bk side - HE ВОЗМОЖНА КОРОТКАЯ ЧЕРНЫХ

cant castle bq side - HE ВОЗМОЖНА ДЛИННАЯ ЧЕРНЫХ

cant castle wk side -HE ВОЗМОЖНА КОРОТКАЯ БЕЛЫХ

cant castle wq side -HE ВОЗМОЖНА ДЛИННАЯ БЕЛЫХ

castle -ХОДЫ РОКИРОВКИ

castling - РОКИРОВКА

continue - ПРОДОЛЖЕНИЕ

cutoff - ПРЕРЫВАНИЕ

depth -УРОВЕНЬ

empty -ПОЛЕ СВОБОДНО

en passant - НА ПРОХОДЕ

entry -НАЧАЛО

from - ОТ

hismen - ДОСКА ЧУЖИХ hispiece-ПОЛЯ 4УЖИХ illegal move - НЕЗАКОННЫЙ ХОД kfrom -КР1

king -ТАБЛИЦА КОРОЛЯ

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



knight -ТАБЛИЦА коня

knightorking-ТАБЛИЦА КОНЬКОР

knightorkingmove -ХОДЫ КОНЯ И КОРОЛЯ

kto -КР2

Hst -ФИГУРА

listmoves - ОБЗОР ХОДОВ

locate -НОМЕР

makemove-ВЫПОЛНЕНИЕ ХОДА

moveof -К ХОДАМ

moves -СПИСОК

mymanin - СВОЯ ДОСКА

тушеп -ДОСКА СВОИХ

mypiece -ПОЛЯ СВОИХ

new direction -НОВОЕ НАПРАВЛЕНИЕ

nextman - ДАЛЕЕ

Tiotstalemat -ШАХ ЧЕРНЫМ

numberofmoves - РУБЕЖ ХОДОВ

opponents - ЧУЖАЯ ДОСКА

pawn-ТАБЛИЦА ПЕШЕК

pawncapture -ВЗЯТИЕ ПЕШКОЙ

piece - СВОИ ПОЛЯ

pointer - р

printblack-ЧЕРНАЯ printposition - ПЕЧАТЬ ПОЗИЦИИ reversemove - ВОЗВРАТ ХОДА rfrom-Л1

rook -ТАБЛИЦА ЛАДЬИ rook - НОМЕР ЛАДЬИ * rookorbishop -ТАБЛИЦА СЛОНЛАД rookorbishopmove - ХОДЫ СЛОНА И ЛАДЬИ rto - Л2

See Appendix 2 -CM ДОПОЛНЕНИЕ 2 See Appendix 4 - CM ДОПОЛНЕНИЕ 4

See Appendix 4 in order to - CM ДОПОЛНЕНИЕ 4 ДЛЯ ВЫПОЛНЕНИЯ sp -НОВОЕ ПОЛЕ square - ПОЛЕ startat -РУБЕЖ

terminate-КОНЕЦ РОКИРОВКИ THE ANSWER - ОТВЕТ theend - КОНЕЦ to -НА

white king side - РОКИРОВКА БЕЛЫХ

white king side castle - КОРОТКАЯ РОКИРОВКА БЕЛЫХ

whiteorblackpawnmove - ХОДЫ ПЕШЕК

wpawn-ТАБЛИЦА БП

white queen side -ДЛИННАЯ БЕЛЫХ

white queen side castle - ДЛИННАЯ РОКИРОВКА БЕЛЫХ

white men -ДОСКА БЕЛЫХ

whitepiece - ПОЛЯ БЕЛЫХ

wl -Б1

. * В алгоритме 50 идентификатор rook употребляется в разных блоках в двух разных смыслах. {Прим. ред.)





0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 [35] 36 37 38 39 40 41 42 43

0.0016