I have become somewhat addicted lately to Go problems. There are apps for Android phones and tablets (and also for iPhone, I’m sure) that display Go problems and let you try various combinations of moves to solve them. Two that I use and like are ElyGo and Tsumego Pro. A more comprehensive list is here.This post is mostly about those apps and a feature that I wish they would add.

Go is a game often described as the Asian equivalent of chess. I won’t try to explain how it is played since there are many web sites that do that far better than I could (I recommend this one) — except to say that it’s played on a 19 x 19 grid of criss-crossing lines on which the players take turns placing a white or black stone. Go is actually similar to chess only in the sense that both belong to the category that game theory calls “partisan combinatorial games” and both have capture moves. 

In terms of strategy and “feel”, I find them completely different, in a way that more or less corresponds to what I perceive as differences between Asian and American or European cultures.

I should emphasize that I am only describing my own perceptions, on subjects about which I am very far from expert. I would barely qualify as an occasional recreational player of chess or Go, and even less an expert on cultures, which anyway vary greatly even within relatively homogeneous populations. Yet, as I feel sure any American living in Asia (and probably any Asian living in America) would readily confirm, in Asia the world tends to be thought of in a way that is different from the way Americans perceive it. Even if I can’t rigorously describe the difference, I’m very confident that there is one, and the difference between the way it “feels” to play Go as compared to chess seems to capture it fairly well.

Go feels fuzzier around the edges than chess; board positions and patterns are harder to get a grip on. In part that may be because Go is combinatorially many orders of magnitude larger — the number of possible chess positions (the so-called “Shannon number”, since it was first estimated by Claude Shannon in a 1950 paper on computer chess) is “only” about 10 to the 43rd power, which pales in comparison to Go, which has about 8 times 10 to the 100th power possible board positions. The best computer programs nowadays reliably beat the best human chess players; but no computer program has ever beaten a professional-level human Go player in tournament play (here’s an interesting Wired article on the state of computer vs human Go competition). Current the best Go programs play at what could be called a strong amateur level. (Needless to say, they can beat me senseless without the slightest exertion.)

Playing chess, one has a sense that at each move one is selecting from a limited number of mostly predictable trajectories. The majority of possible moves are easily rejected as clearly bad. Go feels completely different to me, perhaps in part because I’m not a good enough player to recognize when a move is clearly bad, but also because there are so many more possible moves, and the pieces all look the same. Chess feels like a game of moves; Go feels like a game of patterns. In a similar way, Asian cultures feel (to me) much more amorphous, like trying to pick up water in your hand. Again this is probably in significant part a product of my own ignorance, but I think there is a real difference there. American culture seems to me to see the world much more in black and white with clear boundaries; Asian cultures seem to be much more in tune with the idea that people are weird, stuff happens, you can’t do much about it, move on, tend your own garden as best you can. In American culture, the ideal is to mold the world and everyone in it into a uniform state of perfection. In Asian culture (as practiced by ordinary people), the world is what it is, the goal is to survive it and if possible prosper, not to mold it into some ideologically determined state of perfection. Politics is seen as a game for gaining advantage, not as an instrument for bringing about utopia.

Anyway, back to Android apps. Both Tsumego Pro and ElyGo offer “problem packs” with hundreds of Go problems. The problems present a partially played region of the board (you can see an example below), and the goal is to make a series of plays that either establish a double eye (i.e. a group of stones that is alive and unkillable) for one’s own pieces, or prevent the opponent from doing so. (This is one of the ways in which Go is slippery and amorphous — with chess, you know when checkmate occurs, there isn’t any doubt about it, even a beginner can judge whether a position is or is not checkmate. Figuring out whether a given position in Go qualifies as “alive” or “dead” is a good deal more complicated, and requires quite a bit of experience to reliably get right.)

Both apps have free versions, which only come with a few dozen problems. With both apps, larger quantities (hundreds) of problems can be gotten for a few dollars. Both apps have a feature that shows the steps of the correct answer in order. Both have problem packs available in several difficulty levels. Another feature of Tsumego Pro that I quite like: it automatically presents six new problems each day, two “easy”, two “medium”, and two “hard”.

ElyGo also has a game engine against which you can play full games. (Personally, I prefer the problems — they’re great for when I’m standing in line or waiting for someone, and full games take hours.) Tsumego Pro does not come with a full game feature, but there are other free game engines around such as the open source GnuGo, which is available on several of the free Android Go apps.

Which brings me to the feature I wish someone would implement: a way to copy the current position of a problem onto a game engine, so that one could try different moves and see how the game engine responds. My main criticism of the problem apps is they only show you what the “correct” solution is — they don’t show you why it’s correct or what is wrong with some other sequence. With Tsumego Pro, I find that for about one problem out of twenty or so, either it gives a solution that doesn’t seem to me to be a solution (i.e. my position still seems killable, or the opponent position seems unkillable), or it shows as wrong an alternative solution that seems to me to work. (One example, below.) In those situations, I would really like to be able to switch to the game engine and play it out to see what happens. I realize I could probably open a game engine and set up the board the same way by hand, but that would be far too tedious to do as a regular thing, and anyway quite difficult on an Android phone or tablet where you can only see one app at a time.

Notwithstanding the lack of this feature, my impression is that my meager Go playing skills have improved much more from the Go problems than they ever did from playing games. There are a number of very good Go apps, and I haven’t by any means tried them all. If anyone knows of one that has the feature I just described, I would be grateful for the information.

Here is one example of a problem (from Tsumego Pro) where the “wrong” solution seems OK to me. Click on any to see larger view.

Starting position

Starting position

First move by black, white's response

First move by black, white’s response

Second move by black -- app says wrong -- white's response

Second move by black — app says wrong — white’s response

Third move by black, white has to wait one move to retake due to ko rule

Third move by black, white has to wait one move to retake due to ko rule


Final position -- program says wrong, but sure looks alive to me

Final position — program says wrong, but sure looks alive to me

Leave a Reply

Your email address will not be published. Required fields are marked *