Игра Сёги на Visual Studio
Запись от yariko размещена 10.04.2021 в 12:49
Этой игре насчитывается уже много веков, но она все еще настолько же интересна и актуальна как и во времена когда компьютеры были еще в далеком будущем и имя этой увлекательной игры Сёги (将棋 - syogi /shogi), что в переводе с японского переводится как "Игра генералов". В начале партии каждый игрок имеет по 20 фигур: 1 король, 1 ладья, 1 слон, 2 золотых и 2 серебряных генерала, 2 коня, 2 копья и 9 пешек. Фигуры имеют форму вытянутого пятиугольника со скосом в сторону противника, на обеих поверхностях которого иероглифами надписано название основной и превращенной фигуры. Как и в шахматах, игра заканчивается, когда одна из сторон ставит "мат" королю противника, то есть создаёт позицию, в которой король противника находится под боем (шахом) и этот шах противник не может устранить никаким ходом. Поставивший мат выигрывает. Говорить "шах" и "мат" при этом считается неэтичным. Также игра заканчивается, если один из игроков сдается. В Японии признание своего поражения выражается словом 負けました (яп. макэмасита - проиграл) и небольшим поклоном. Проникнувшись всем великолепием данной игры, я решил написать свою программу игры в Syogi. Основная и самая сложная в реализации ее часть - это игровой ИИ (искусственный интеллект - позволяющий компьютеру вычислять наиболее релевантные ходы). Задачей ИИ здесь является пройти на заданную глубину все ветвления (ну, или по крайней мере основную их часть) партии для последующей оценки хода. Перебор ходов здесь самая затратная по времени для ЦПУ задача, ведь варианты ходов в Syogi растут крайне быстро. Только на 2 ходу их уже около 1000 (примерно 30 ходов для каждой из сторон), на 4 ход их будет не меньше 1000^2. В дальнейшем ветвления ходов возрастают многократно, а с учетом того, что есть еще ходы сброса фигур, их становится еще больше, ибо сброс ранее взятой фигуры производится почти на любую свободную клетку, за исключением некоторых правил. Тесты показали, что на доске 9*9 клеток с прогнозированием партии на 4-6 ходов просчитываемое число ветвлений в игре достигает нескольких миллионов и более. Конечно, даже не смотря на довольно большую выборку для человеческого понимания, все равно машинный алгоритм ИИ сложно сравнивать с человеческим интеллектом, ведь у человека и машины совсем разный принцип понимания игры. Тем не менее, даже при учете некоторого превосходства биологического разума, нужно быть крайне внимательным, ведь потерпеть поражение можно просто не заметив шах (как писалось выше здесь не принято его объявлять), а можно и вовсе не удачно разменять фигуры, две на одну например. Компьютер удачно пользуется любой ошибкой игрока. Системные требования: ОС Windows; .NET Framework2+; Клавиатура и /или мыша Свободное место ~20 МБ. Установка: Распаковать архив Запустить EXE СКАЧАТЬ ИГРУ Если вы любите шахматы, то Сёги Вам тоже понравятся, ведь эта игра дает еще больше возможностей и тактических приемов, это как "прокачанные" шахматы! |
Всего комментариев 14
Комментарии
-
Ход "не по правилам", если я не ошибаюсь, тоже приводит к поражению виновника.
Запись от politoto размещена 10.04.2021 в 13:04 -
Запись от yariko размещена 10.04.2021 в 13:07 -
Если программа для начинающих, то неплохо бы разрешить человеку "фолить".
Запись от politoto размещена 10.04.2021 в 13:15 -
Запись от yariko размещена 10.04.2021 в 13:20 -
Цитата:Сообщение от yariko
В дальнейшем ветвления ходов возрастают многократно, а с учетом того, что есть еще ходы сброса фигур, их становится еще больше, ибо сброс ранее взятой фигуры производится почти на любую свободную клетку, за исключением некоторых правил.Запись от wer1 размещена 10.04.2021 в 13:25 -
Можно сделать подсказку, чтобы были видны все возможные сбросы, ходы и перевороты выбранной фишки.
Запись от politoto размещена 10.04.2021 в 13:26 -
В Сёги это реализовано так. Игрок рубит фигуру противника и эта же фигура попадает взявшему игроку в резерв, фигура при этом остается вне доски, а игрок может ее сбросить на доску вместо любого своего очередного хода (сброс это тоже ход). Как бы все гениальное просто!
Запись от yariko размещена 10.04.2021 в 13:28 -
Цитата:
Лучше шашки с башнями.Запись от politoto размещена 10.04.2021 в 13:31 -
yariko,
спасибо! Я восхищён таким гениальным решением проблем!Запись от wer1 размещена 10.04.2021 в 13:33 -
Ничьих в принципе не будет вовсе. Количество ходов ограничено например числом 100. Так что нет смысла "прыгать" туда-сюда. А цель такая: сделать так, чтобы ограничить число ходов противника ещё больше! В общем мои шашки похожи на шашки только видом шашек и названием.
Запись от wer1 размещена 10.04.2021 в 13:40 -
См. также https://en.wikipedia.org/wiki/Crazyhouse и "шведские" шахматы ( пара на пару )
Запись от politoto размещена 10.04.2021 в 13:43 -
Запись от Avazart размещена 12.04.2021 в 22:36 -
Запись от yariko размещена 14.04.2021 в 07:49 -
Запись от politoto размещена 09.02.2022 в 19:38