master
Miloslav Ciz 8 months ago
parent 6b4f96bd15
commit a80abf8522

32
go.md

@ -1,14 +1,20 @@
# Go
*This article is about the game of go, for programming language see [golang](goland.md).*
WIP
*This article is about the game of go, for programming language see [golang](golang.md).*
{ I am still learning the beautiful game of go, please excuse potential unintentional errors here. ~drummyfish }
Go is an old two-player board [game](game.md) that originated in Asia, one of the most beautiful, deep and popular games of this type in history, whose significance can be compared to that of [chess](chess.md), despite it remaining popular mostly in Asia.
Go is an old two-player board [game](game.md) that originated in Asia, one of the most beautiful, elegant, deep and popular games of this type in history, whose significance can be compared to that of [chess](chess.md), despite it largely remaining widely popular only in Asia. There however, especially in Japan, go is pretty big, it appears a lot in [anime](anime.md) etc.
{ There is a nice site hosting everything related to go: Sensei's Library at https://senseis.xmp.net/. ~drummyfish }
**Compared to chess** the rules of go are much more simple -- which is part of the game's [beauty](beauty.md) (see [easy to learn, hard to master](easy_to_learn_hard_to_master.md)) -- though the emergent complexity of those few rules is grandiose; so much so that to play the game well may be even harder than to play chess, as there are many more possibilities and mere calculation is not enough to be strong, one needs to develop a strong intuition; this is also the reason why it took 20 more years for [computers](computer.md) to beat the best humans in go than in chess. Many say that go is yet deeper than chess and that it offers a unique experience that can't be found anywhere else. The spirit of go is also more [zen](zen.md)-like and peaceful: while chess simulates [war](war.md) (something more aligned with western mentality), go is more about dividing territory, one could even see it not as a battle but rather a creation of beautiful patterns (something better aligned with eastern mentality).
TODO: rating, programming, stats, ...
**From [LRS](lrs.md) point of view go is one of the best games ever**, for similar reasons to chess (it's highly free, [suckless](suckless.md), cheap, [not owned by anyone](public_domain.md), [fun](fun.md), mathematically deep, nice for programming while the game itself doesn't even require a [computer](computer.md) etc.) plus yet greater [simplicity](minimalism.md) and beauty.
TODO: rating, programming, stats, programs and sites for playing, 4x4 solved variant, ...
## Rules
@ -57,4 +63,22 @@ The **ko** rule states that one mustn't make a move that returns the board to th
Here black's (`#`) territory is 23, and black made 9 captures during the game, giving together 32 points. White's (`O`) territory is 16 and he has one black prisoner (H2), giving 17 points; furthermore white made 6 captures during the game and gets 5.5 (smaller value due to only 9x9 board size) bonus points as komi, totalling 28.5 point. Therefore black wins.
TODO
TODO
## Programming
See also https://senseis.xmp.net/?ComputerGoProgramming and https://www.chessprogramming.org/Go.
**Board representation:** a straightforward representation of the go board is as a simple [array](array.md) of squares; each square can be either empty, white or black, that's 3 values that can be stored with 2 bits, which allow storing 4 values, leaving one extra value to be used for some other purpose (e.g. marking illegal ko squares, estimated dead stones, marking last move etc.). 1 byte allows us to store 4 squares this way so we need only 91 bytes to represent the whole 19x19 board. On computers with enough RAM it may be considered to store 1 square in a single byte, making the board take more space but gaining speed (we don't need extra instructions for squeezing bit from/to a byte). Of course we furthermore have to keep track of extra things such as numbers of captured stones.
TODO
## Stats
Some [interesting](interesting.md) stats about go follow.
There are 2.08168199382 * 10^170 legal positions on a 19x19 board, 3.72497923077 * 10^79 for 13x13 and 1.03919148791 * 10^38 for 9x9. The number of possible games is estimated from 10^10^100 to 10^10^171.
An average high-level game lasts about 150 moves. Average branching factor is 250 (compare to 35 in chess).

@ -1,4 +1,4 @@
# Go
# Go (Programming Language)
Go (also golang) is a compiled [programming language](programming_language.md) advertised as the the "[modern](modern.md)" [C](c.md) and is co-authored by one of C's authors, [Ken Thompson](ken_thompson.md). Neverheless Go is actually [shit](shit.md) compared to C. Some reasons for this are:

Loading…
Cancel
Save