Skip to content

⚪ 🧲 ♟️ A Web App for the game of Go/Baduk/Weiqi. Based on Plotly Dash and GoTextProtocol engines.

License

Notifications You must be signed in to change notification settings

HackYardo/VastGo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

static

About

Note: Still in the very early stage, don't expect to be stable.

The README is in both English and 简体中文. The repo is on both Github and Gitee. And it's about the game of Go/Baduk/Weiqi, GoTextProtocol(GTP), SmartGameFormat(.sgf), KataGo, Leela-Zero, GNU Go, Julia, PlotlyJS.jl, Dash.jl, Markdown, ScalableVectorGraphics(.svg), Regular Expression, etc.

VastGo is

  • A multi-platform Go GUI that can run on Windows, Linux, Android and perhaps FreeBSD, MacOS, IOS, HarmonyOS.
  • Based on Dash.jl, PlotlyJS.jl, JSON3.jl and modern or classic GTP engines.
  • Written in pure julia and under the MIT license.

Design:

            DATA
Players <<<======>>> components
             ||          /\
            c||b         ||
            a||a        c||b
            l||c        a||a
            l||k        l||c
             ||s        l||k
             ||          ||s
             \/          ||
          functions <<<======>>> Bots
                        DATA

Ideas:

  • funny: nonstandard Go, BEAT AI RIGHT NOW
  • green: uses playtime data to first review, LESS EXCESSIVE COMPUTING LESS CO₂
  • simple: doesn't know Go, uses GTP command showboard, LESS CODE LESS GOTCHA
  • useful: game tree - score curve, 3D ownership, spline style, f'(x), f"(x), RICH AND POWERFUL PLOT
  • compatible: SBKV for winrate and OGSC for score, THE SAME SGF AS Sabaki AND Ogatak

Features

Be careful: avoid repetition to existing site/software, i.e. boardspace/kahv/littlegolem, and can be played/analyzed by corresponding bot/AI

Usage

Status
software computer phone
julia >= 1.6.7 1.6.7 - 1.7.2 or 1.9.x
KataGo PASS PASS
Leela-Zero fail fail
GNU Go fail fail
mode boardsize stateinfo
Blind Go 2² - 19² PASS
One Color Go 2² - 19² PASS
Phantom Go 2² - 19² PASS
Magnet Go 19² captures, move history
Hard/Software requirements

Hardware:

  • Free HardDisk >= 5GB
  • Total Memory >= 8GB

Julia, packages and this repo:

  1. download and add julia into path
  2. run julia in cmd/shell/terminal and you will enter julia REPL-mode
shell> julia 
  1. enter julia Pkg REPL-mode
julia> ]
  1. install packages
(@v1.9) pkg> add Dash PlotlyJS JSON3 PackageCompiler PlotlyBase
  1. download this repo

KataGo, Leela-Zero, GNU Go: (If you don't have them yet...)

  • KataGo: download its engine and a network
  • Linux(Debian/Ubuntu):
    1. sudo apt update -y
    2. sudo apt install leela-zero gnugo
    3. download a network of Leela-Zero
in terminal——run src/terminal.jl
  1. edit data/config.toml to indicate the command of running a bot, the directory where to run the command and a name to call it, e.g.
["ko"]
cmd = "./katago gtp -model elo9000.txt.gz"
dir = "../KataGoOpenCL/"

Note: DO NOT use -q in Leela-Zero's command, since showboard will GONE.

  1. run src/terminal.jl with a bot's name, e.g.
shell> julia src/terminal.jl ko
  1. wait until
[ Info: GTP ready 
  1. type following strings to play a Go game
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
in browser——run app.jl
  1. run app.jl
shell> julia app.jl
  1. wait until
[ Info: Listening on: 0.0.0.0:8050
  1. open one(only one) browser and type localhost:8050 in the address bar to play
  2. type exit in terminal to exit the program
on Android

Because Android phones are arm and not x86-64, you need more steps:

  1. download and install Termux
  2. install ubuntu in termux
  3. download julia for Generic Linux on ARM, Note: instead of x86-64, use aarch64 or armv7l
  4. download and compile KataGo engine via 9 commands

Now the same as on x86-64.

uninstall

uninstall julia, packages and this repo:

  • Julia does not install anything outside the directory it was cloned into. Julia can be completely uninstalled by deleting this directory.
  • Julia packages are installed in ~/.julia by default, and can be uninstalled by deleting ~/.julia.
  • Delete this repo.

uninstall KataGo, Leela-Zero, GNU Go: (If you don't use them anymore...)

  1. sudo apt remove leela-zero gnugo
  2. sudo apt autoremove
  3. delete KataGo's engine
  4. delete KataGo's and Leela-Zero's networks

Q&A

LICENSE

LICENSE THIRDPARTY

Contribute

if sourceCode in contribution
    @goto Issues
else
    @goto Discussions
end

@label Issues
    browser("https://github.com/HackYardo/VastGo/issues")
@label Discussions
    browser("https://github.com/HackYardo/VastGo/discussions")

Doc

About

⚪ 🧲 ♟️ A Web App for the game of Go/Baduk/Weiqi. Based on Plotly Dash and GoTextProtocol engines.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages