elephantfish — это шахматный движок, написанный на чистом Python и вдохновлённый проектом sunfish. Весь основной код шахматного движка состоит всего из 124 строк (см. compressed.py). Я провёл тестирование elephantfish против шахматного мастера в режиме сложности «глупый» и в моих тестах elephantfish одержал победу.
Несколько дней назад я наткнулся на проект sunfish (шахматный движок для международных шахмат, состоящий из 111 строк) и нашёл его очень интересным. Поэтому я создал версию для китайских шахмат. Китайские шахматы немного отличаются от международных шахмат, я реализовал только правила игры, а таблица значений эффективности фигур была взята непосредственно из ElephantEye. Код части mtd search был оставлен почти без изменений, так как он был написан очень универсально в оригинальном sunfish.
Если вы не понимаете, как работает mtd search в программе, рекомендуется сначала изучить основы теории игр, например, статьи в разделе articles, такие как «Основы программы для игры в шахматы» (articles/Основы программы для игры в шахматы.pdf), доступный по адресу: https://www.xqbase.com/computer/outline.htm.
По умолчанию elephantfish думает в течение 5 секунд, но на практике обычно больше. Если вы хотите, чтобы он проводил более длительный поиск для получения лучших результатов, вы можете изменить исходный код в соответствующих местах.
Как и sunfish, я считаю, что elephantfish станет хорошей платформой, поскольку его код очень короткий и позволяет проводить различные эксперименты. Надеюсь, заинтересованные люди попробуют оптимизировать его. Если после оптимизации вы захотите оценить разницу в силе игры между вашей версией и текущей, вы можете использовать self_arena в test.py для сравнения вашего кода с elephantfish.
Think depth: 6 My move: b9c7
9 俥.象士将士象傌俥
8 .........
7 .砲傌....砲.
6 卒.卒.卒.卒.卒
5 .........
4 .........
3 兵.兵.兵.兵.兵
2 .炮..炮....
1 .........
0 车马相仕帅仕相马车
abcdefghi
Your move:
Elephantfish содержится в файле elephantfish.py и использует только встроенные функции Python, не требуя никаких сторонних библиотек. Рекомендуется использовать pypy или pypy3 для достижения лучшей производительности.
Для запуска программы шахмат достаточно ввести команду python elephantfish.py
или pypy elephantfish.py
, программа будет использовать встроенный инструмент командной строки для игры.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )