Problem Construction Basics

The SGF format

Problems on this site are saved in the SGF format. SGF stands for either Smart Go Format or Smart Game Format. Basically, it's an excellent and standardized way of expressing a go game as a text file, with full support for variations, markup, and even customized formatting tags. A full explanation is beyond the scope of this document, but information can be found here. (Note, it's not necessary to read this or fully understand SGF in order to submit problems to this site.)

All popular operating systems have SGF editors free to use. A list can be found at Sensei's Library.

Basic Structure

Problems start with a set up position: a bunch of black and white stones already on the board at the root position.

Any problem on has to have at least one node (position) that is marked RIGHT. In other words, there has to be at least one correct solution for each problem. To mark a position as correct, simply put the word RIGHT (caps required) in the comment. (i.e., C[RIGHT]). The RIGHT gets taken out, so the user doesn't see it -- any other text in that comment will still be displayed, however. And basically, that's it. As long as you don't do anything tricky, a problem will come out fine. All variations that don't end in RIGHT are considered wrong, so there's no need to state something's wrong explicitly.

Example 1


This is a very simple problem, with precisely one delineated path leading to a correct solution.

Example 2

(;AW[hh][lh][hi][ji][li][lj]AB[kg][lg][mg][mh][mi][mj][kk][lk][mk]C[Black to play and catch the three stones.](;B[ki];W[kh](;B[jh];W[kj];B[jj];W[ki];B[ii]C[RIGHT])(;B[kj];W[jh]))(;B[jh];W[jj])(;B[jj];W[jh])(;B[ii];W[jj]))

This problem has one correct path (marked RIGHT) and three paths illustrating how other attempts to catch the stones fail.


Problems must also do the following:

  • Alternate black and white moves
  • No pass moves
  • Only one move color at the root (ie you can’t have one first move black and another white)
  • Every node after the root must have a move
  • Use the UTF-8 character set
  • Not contain HTML or Javascript