Об этом проекте

Kuroban (九路盤, «доска на девять дорог») — приложение для игры в го, написанное с нуля на Kotlin и Jetpack Compose для Mudita Kompakt, телефона с экраном E Ink. Это не форк; оно использует собственную дизайн-систему Mudita MMD, чтобы соответствовать предустановленным приложениям телефона, и включает GNU Go в качестве игрового движка. Что оно делает: - Только доска 9x9. Движок поддерживает другие размеры, но, как отмечает автор, на панели шириной 360dp доска 19x19 дала бы цели касания размером 18dp. - Игра против GNU Go на двух уровнях силы, за любой цвет, либо два игрока передают одно устройство друг другу. - Фора от 2 до 5 камней, представленная как более тонкая настройка для балансировки партии, чем уровни сложности. - Ручная расстановка позиции: размещайте чёрные и белые камни где угодно, выбирайте, какой цвет ходит, и продолжайте с доступными подсказкой, отменой хода и подсчётом в конце партии. - Подсказка запрашивает у движка его ход и показывает его как предварительный камень; сам запрос ничего не фиксирует. - Коснитесь для предпросмотра, коснитесь ещё раз для размещения, так что случайное касание никогда не ставит камень; кнопка Place делает то же самое. - Отмена хода, а против GNU Go — и его ответа; завершённые партии можно возобновить. - Два паса завершают партию, и GNU Go подсчитывает её, включая определение мёртвых камней, помечаемых крестиком. - Сохраняет текущую партию, включая историю отмен, между перезапусками телефона. - Никаких разрешений и никакого доступа к сети. Движок: GNU Go 3.8 работает как дочерний процесс, и с ним общаются по GTP через stdin/stdout. В README указано, что движок является авторитетным в вопросах легальности, ко, взятий и подсчёта очков, и что приложение не реализует собственных правил го. Скрипт сборки (engine/build-gnugo.sh) пересобирает его. О сложности: в README приводятся измерения самоигры, указывающие, что уровни 1 и 3 неразличимы, как и уровни 5 и 10, при этом реальный шаг находится между 3 и 5, а уровень 10 требует примерно в десять раз больше времени на размышление, чем уровень 5. Режим Монте-Карло в GNU Go описывается как более сильный, но занимающий около 14 секунд на ход на устройстве, причём дешёвой версии нет. Для сборки требуются Android SDK, а также NDK и компилятор C на хост-машине, если пересобирается движок. Задачи Gradle охватывают модульные тесты и сборку релиза; релизы собираются рабочим процессом GitHub Actions по тегам v*, который пересобирает движок из включённого в репозиторий архива и проверяет сертификат подписи APK. Для релизных сборок нужен keystore в signing/ (игнорируется git); без него assembleRelease создаёт неподписанный APK. Отладочные сборки используют стандартный отладочный ключ Android. Распространение: APK публикуется на GitHub Releases вместе с файлом .sha256, а репозиторий можно добавить в Obtainium для уведомлений об обновлениях. Утверждается, что application id окончательный, поэтому обновления устанавливаются поверх существующих установок. Лицензия: GPL-3.0-only. GNU Go (Copyright 1999-2009 Free Software Foundation, GPLv3 или более поздняя) включён в комплект вместе с неизменённым архивом исходников и скриптом сборки. В README также читателям предлагается бесплатная книга 81 Little Lions Иммануэля деВиллерса как введение в доску 9x9; она не входит в комплект приложения.