Skip to content

ReNothingg/ChessAI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ChessAI

ChessAI - это настольный шахматный анализатор с графической доской, интеграцией Stockfish и тренировочными режимами. Приложение написано на Python с использованием tkinter и ориентировано на практический сценарий: загрузить партию, найти ключевые ошибки, посмотреть линии движка и превратить неточности в тренировочные позиции.

Скриншоты

Главное окно Анализ партии Диалоги и инструменты

Возможности

  • Импорт партий из локальных PGN-файлов, FEN, буфера обмена, URL Lichess, URL Chess.com и прямых ссылок на PGN.
  • Открытие PGN с несколькими партиями и выбор нужной игры из списка.
  • Анализ текущей позиции через Stockfish с несколькими лучшими линиями (MultiPV) и стрелками лучших ходов, угроз и последнего хода прямо на доске.
  • Полный анализ партии с классификацией ходов, расчетом точности, ACPL, поиском зевков, определением дебюта и построением графика оценки.
  • Пакетный анализ PGN-файлов с несколькими партиями и сводной таблицей результатов.
  • Сохранение аннотированного PGN с комментариями и NAG-метками.
  • Работа с вариантами: добавление линии из движка, перенос варианта в главную линию, удаление ответвлений.
  • Игра против движка с настраиваемой силой.
  • Тренировочные режимы:
    • поиск лучшего хода в текущей позиции;
    • генерация задач из ошибок, найденных в партии.
  • Подсказки тренера, режим "только доска", звуки ходов, экспорт FEN и горячие клавиши для быстрой навигации.

Быстрый старт

1. Клонирование репозитория

git clone https://github.com/ReNothingg/ChessAI.git
cd ChessAI

2. Установка зависимостей

pip install -r requirements.txt

3. Запуск приложения

python main.py

Требования

  • Python 3.9+
  • tkinter в составе установленного Python
  • движок Stockfish

На Windows в корне проекта уже лежит stockfish.exe, поэтому базовый запуск обычно работает сразу.

На Linux и macOS нужно:

  • либо положить бинарник Stockfish в корень проекта под именем stockfish;
  • либо указать путь через переменную окружения STOCKFISH_PATH.

Если движок не найден, интерфейс все равно откроется, но функции анализа и тренировки будут недоступны.

Настройка Stockfish

По умолчанию приложение ищет движок здесь:

  • Windows: ./stockfish.exe
  • Linux/macOS: ./stockfish

Путь можно переопределить через STOCKFISH_PATH.

Пример для PowerShell:

$env:STOCKFISH_PATH = "C:\path\to\stockfish.exe"
python main.py

Пример для Bash:

export STOCKFISH_PATH=/path/to/stockfish
python main.py

Поддерживаемые источники

  • PGN-файлы, включая файлы с несколькими партиями
  • текст PGN из буфера обмена
  • строка FEN из буфера или диалога загрузки
  • URL партий с Lichess
  • URL live- и daily-партий с Chess.com
  • прямые ссылки на .pgn

Типичный сценарий работы

  1. Загрузите партию из файла, буфера обмена или по URL.
  2. Перемещайтесь по ходам и просматривайте позицию на доске.
  3. Используйте быстрый анализ текущей позиции.
  4. Запустите полный анализ партии, чтобы получить точность, ACPL, переломный момент и данные по дебюту.
  5. Изучите текстовый отчет и график оценки.
  6. Запустите тренировку по найденным ошибкам.

Горячие клавиши

  • Left / Right - предыдущий или следующий ход
  • Home / End - переход в начало или конец партии
  • F - перевернуть доску
  • A - анализ текущей позиции
  • T - показать угрозу
  • P - найти лучший ход
  • H - открыть помощь
  • Space - режим "только доска"

Двойной клик по ходу в панели "Лучшие ходы" добавляет его как вариант.

Стек

  • python-chess для логики доски и работы с PGN
  • Stockfish в роли анализирующего движка
  • tkinter для настольного интерфейса
  • matplotlib для графика оценки
  • Pillow для доски и фигур
  • requests для загрузки партий по URL
  • pygame для звуков ходов
  • chess-tcn для конвертации партий Chess.com

Лицензия

MIT. Подробности в LICENSE.

About

Иинструмент для анализа шахматных партий, использующий Stockfish и графический интерфейс на Python

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages