The Nakade Shapes of Badux

Let’s call an enclosed eyespace a single-eye shape if it cannot be made to yield two eyes when the opponent moves first. A surrounded group whose only eyespace is a single-eye shape cannot live.

If you play Go you already know several of these, under the name nakade (中手, “inside move”) — the throw-in that kills them, and by extension the shapes themselves.[1] There are nine single-eye shapes on a Go board, and the five larger ones have colorful names: the square four, the pyramid four, the bulky five, the crossed five, and the rabbity six. The other four are the very small eyespaces, one to three points, perhaps too basic to have earned catchy names.

The largest is six points, and a 2003 paper by Ramon Vilà and Tristan Cazenave showed there is no seven-point shape. They worked out that a Go eyespace’s fate can be read off a small amount of information about its shape.

The nine single-eye shapes of Go, grouped by eyespace size.

The vital points of these shapes are marked with red circles. Unless the attacker plays one of them next, the defender has a move that lives. Shapes with no circle are dead even if the defender moves first.

Badux Go is played on a hex board. Same stones, same captures, same two eyes to live — the one change is that every point has six neighbors instead of four. That makes the list above a fact about square boards rather than a fact about Go. So I thought it would be useful to draw up a list for people interested in Badux.

I wrote a program that plays the eyespace out properly — real captures, real liberties, no suicide, both sides playing as well as they can. A shape is dead if the attacker, moving first, can capture the group around it. To check the program was working, I ran it on an ordinary Go board, where it produced the established nine.

The 21 single-eye shapes of Badux, grouped by eyespace size.

Twenty-one shapes, sizes one through eight. Badux single-eye shapes are bigger, so a Go player’s sense of what is large enough to live may be wrong here.

Single-eye shapes by eyespace size, Badux against Go.

Vilà and Cazenave showed there is no seven-point single-eye shape in Go. My program checked all the shapes on both boards up to size nine. So any shape of size 9 or less that is missing from these charts can make two eyes. But that is not the same as the space being safely the defender’s: a large enough eyespace can hold a seki, or an attacker’s group that lives. Past size nine, a missing shape means only that I know of no published check.

All eyespace shapes by size, Badux against Go.

The code, and the shapes as machine-readable data, are at github.com/VariationalGames/nakade-analysis.

Come play at baduxgo.com and see if you can spot one of these in the wild.

[1] I am avoiding nakade as the technical term because it is used in at least two incompatible ways. Players use it for the killing move. Vilà and Cazenave use it for a status a position acquires once the vital points are filled, and separately for shapes with one or zero vital points. “Single-eye shape” sidesteps all of that. The rabbity six, meanwhile, is called that because it looks like a rabbit, and I am not going to improve on it.

3 Likes

I am thinking of computing eyespace values -

1 , 2 , seki , 1.5 , (1+seki)/2 , (seki+2)/2
and more complicated values

​- for the shapes you considered and more complicated ones.
​
​
Do you already have a format you’d want the output in?

(I suppose I can give you some output and let you
decide what adjustments you want in the format.)

I am still spec’ing out the format I want the shape library in. For one thing, I know I only want to consider fully enclosed regions for the time being. And I want to track all possible interior stones in a shape, both opponent and friendly. And I want to treat edges distinctly from the defending stone shape boundary. I know I want to put shapes into at least three categories:

  • Assuming the group has another eye elsewhere, the shape makes an eye.
    • This would indicate the attacker could take away all the liberties for the shape by filling them with attacker stones, but that these stones could then be captured on the next turn by the defender.
  • The shape makes an eye regardless of whether the group has a second eye yet.
  • The shape makes life, and is entirely the territory of the defender.

This is what I need for provable territory, which is important both for the bots’ analysis, as well as for guaranteeing game termination in the face of an obstinate opponent who does not want to accept the count.

Other information would prove useful. For instance, if I tracked which points the attacker could play to limit the shape to a single eye, then in those branches of the tree where the attacker plays one of those stones, I could provide a crisper analysis by applying that info. It would also be potentially useful to know that the shape brings life to the surrounding stones, even if the enclosed territory is not guaranteed to be their territory (seki, or the opponent can live inside).

I do intend to generate this library computationally, using minimax for starters as a solid proof mechanism. Provability is important here, as I sometimes use this kind of life analysis for deciding game results (as alluded to above).

I am fairly sure that with Black to play, the white shape is alive in seki. I read it out as best as I can but lots of times I miss stuff. Is it still a seki if it was on the edge or in a corner instead of fully surrounded?

1 Like

Here, White can make two eyes from the shape it surrounds, but Black also gets to live inside. Can you think of a more realistic example where White lives but Black lives inside as well?

1 Like