Об этом проекте
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; она не входит в комплект приложения.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.