BGJ 135 Autumn 2004
Bakaban is a free Windows program, which allows you to play Go on a variety of surfaces other than standard Go boards.
It has a limited understanding of the rules of play. It automatically removes strings that have no liberties, but it does not know about the ko rule, and it does not allow suicide. It is intended merely to support the various board conformations, and to allow users to play on them. Its purpose is to support play on a variety of topologies.
First, there is an ordinary rectangular board, and some adaptations of it. These adaptations are: the cylinder, in which the points on the left edge are adjacent to the points on the right; the torus, in which the same is also true for the points along the top and bottom edges; the Möbius band, which is like the cylinder, except that there is a “twist” in the adjacencies, so that a1, a2, etc. are adjacent to t19, t18, etc.; and the Klein bottle, in which the left and right edges are adjacent with a twist and the top and bottom edges are adjacent in the normal way. For these boards, you can set the vertical and horizontal dimensions, separately, to anything from two to 99 points.
Next are the octagon, in which a square board has had an identical isosceles triangle cut from each corner; and the diamond, which is a special case of the octagon, in which the triangles are as large as possible without actually meeting. For these, again you can set the dimensions to anything from two to 99, but there is only one dimension to set, as they are essentially square. For the octagon you can also set the size of the missing triangles.
Next are the face cube and the edge cube. A face cube is formed by taking six identical square boards, and placing them on the faces of a cube so that nearby intersections of different boards are adjacent. Thus what was an edge intersection acquires one new neighbour, and what was a corner intersection, two. An edge cube is similar, but with the nearby intersections coinciding rather than being adjacent. These cubes have only one dimension to set, the length of the edge of the cube. You are meant to be able to set it to anything from two to 40; but setting it to values over 20 is not a good idea, as it can cause an “Invalid floating point operation” error, either when the board is created, or more annoyingly later when you try to use it.
Finally, there is the “sphere”. This is a small rhombicosidodecahedron, the Archimedean solid formed from 12 pentagons, 30 squares and 20 triangles. It has the property, useful for Go, that each of its 60 vertices has four neighbours. It has no dimension that you can set.
All of these conformations are displayed with all the points visible. For those with a spherical topology, the “antipodes” of the current centre are spread around the edge of the view. For all of those which wrap around on themselves, it is useful to be able to see the board from different viewpoints: this is handled well, with controls that allow vertical and horizontal scrolling.
You might wonder why, if the Klein bottle is supported, the projective plane is not. I think that this is because there is no way that a rectangular grid can be converted tidily to a projective plane: there must be two “puckers”, at each of which either one intersection have only two liberties, or two adjacent intersections have only there each.
Bakaban can count the score, but makes no attempt to decide which groups are dead. So at the end of a game, you mark the dead strings - it knows what a string is, so you only have to click on each dead string once. There are five numbers constantly displayed, which are the numbers prisoners of each colour, the territory of each colour, and the net total. Of course, while there are dead stones on the board, the figures must be treated with caution.
You can set the board and stones to be simple colours, or to use bit maps to give them some texture. You can also arrange for the stones to be numbered as they are played. Doing both at once is a bad idea, as a bug then makes the numbers on one colour of stone invisible. With the first five conformations listed above, you can save a game to a file in SGF format. For a regular square board this works. For other boards, it is not much use, as no application, not even Bakaban itself, can apply the topology information that is recorded in the file. You can undo moves, as far back as you like. It remembers the undone moves, and you can redo them, until you overwrite the sequence by making some other move instead.
Bakaban does its job well, and is fun to play with. In particular, the “sphere” has a tendency to generate ladders; and for someone used to a rectangular grid, it is hard to predict where these will go. For all the unbounded boards, making a live group just by making two eyes without killing something that was trying to live is almost impossible; so a game is likely to end, either in a massacre and resignation, or in a whole-board seki. But while it is fun investigating the possibilities of these boards, I don’t think I’ll ever use Bakaban for competitive play.