Загрузите партию, найдите ошибки, изучите варианты движка и превратите слабые ходы в тренировочные позиции — в одном локальном приложении.
На macOS ChessAI использует системную тему Aqua, шрифты, цвета и контролы. На новых версиях macOS приложение автоматически получает актуальное системное оформление, включая Liquid Glass, без рисованной имитации blur-эффектов.
- Быстрый анализ текущей позиции через Stockfish.
- Несколько лучших линий движка (
MultiPV) с оценкой и стрелками на доске. - Полный разбор партии: точность по модели вероятности победы,
ACPL, зевки, ошибки и переломный момент. - Точность считается по win%-кривой (как на Lichess), а не по линейной формуле, поэтому цифры сопоставимы с другими анализаторами.
- Определение дебюта и построение интерактивного графика оценки.
- Клик по графику мгновенно переносит к соответствующему полуходу.
- Пакетный анализ всех партий из одного PGN-файла.
- Отмена полного и пакетного анализа в любой момент: разбор останавливается после текущего хода.
- Разбор партии делает один поиск на ход (
MultiPV=2) вместо двух: быстрее и точнее.
- Локальные
PGN-файлы, включая файлы с несколькими партиями. PGN,FENили URL прямо из буфера обмена.- Партии по ссылкам Lichess и Chess.com, а также прямые ссылки на
.pgn. - Сохранение аннотированного PGN и копирование
PGN/FEN.
- Игра против Stockfish с настраиваемой силой:
Skill Level(0-20) или ограничение поUCI_Elo(1320-3190). - Задача «найди лучший ход» для текущей позиции.
- Автоматическая генерация тренировочных задач из ошибок партии.
- Режим тренера с контекстными подсказками.
- Поиск по ходам, номерам, комментариям и аннотациям.
NAG-метки (!,?,!!,??,!?,?!) и текстовые комментарии.- Редактор позиции: расстановка фигур мышью, выбор стороны хода и прав на рокировку.
- Добавление вариантов из анализа, перенос варианта в главную линию и удаление веток.
- Переключаемые координаты, звуки, анимация и режим «только доска».
- Изменяемая по ширине боковая панель: перетаскивается сама непрерывная серая граница.
- Все настройки (сила, время, Elo, панель, звук, геометрия окна) сохраняются между запусками в
~/.chessai/settings.json.
- Динамическая стрелка при перетаскивании. Пока фигура «висит» на курсоре, от исходной клетки к ней тянется стрелка. Цель подсвечивается рамкой: зелёная — обычный ход, красная — взятие, серая — ход невозможен. Острие мягко притягивается к центру легальной клетки, так что ход «залипает» ещё до отпускания мыши.
- Стрелка-подсказка при выборе кликом. После клика по фигуре стрелка от неё к курсору сразу показывает, куда ведёт текущая позиция мыши.
- Стрелки идут от фигуры к фигуре. Хвост стрелки начинается в центре исходной фигуры, острие — в центре целевой клетки, поэтому подсказка буквально «растёт» из фигуры, а не висит рядом с ней.
- Стрелки анализа рисуются на глазах: линия с треугольной головкой вырастает от исходной клетки к целевой за ~170 мс по easing-кривой.
- Лучший ход и угроза «дышат» — толщина и яркость плавно колеблются, поэтому главные подсказки легко отличить от прочих вариантов.
- Плавный перелёт фигуры с easing; конь дополнительно скачет по дуге.
- Пульс выделения выбранной клетки и мягкая подсветка клетки под курсором.
- Шкала оценки переезжает к новому значению постепенно, а не прыгает; число оценки растёт/падает синхронно с полосой.
- Все эффекты можно выключить:
Вид → Анимация ходовиВид → Анимация стрелок и подсветки.
git clone https://github.com/ReNothingg/ChessAI.git
cd ChessAImacOS / Linux
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txtWindows PowerShell
py -m venv .venv
.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txtpython main.pyTip
На Windows бинарник stockfish.exe уже находится в репозитории. На macOS и Linux ChessAI также ищет stockfish в PATH и стандартных каталогах установки.
| Компонент | Требование |
|---|---|
| Python | 3.9+ |
| GUI | tkinter |
| Движок | Stockfish |
| ОС | macOS, Windows или Linux |
Если Stockfish не найден, интерфейс всё равно запустится. Функции движка, полного анализа и тренировок будут отключены до настройки пути.
Состояние движка видно в статусной строке. Если процесс Stockfish завершился во время работы, приложение сообщит об этом, а вернуть движок в строй можно командой «Игра → Переподключить движок» — перезапускать ChessAI не нужно.
Движок запускается с Threads=4 и Hash=256 МБ — полный разбор партии идёт заметно быстрее, чем на одном потоке с дефолтным хешем.
ChessAI ищет движок в следующем порядке:
- путь из переменной окружения
STOCKFISH_PATH; stockfish.exeв корне проекта на Windows;stockfishв корне проекта или вPATHна macOS/Linux;- стандартные каталоги Homebrew и MacPorts на macOS.
Указать путь вручную
macOS / Linux:
export STOCKFISH_PATH=/path/to/stockfish
python main.pyWindows PowerShell:
$env:STOCKFISH_PATH = "C:\path\to\stockfish.exe"
python main.py- Откройте PGN, вставьте FEN или загрузите партию по URL.
- Перемещайтесь по партии клавишами
←и→или через список ходов. - Нажмите «Анализ позиции», чтобы увидеть лучшие продолжения.
- Запустите полный анализ для расчёта точности,
ACPLи ключевых ошибок. - Изучите отчёт и кликабельный график оценки.
- Создайте тренировочную сессию из найденных ошибок.
| Клавиши | Действие |
|---|---|
← / → |
Предыдущий / следующий ход |
Home / End |
Начало / конец партии |
A |
Анализ текущей позиции |
T |
Показать угрозу |
P |
Задача «найди лучший ход» |
F |
Перевернуть доску |
Space |
Режим «только доска» |
Ctrl/Cmd + O |
Открыть PGN |
Ctrl/Cmd + F |
Поиск по ходам |
Ctrl/Cmd + B |
Показать / скрыть боковую панель |
H |
Справка |
Двойной клик по строке в блоке «Лучшие ходы» добавляет продолжение как вариант.
ChessAI/
├── app/
│ ├── app.py # состояние приложения и запуск компонентов
│ ├── ui.py # нативный интерфейс и отрисовка доски
│ ├── game.py # PGN/FEN, навигация и игровой поток
│ ├── analysis.py # анализ Stockfish и тренировки
│ ├── interaction.py # мышь, клавиатура и варианты
│ ├── animations.py # планировщик кадров, easing и геометрия стрелок
│ ├── board_editor.py # редактор позиции
│ ├── openings.py # справочник дебютов с транспозициями
│ └── reporting.py # отчёты и тренировочные позиции
├── assets/ # доска, фигуры, звуки, иконка приложения
├── engine_handler.py # управление процессом Stockfish
├── config.py # настройки и пути
├── main.py # точка входа
└── requirements.txt
| Технология | Назначение |
|---|---|
python-chess |
правила шахмат, PGN и FEN |
| Stockfish | анализ позиций |
tkinter / ttk |
нативный desktop UI |
matplotlib |
график оценки |
| Pillow | изображения доски и фигур |
requests |
загрузка партий по URL |
pygame |
звуки ходов |
Stockfish не найден
Проверьте, что бинарник существует, имеет право на запуск и путь к нему указан в STOCKFISH_PATH. На macOS/Linux можно проверить командой stockfish в терминале.
Нет звука
Приложение продолжит работать без аудио. Проверьте установленный pygame и доступность звукового устройства, затем перезапустите ChessAI.
Не запускается tkinter
Убедитесь, что используемая сборка Python включает Tcl/Tk. Это особенно важно для минимальных Linux-установок.
Issues и pull request'ы приветствуются. Перед отправкой изменений:
python -m unittest discover -vТесты не требуют Stockfish: движок подменяется заглушками.
Старайтесь сохранять нативное поведение интерфейса на каждой ОС и добавлять тесты для логики, не зависящей от GUI.
Проект распространяется по лицензии MIT.
Сделано для разбора партий, а не борьбы с интерфейсом.