HackYardo / VastGo

:white_circle: :magnet: :chess_pawn: A Web App for the game of Go/Baduk/Weiqi. Based on Plotly Dash and GoTextProtocol engines.
MIT License
9 stars 1 forks source link
android gnugo gtp gui harmonyos julia katago leela-zero linux macos sgf termux windows

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

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:

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](https://julialang.org/) into path 2. run julia in cmd/shell/terminal and you will enter julia REPL-mode ```shell shell> julia ``` 3. enter julia Pkg REPL-mode ```shell julia> ] ``` 4. install packages ```julia (@v1.9) pkg> add Dash PlotlyJS JSON3 PackageCompiler PlotlyBase ``` 5. download this repo **KataGo, Leela-Zero, GNU Go:** (If you don't have them yet...) - KataGo: download its [engine](https://github.com/lightvector/KataGo/releases/) and a [network](https://katagotraining.org/networks) - Linux(Debian/Ubuntu): 1. `sudo apt update -y` 2. `sudo apt install leela-zero gnugo` 3. download a [network](https://zero.sjeng.org/) 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. ```toml ["ko"] cmd = "./katago gtp -model elo9000.txt.gz" dir = "../KataGoOpenCL/" ``` **Note: DO NOT use `-q` in Leela-Zero's command, since `showboard` will GONE.** 2. run `src/terminal.jl` with a bot's name, e.g. ```shell shell> julia src/terminal.jl ko ``` 3. wait until ```julia [ Info: GTP ready ``` 4. type following strings to play a Go game ```shell 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 shell> julia app.jl ``` 2. wait until ```julia [ Info: Listening on: 0.0.0.0:8050 ``` 3. open one(**only one**) browser and type `localhost:8050` in the address bar to play 4. 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](https://github.com/termux/termux-app/) 2. install [ubuntu in termux](https://github.com/MFDGaming/ubuntu-in-termux) 3. download [julia for Generic Linux on ARM](https://julialang.org/downloads/platform/#linux_and_freebsd), **Note: instead of x86-64, use aarch64 or armv7l** 4. download and compile KataGo engine via [9 commands](https://github.com/lightvector/KataGo/blob/master/Compiling.md#linux) 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