Как шахматы, только лучше

Этой игре насчитывается уже много веков, но она все еще настолько же интересна и актуальна как и во времена когда компьютеры были еще в далеком будущем и имя этой увлекательной игры Сёги (将棋 / Shogi / Syogi), что в переводе с японского переводится как "Игра генералов". В начале партии каждый игрок имеет по 20 фигур: 1 король, 1 ладья, 1 слон, 2 золотых и 2 серебряных генерала, 2 коня, 2 копья и 9 пешек. Фигуры имеют форму вытянутого пятиугольника со скосом в сторону противника, на обеих поверхностях которого иероглифами надписано название основной и превращенной фигуры. Как и в шахматах, игра заканчивается, когда одна из сторон ставит "мат" королю противника, то есть создаёт позицию, в которой король противника находится под боем (шахом) и этот шах противник не может устранить никаким ходом. Поставивший мат выигрывает. Говорить "шах" и "мат" при этом считается неэтичным. Также игра заканчивается, если один из игроков сдается. В Японии признание своего поражения выражается словом 負けました (яп. макэмасита - проиграл) и небольшим поклоном.

Проникнувшись всем великолепием данной игры, я решил написать свою программу игры в Syogi. Основная и самая сложная в реализации ее часть - это игровой движок ИИ (искусственный интеллект - позволяющий компьютеру вычислять наиболее релевантные ходы). Задачей ИИ здесь является пройти на заданную глубину все ветвления (ну, или по крайней мере основную их часть) партии для последующей оценки хода. Перебор ходов здесь самая затратная по времени для ЦПУ задача, ведь варианты ходов в Syogi растут крайне быстро. Только на 2 ходу их уже около 1000 (примерно 30 ходов для каждой из сторон), на 4 ход их будет не меньше 1000^2. В дальнейшем ветвления ходов возрастают многократно, а с учетом того, что есть еще ходы сброса фигур, их становится еще больше, ибо сброс ранее взятой фигуры производится почти на любую свободную клетку, за исключением некоторых правил. Движок ИИ написан на стандартных логических алгоритмах, на циклах и условиях IF / ELSE, без использования нейросетей.

Тесты показали, что на доске 9*9 клеток с прогнозированием партии на 4-6 ходов просчитываемое число ветвлений в игре достигает нескольких миллионов и более. Конечно, даже не смотря на довольно большую выборку для человеческого понимания, все равно машинный алгоритм ИИ сложно сравнивать с человеческим интеллектом, ведь у человека и машины совсем разный принцип понимания игры. Тем не менее, даже при учете некоторого превосходства биологического разума, нужно быть крайне внимательным, ведь потерпеть поражение можно просто не заметив шах (как писалось выше здесь не принято его объявлять), а можно и вовсе не удачно разменять фигуры, две на одну например. Компьютер удачно пользуется любой ошибкой игрока.

Дата выпуска: 2022

Последняя версия 2.5.0.153

Разработчик: Я

Разрядность: 32bit

Язык интерфейса: русский (поддерживается переводы на др.языки)

Системные требования:

ОС Windows 7, 8, 10

.NET Framework2+

Клавиатура и /или мыша

Свободное место ~20 МБ

Установка:

Распаковать архив

Запустить EXE

Скачать можно с облака.

Комментарии: 0
Ваш комментарий