Решил переосмыслить оригинальную идею Александра В. Катапанга младшего (Alexander V. Catapang Jr.), реализованную в шахматном тренажёре «Guess-Chess» из пакета логических игр «eGames» (1997-й год). Получившуюся программу вначале обозвал «Загадочные шахматы» («Riddle chess»), но поскольку не ограничивается только индийскими шахматами, и есть дополнительно тайские макрук (makruk), китайские сянци (xiangqi) и японские сёги (shogi) — стала «Генератором загадок» («Divine generator»).
Игра заключается в угадывании расположения фигур на доске, исходя из количества обозначенных угроз на клетках. В оригинальной версии поддерживаются только классические шахматы. При этом фигуры изначально располагаются на доске, могут конфликтовать и являться препятствиями, что несколько затрудняет разгадку.
— Что это? — вытянул шею Гмык, хмуро глядя на мои карты. — Но тут же только…
— Минутку, — вмешался игрок слева от него. — Сегодня вторник. Выходит, его единороги дикие.
— Но в названии месяца есть «М»! — вякнул еще кто-то. — Значит, его великан идет за половину номинальной стоимости!
— Но у нас четное число игроков…
Я вам говорил, что игра эта сложная.
Роберт Асприн «Маленький мифо-заклад»
То был славный день. День, когда генералы Севера и Юга могли решить все свои проблемы. Две армии изготовились к бою. Впереди, прикрываемые щитами, двигались колесницы. Сразу вслед за ними, шла пехота и кавалерия. Стрелки, артиллерия и боевые слоны замыкали строй. Элитные бойцы шагали рядом с генералом.
Уже довольно давно мы с моим другом Gorkoff увлекаемся игрой в сёги. Причем увлекаемся настолько, что решили написать собственного бота для этой замечательной игры. Данная статья является дальнейшим описанием процесса разработки бота, которым мы, с некоторыми перерывами, занимаемся уже несколько месяцев.
Не так давно я увлёкся игрой в сёги. К сожалению, эта чудесная игра практически не известна в России, поэтому пока я не научил играть друзей, мне приходилось играть с программой. Конечно, мне было интересно, как эта программа работает.
Ниже представлен небольшой рассказ о компьютерных алгоритмах, используемых в интеллектуальных играх.
Есть одна старинная японская игра сёги. Иногда её называют японскими шахматами. Не буду спорить, что-то общее у этих игр есть, но сёги намного сложнее. Впервые я узнал об этой игре из комментария на Хабре, где утверждалось, что это одна из сложнейших игр, и лучшие компьютерные программы по-прежнему не могут победить сильнейших игроков-людей. Конечно, я заинтересовался и начал играть. За год я достиг некоторых успехов и даже занял второе место среди новичков на официальном турнире. Учитывая мою любовь к программированию, следующий шаг был очевиден — написать свой ИИ. Об этом и пойдёт рассказ ниже.