♟️ Клетка — Кроссплатформенный шахматный анализатор

Latest Release Лицензия: GPL v3 Платформа

🌐 English · Русский · 中文

Веб сайт: https://andreykhrypach.github.io/Kletka/


Клетка — это кроссплатформенный шахматный анализатор с поддержкой PGN файлов, вариантов, аннотаций и движка Stockfish. Программа имеет современный настраиваемый интерфейс и доступна для Windows, Linux и macOS.

⬇ Скачать GitHub репозиторий

📝 Журнал изменений

Подробную историю изменений смотрите в CHANGELOG.md.


🚀 Возможности


📺 Видеоуроки

Пошаговые руководства на нашем YouTube-канале:

Windows:

Linux:

Скоро — новые уроки: macOS.


📚 Дебютные книги (Polyglot)

Клетка поддерживает дебютные книги Polyglot (файлы .bin), что позволяет вам интерактивно изучать шахматные дебюты — и создавать свой дебютный репертуар.

Как использовать дебютные книги:

  1. Перейдите в меню Книги → Загрузить книгу
  2. Выберите файл Polyglot книги (.bin)
  3. Навигация по вариантам с помощью клавиатуры:
    • ↑ / ↓ — перемещение между вариантами
    • → / Enter — выбор варианта
    • ← — возврат на предыдущую позицию

Как редактировать книгу:

Клетка позволяет добавлять ходы прямо в загруженную книгу:

Экспорт дерева в Polyglot книгу:

Вы можете экспортировать текущее дерево анализа в Polyglot книгу:

  1. Проанализируйте или расставьте позицию с вариантами
  2. Перейдите в Книги → Экспорт в Polyglot книгу…
  3. Выберите папку и имя файла — книга создаётся в формате .bin

Все ходы из дерева (главная линия + все варианты) попадают в книгу. Транспозиции и дубликаты автоматически дедуплицируются.

Полученную книгу можно загрузить обратно в Клетку или использовать в Stockfish, Leela, ChessBase, Scid, Arena и других совместимых программах.

Системные требования для книг

Для работы с дебютными книгами Клетка требует:

--add-opens java.base/sun.nio.ch=ALL-UNNAMED
--add-opens java.base/sun.misc=ALL-UNNAMED

Примечание: Если вы запускаете Клетка из командной строки, используйте:

java --add-opens java.base/sun.nio.ch=ALL-UNNAMED \
--add-opens java.base/sun.misc=ALL-UNNAMED \
-jar Kletka.jar

Эти аргументы необходимы для быстрой работы с Polyglot книгами с использованием файлов, отображаемых в память (mmap).

🔧 Технические детали: Memory-Mapped Files

Клетка использует memory-mapped files (MappedByteBuffer) для молниеносно быстрой работы с Polyglot книгами, даже на HDD.

Важно: Mapped byte buffer не освобождается сборщиком мусора JVM, пока на него есть ссылка. Чтобы вы могли удалить, переместить или заменить файл книги во время работы Kletka, приложение явно вызывает:
sun.misc.Unsafe.invokeCleaner(mappedByteBuffer);

Это немедленно снимает блокировку файла на уровне ОС.

Что это значит для вас:

Linux: известные проблемы

На Debian Trixie / Ubuntu 24.04+ с Wayland диалоги могут не получать фокус (клавиатура работает, мышь — нет). Это известный баг JavaFX 17 + GTK 3 + Wayland.

Решение: уже включено в Клетку — приложение запускается с флагом -Djdk.gtk.version=2, который использует GTK 2 через XWayland.

Рекомендуемые книги:

Для наилучших результатов мы рекомендуем использовать книгу uho-pohl.bin, которая содержит обширные качественные дебютные варианты.

Где взять Polyglot книги:

Вы можете скачать бесплатные дебютные книги из официального репозитория Polyglot: 🔗 Polyglot Books Repository

Другие популярные источники:


📋 Копирование позиции (FEN + ASCII)

Вы можете скопировать текущую позицию в буфер обмена в удобном формате — FEN плюс ASCII-диаграмма:

Это удобно для:

Вывод содержит FEN в первой строке и ASCII-диаграмму ниже, обёрнутую в Markdown-блок кода для удобной вставки.


🐛 Известные проблемы на macOS

Drag-and-drop: фигура "хватается за угол"

Симптомы:

Причина: Известный баг JavaFX JDK-8333919 — на macOS игнорируются смещения dragViewOffsetX/Y.

Решение: Исправлен в JavaFX 23 (требует JDK 21+). Клетка сейчас использует Java 17 + JavaFX 17.

Обходной путь:

Статус: Отслеживается в issue #XXX. Будет исправлено при миграции на новый стек.


🖥️ Скриншоты

Краткий обзор

Главный интерфейс Обозреватель PGN
Главный интерфейс Обозреватель PGN
Открытие Polyglot книги Загруженная Polyglot книга
Открытие Polyglot книги Загруженная Polyglot книга

Полный размер

Нажмите на изображение, чтобы открыть его в полном размере в новой вкладке.

Главный интерфейс

Обозреватель PGN

Открытие Polyglot книги

Загруженная Polyglot книга


📦 Установка

Windows

Скачайте Kletka.exe со страницы Releases и запустите установщик.

macOS

Скачайте Kletka.dmg, откройте его и перетащите Kletka.app в папку Applications.

Linux (Debian/Ubuntu)

sudo dpkg -i kletka*.deb

🛠️ Сборка из исходников

Требования

Важные аргументы JVM для разработки

При запуске из IDE добавьте следующие параметры VM:

--add-opens java.base/sun.nio.ch=ALL-UNNAMED
--add-opens java.base/sun.misc=ALL-UNNAMED

Это обеспечивает полную поддержку Polyglot книг во время разработки.

git clone https://github.com/AndreyKhrypach/Kletka.git
cd Kletka
mvn clean package

Сборка для конкретной платформы

# Windows
mvn clean package -P windows

# Linux
mvn clean package -P linux

# macOS
mvn clean package -P mac

🧠 Настройка Stockfish

Клетка использует движок Stockfish для анализа. Вам нужно установить его отдельно.

Windows

  1. Скачайте Stockfish с официального сайта: https://stockfishchess.org/download/
  2. Распакуйте архив
  3. В Клетка перейдите в Движок → Настроить движок и выберите файл stockfish.exe

Linux (Debian/Ubuntu)

sudo apt install stockfish

Затем в Клетка перейдите в Движок → Настроить движок и выберите бинарный файл stockfish.

macOS

brew install stockfish

Затем в Клетка перейдите в Движок → Настроить движок и выберите бинарный файл stockfish.


📄 Лицензия

Этот проект распространяется под лицензией GNU General Public License v3.0. Подробнее см. файл LICENSE.


👨‍💻 Автор

Andrey Khrypach

⭐ Поддержка

Если вам нравится проект, поставьте ⭐ на GitHub!