这个项目能做什么
Kuroban(九路盤,“九路棋盘”)是一款使用 Kotlin 和 Jetpack Compose 从零编写的围棋应用,面向配备电子墨水屏的 Mudita Kompakt 手机。它并非分支项目;它采用 Mudita 自家的 MMD 设计系统,以与手机预装应用保持一致,并捆绑 GNU Go 作为对弈引擎。
功能:
- 仅支持 9x9 棋盘。引擎支持其他尺寸,但作者指出,在 360dp 宽的屏幕上,19x19 的触摸目标只有 18dp。
- 可与 GNU Go 以两种强度对弈,可选择执黑或执白,也可两名玩家共用一台设备轮流落子。
- 让子 2 至 5 子,作者将其呈现为比难度设置更精细的对局平衡调节。
- 手动摆棋:可在任意位置放置黑子和白子,选择哪一方行棋,并继续使用提示、悔棋和终局数子功能。
- 提示会向引擎询问其着法,并以预览棋子的形式显示;询问不会提交任何落子。
- 点击预览,再次点击落子,因此误触不会直接落子;“落子”按钮作用相同。
- 可悔棋,对 GNU Go 时也会撤销其应手;已结束的对局也可恢复继续。
- 两次停着结束对局,由 GNU Go 数子,包括判定死子,并以 x 标记。
- 跨手机重启保存进行中的对局,包括悔棋历史。
- 无权限,无网络访问。
引擎:GNU Go 3.8 作为子进程运行,通过 stdin/stdout 以 GTP 协议通信。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 的签名证书。发布构建需要在 signing/ 中提供密钥库(已被 gitignore);没有它,assembleRelease 会生成未签名的 APK。调试构建使用标准 Android 调试密钥。
分发:APK 发布在 GitHub Releases 上,并附带 .sha256 文件,仓库可添加到 Obtainium 以接收更新通知。应用 ID 据称已固定,因此更新可覆盖安装现有版本。
许可:GPL-3.0-only。捆绑了 GNU Go(Copyright 1999-2009 Free Software Foundation,GPLv3 或更高版本),并包含其未修改的源码压缩包和构建脚本。
README 还向读者推荐 Immanuel deVillers 的免费书籍《81 Little Lions》作为 9x9 棋盘的入门读物;该书未与应用捆绑。
评论
0 评分人数达到10人后显示
登录后参与讨论。