Главстраница / Софт / 5K Шахматишки
ТОСТЕР
КТО МЫ?Написать письмо

5K Шахматишки

Д. К.

Не далее чем вчера мы рассказывали о победителях 5K Competition. Откроем секрет — мы утаили от вас нашу любимую конкурсную работу, которая, как ни странно, не заняла никакого призового места. Куда глядели судьи — непонятно. Мы говорим о 5K Chess.

Когда мы увидели в списке работ шахматы, то сразу решили, что это какая-то хохма, поскольку уместить хоть минимальный AI в 5120 байт казалось нам положительно невозможным. Тем большим было наше удивление, когда компьютер стал совершать осмысленные ходы. «Но это же всего лишь веб-страница!» — воскликнули мы и стали передвигать фигуры, пока минуты через четыре не обнаружили, что нам мат.

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

Пятикилобайтные шахматы написал Дуглас Багналл (Douglas Bagnall), программист из Новой Зеландии. Любопытное интервью с ним опубликовали WebReference News. Дуглас рассказал, что он хотел написать для конкурса какую-нибудь игру, сконцентрировавшись на программировании, с тем чтобы особо не возиться с интерфейсом и DHTML. Шахматы подошли идеально. При этом Дуглас планировал реализовать не сокращенный вариант игры, а абсолютно полноценные шахматы — с рокировкой, проведением пешки в ферзи и взятием на проходе.

Первоначальный код на javascript'е занял у Дугласа 30 Кб — с комментариями, отступами и удобными именами переменных и функций. Затем он приступил к тщательному ужиманию программы, присваивая всем переменным однобуквенные имена и вычищая все лишние символы — например, точки с запятыми и переводы строки. Окончательный размер 5K Chess — всего 5,088 Кб, и это вместе со всей графикой, которая уместилась в 600 байт. Результирующий код не в состоянии, наверное, понять ни один человек на свете, кроме самого Дугласа, — выглядит он следующим образом (поклонникам Страуструпа и ценителям ясных исходников лучше бы закрыть глаза):

Кроме всего прочего, 5K Chess играют на человеческой психологии: сначала игроку кажется, что это «просто жалкий javascript», и он проигрывает по невнимательности, а затем начинает искать за каждым ходом программы глубокие комбинации, которых подчас и нет. Для интересующихся людей сообщаем, что Дуглас использовал несколько модифицированный алгоритм альфа-бета поиска вкупе с небольшими случайными вариациями в начале партии. Если вы продержались ходов двадцать пять, то можете считать, что выиграли — в эндшпилях программа на сильна. Знающие люди дают 5K Chess 1000-1200 баллов по международной системе.

Браво, Дуглас!


Читать комментарии
Всего комментариев: 14, непрочитанных: 14
Copyright  ©  2001—2004 «Тостер»