Чего????? O_o
Пешка? Назад? ФИДЕ поменяла правила?
Из «нестандартных ходов» в современных шахматах встречаются:
1) Рокировка (короткая и длинная) — плюс надо отслеживать соблюдение условий рокировки.
2) Первый ход пешки — на одну или на две клетки.
3) Вытекает из второго — «взятие на проходе» (en passant).
4) Превращение пешки на последней горизонтали в любую фигуру, кроме короля (в том числе и ещё имеющуюся на доске — т.е. второй ферзь официально разрешён).
P.S. Понял — Вы имели в виду, что игра как раз даёт возможность сделать запрещённый ход.
Вообще-то, по правилам шахмат, не закрыться от шаха — это запрещенный ход (а не просто неразумный). Точнее, если королю объявлен шах, то допустимо либо закрыться, либо отодвинуть короля, либо убить нападающую фигуру. Как-то так.
Вы уж не ждите от этого умственного упражнения многого :) Там даже анализ ваших ходов не производится, получается, что компьютер видит ваши фигуры только в тот момент, когда рубит.
Мсье bolk, вы, наверное, и более качественную реализацию шахмат писали, причем более удобным способом? Может быть сделаете статью? Было бы интересно узнать из первых уст о создании шахмат. Хотелось бы услышать именно про взаимосвязь движка и оболочки (графического исполнения), да и про саму оболочку тоже.
Там в основном про движок — про отсечение ненужных вариантов. А вот про то, как этот алгоритм передвигает фигуры по доске редко пишут. Именно визуализация идеи (причем не только шахмат) и интересует.
Шахматы для шахматных оболочек я писал давным давно, там взаимодействие — текстовое через банальный ввод и вывод, который оболочка перенаправляет на себя, и может натравливать разные программы друг на друга.
Шахматы на чистом sed