Написание очень маленькой шахматной программы

Написание очень маленькой шахматной программы
Написание очень маленькой шахматной программы

При программировании для современных платформ ограничения отличаются от тех, что были 30 лет назад. На заре эры микрокомпьютеров память и оперативная память измерялись в килобайтах. Просто не было возможности хранить большие объемы графических данных, и даже код иногда приходилось урезать. [reeabgo] обнаружил некоторые из этих ограничений на собственном опыте, когда писал крошечную шахматную программу для Sinclair ZX81.

Проект [reeabgo] носит название ChesSkelet и действительно крошечный. Размер самой маленькой версии программы составляет всего 377 байт, поэтому вся программа занимает меньше места, чем эта статья, описывающая ее. Для достижения этих подвигов, конечно, требуются определенные жертвы. Самое маленькое издание не содержит никакой графики, а представляет состояние игры простыми персонажами и не имеет никаких украшений. Полная версия имеет размер 477 байт и добавляет довольно много функций. Есть надлежащая шахматная доска, а также проверки законности ходов и превращение пешки.

К сожалению, продвинутая игра в шахматы не совсем возможна - рокировка не реализована, а ИИ пока не справляется с шаховыми ситуациями. Несмотря на это, это сильное приближение к реальной игре, упакованное во впечатляюще маленькое пространство.

В этих краях мы видим множество шахматных хаков, в том числе роботов.