1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/icybee-elephantfish

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Введение

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 содержится в файле elephantfish.py и использует только встроенные функции Python, не требуя никаких сторонних библиотек. Рекомендуется использовать pypy или pypy3 для достижения лучшей производительности.

Для запуска программы шахмат достаточно ввести команду python elephantfish.py или pypy elephantfish.py, программа будет использовать встроенный инструмент командной строки для игры.

Особенности

  1. Использование простого и эффективного алгоритма MTD бинарного поиска (см. «Основы программы для игры в шахматы»).
  2. Применение известных современных техник шахматных движков, таких как обрезка без фигур.
  3. Оценка позиций с помощью простой таблицы значений эффективности фигур.
  4. Использование стандартных структур данных Python.

Лицензия

GNU GPL v3

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

elephantfish: шахматный движок для игры в сянци, состоящий всего из 124 строк кода. Развернуть Свернуть
GPL-3.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/icybee-elephantfish.git
git@api.gitlife.ru:oschina-mirror/icybee-elephantfish.git
oschina-mirror
icybee-elephantfish
icybee-elephantfish
master