Реализация классической игры "Ним" на основе автоматного подхода



© А. В. Яковлев, М. А. Лукин, А. А. Шалыто

Санкт-Петербургский государственный университет информационных технологий, механики и оптики

Проектная документация в формате PDF
Исполняемая программа (плюс все необходимые сторонние библиотеки)
Исходный код на языке Java (плюс проект для Eclipse и сборочные скрипты)
Расширенный пакет проектной документации (основная документация с приложениями)

Аннотация

Целью данного проекта является разработка реализации широко известной в мире игры "Ним" на основе SWITCH-технологии. По сравнению с имеющимися на момент публикации аналогами, только наш вариант содежит одновременно открытую проектную документацию (на двух языках), графический интерфейс (на двух языках) и открытый исходный код с комментариями (автоматы откомментированы на двух языках). В игре используются три автомата: управляющий, искусственного интеллекта оппонента и интерфейсный.

Искусcтвенный интеллект оппонента делает выбор оптимального хода при помощи оценки игровой позиции специальной функцией (функция Спрэга-Ганди), заданной конечным автоматом. Предусмотрена возможность игры в режиме обучения, в котором (как в "Го") оппонент дает фору в несколько ходов.

Опубликованный вариант позволяет играть в нескольких широко известных раскладках камней, таких как "Классическая", "Мариенбад" и т.д.

Запуск программы осуществляется batch-файлом run.cmd, в то время как сборка проекта из командной строки осуществляется файлом rebuild.cmd.