注意:仍处于上古时期,代码很混沌。
README同时具有简体中文、English两版,仓库同时在Gihub和Gitee上。此仓库与围棋、围棋文本协议(GTP)、智能游戏格式(.sgf)、卡塔围棋、莉拉零、牛羚围棋、Julia、PlotlyJS.jl、Dash.jl、Markdown、可放缩向量图(.svg)、正则表达式等有关……
VastGo是
- 一个多平台的围棋GUI,能运行于Windows、Linux、Android,或许FreeBSD、MacOS、IOS、HarmonyOS也行。
- 以Dash.jl、PlotlyJS.jl、JSON3.jl和现代或古典的GTP引擎为基础。
- 以100%的julia写就,采用MIT许可。
设计:
DATA
Players <<<======>>> components
|| /\
c||b ||
a||a c||b
l||c a||a
l||k l||c
||s l||k
|| ||s
\/ ||
functions <<<======>>> Bots
DATA
点子:
- 有趣:不标准的围棋,击败AI就是现在
- 绿色:使用对弈时数据来进行首次复盘,更少过度计算更少CO₂
- 简单:不知围棋何物,使用GTP命令
showboard
,更少代码更少措手不及 - 实用:游戏树-分数曲线、三维形势、样条线型、 f'(x)、f"(x),丰富强大的绘图
- 兼容:用SBKV表示赢率、用OGSC表示目差,与Sabaki和Ogatak相同的SGF
小心:避免与已有的网站、软件重复,如boardspace、kahv、littlegolem,而且能用相应的bot或AI来对弈和分析
当前速览
软件 | 电脑 | 手机 |
---|---|---|
Julia | >= 1.6.7 | 1.6.7 - 1.7.2 or 1.9.x |
卡塔围棋 | PASS | PASS |
莉拉零 | fail | fail |
牛羚围棋 | fail | fail |
模式 | 棋盘尺寸 | 状态信息 |
---|---|---|
盲围棋 | 2² - 19² | PASS |
一色棋 | 2² - 19² | PASS |
幻影围棋 | 2² - 19² | PASS |
磁极围棋 | 19² | captures, move history |
硬软件需求
硬件:
- 剩余磁盘空间 >= 5GB
- 总共内存容量 >= 8GB
Julia、包和本仓库:
- 下载julia并添加到路径
- 在终端cmd/shell/terminal里运行julia,即进入julia REPL模式
shell> julia
- 进入julia Pkg REPL模式
julia> ]
- 安装包
(@v1.9) pkg> add Dash PlotlyJS JSON3 PackageCompiler PlotlyBase
- 下载本仓库
卡塔围棋、莉拉零、牛羚围棋: (如果你的设备上没有的话……)
在终端里——运行src/terminal.jl
- 编辑
data/config.toml
,指示运行bot的命令、运行命令的文件夹, 以及一个名字来称呼它,例如
["ko"]
cmd = "./katago gtp -model elo9000.txt.gz"
dir = "../KataGoOpenCL/"
注意:不要在莉拉零的命令中用-q
,因为showboard
会消失
- 带上bot的名字来运行
src/terminal.jl
,例如
shell> julia src/terminal.jl ko
- 等到
[ Info: GTP ready
- 键入以下字符串,方可玩一局围棋
1 play B k10 # (id) command arguments
2 genmove W # see GoTextProtocol for details
3 showboard
genmove B
5 play W c3
10 showboard
...
3 final_score
quit
在浏览器中——运行app.jl
- 运行
app.jl
shell> julia app.jl
- 等到
[ Info: Listening on: 0.0.0.0:8050
- 打开一个(仅一个) 浏览器,在地址栏中键入
localhost:8050
后就可以玩了 - 在终端里键入
exit
以退出程序
在Android上
由于Android手机是arm而非x86-64,所以额外需要几个步骤:
- 下载安装Termux
- 安装ubuntu in termux
- 下载julia for Generic Linux on ARM, 注意:不是x86-64,而是aarch64或armv7l
- 通过9条命令,下载和编译卡塔围棋的引擎
之后就和在x86-64上是一样的了。
卸载
卸载julia、包和本仓库:
- Julia不会在Git克隆文件夹之外安装任何事物,删除文件夹就是完全卸载。
- Julia的包默认安装在
~/.julia
,删除就是卸载。 - 删除本仓库。
卸载卡塔围棋、莉拉零、牛羚围棋: (如果你的设备不需要了……)
sudo apt remove leela-zero gnugo
sudo apt autoremove
- 删除卡塔围棋的引擎
- 删除卡塔围棋和莉拉零的网络
- 为什么创建?
- 为什么这么慢?
- Julia的编译器会适度优化代码,这花些时间。
- 通过系统成像可以重用编译工作。
- 为什么选择Julia语言?
- 为什么选择Plotly(JS) Dash框架?
- 有更多的交互式功能。
if 源码 in 贡献
@goto Issues
else
@goto 评论
end
@label Issues
browser("https://gitee.com/vastgo/VastGo/issues")
@label 评论
browser("https://gitee.com/vastgo/VastGo")
- 我的Markdown应试小抄
- GTP检查列表
- 围棋、围棋应用、VastGo的结构
- 静态围棋棋盘状态矩阵
- Julia风格应试小抄