iPhone Screenshots
Description
With Goperfekt, for example, you can play on boards with various geometries — rectangles (not only squares), cylinders, toruses, and other exotic forms —, all of that on innumerable board sizes!
Its name, Goperfekt, is an Esperanto term that means “perfection in go” — a partly exaggerated description, admittedly.
Features
You can play against yourself, or against another player sitting beside you, but also of course against the program. And Goperfekt can also play against itself.
You can allow suicide or not, choose between three kinds of final result and among several ways of counting the points. You can also play capture go, a simplified form of go in which the first to capture wins.
Do you want to record a game? On the one hand, Goperfekt allows you to orient the board as you wish, that is, not only with Black below (White above), but also with Black above (White below), Black on the left (White on the right), or Black on the right (White on the left). On the other hand, the program allows you to register any piece of information on this game that the SGF file format permits.
Specialty: small boards
Unfortunately, Goperfekt can play well only on very small boards, up to a maximum of 16 points (that is, 1 × 16, 2 × 8 or 4 × 4). Boring? No: on such small boards go is fun, sometimes surprising, often challenging. Have you ever tried to solve Cho U’s incredible problems on 4 × 4 boards? You’ll find even capture go quite interesting, on the many different boards available.
There’s always a “but”…
It must be said that Goperfekt has a big flaw: on boards of about 12 points or more it reacts sometimes terribly slowly — calculation times can be very long. Goperfekt remains basically an experimental program.
Its creator
is François LORRAIN, a Canadian mathematician and go player from Montréal (Québec), also a member of the American Go Association.
Algorithms
Goperfekt doesn’t use neural nets! For the smallest boards, it calculates the exact value of every permitted move in any given legal position by brute force with alpha-beta pruning. If desired, the user can display on the board the values calculated. Unfortunately, for go as such (in contrast to capture go), this kind of calculation turned out to be feasable only for boards from 0 to 5 points (boards with sizes 0 × 0, 1 × 1, 1 × 2, 1 × 3, 1 × 4, 2 × 2, 1 × 5). For boards having 6 points more, the calculation turns out to be so long that, during my tests, I was unable to complete a single such calculation, even after tens of hours on my table computer — in spite of the fact that the program divides the computation into several concurrently executed tasks! This surprised me and also considerably disappointed me.
In go, for boards of 6 points or more, the program must use a different method: it calculates iteratively a value interval, as narrow as possible, for each and every legal position on a given board. The inventor of this method, François Labelle, a Montréal go player, generously explained to me his method — so I owe him a lot. These intervals, used instead of precise values, allowed me to accelerate beyons my hopes the calculation of trees of value intervals for go-boards having from 6 to 16 points. Unfortunately, because both RAM and time are limited, I was obliged to limit the size of the boards to which Goperfekt applies this method to a maximum of 16 points (i.e. up to sizes 1 × 16, 2 × 8 or 4 × 4).