Please note: This page is written in the present tense even though the later versions are not yet complete.
Forgive the format of this page. It should probably be a bit better organised, for example in a hierarchical form, but this should do for now.
The user can place stones of a single colour on the board.
Stones are not allowed to overlap each other.
The user can select any of three colours for stones to be placed. The colours are Black, White and ghost. Ghost stones represent purely hypothetical stones, which are useful as placeholders for eyes, etc.
The user can remove stones.
This version represents a virtual Go board. Stones can be placed but can not overlap, absolutely no rules are enforced, and no calculations are done for you. It is sort of possible to have a game, but only as much as in real life. For example, you would still ahve to argue about whether or not two stones are connected.
There is a new way to place stones - it is now possible for the user to select a stone and place their next stone touching the selected stone. To do this, the user will select this option, then select the stone they want the next stone to touch, then click in some open space. The next stone will be placed touching the first, but as close as possible to the point they clicked. If the position that is calculated is not a valid position for another stone, no stone will be placed.
The user can now place a stone touching two other stones. This is done in exactly the same way as in version 0.1.1: the user selects this option, selects the two stones, and clicks in the general direction they want the stone to be placed, and the next stone will be placed touching the two selected stones, and as close as possible to the point that was clicked (or not at all, if the calculated position is not valid).
Similarly to the above sub-versions, the user can place a stone touching an edge.
Similarly to the above sub-versions, the user can place a stone touching two edges (i.e. in a corner).
Similarly to the above sub-versions, the user can place a stone touching a stone and an edge.
When a stone is placed touching another stone of the same colour, they will be connected, and this will be represented graphically by a line between their centers.
When the user selects a particular option for how to place the next stone (stand-alone, stone, two stones, edge, two edges, edge and stone), if it turns out that another stone or an edge is in the way of placing the next stone in the calculated position, another option for placing a stone will automatically be selected and used, that includes the new stone or edge.
For example, if the user selects the option of placing a stone touching another stone, but the position they are going to place their next stone is would be overlapping another stone, then the system will place their stone as though they had selected the "place a stone touching two other stones" option and had selected their original stone and the new stone (that caused the problem) as their "two other stones".
At this point, it should be possible for two people to play against each other, using the software as a virtual goban. However, they are still responsible for enforcing the rules, just like in a real-life game (they have to remove stones by hand, the have to remember to alternate play).
Two users on separate computers, both running the software, can connect to each other through the internet (TCP/IP). They will both be in control of the same game. I.e. they can both do what they could do if they weren't connected, but any stone they place or remove in their instance of the software will also be placed or removed in their friend's instance of the software.
When the user removes a stone, all stones connected to it will also be removed.
Turns alternate automatically. Users can still place as many ghost stones as they like, but it is only possible to place Black stones during Black's turn, and similarly for White.
Stones die automatically, when there is not space for another stone touching them. This is probably really hard to implement, so I might change is slight to something like this: You have to have at least one ghost stone touching each Black or White stone on the board (at the end of your turn), or else the group will die and be removed.
Stones can not be removed except through capture.
The number of captured stones is recorded and displayed. (It didn't make sense to do this until now, because stones could be removed at will.)
The rule of ko is enforced. See GoOnABoardWithoutLines for a definition of the rule of ko in no-lines go.
Each player can only play when it is his/her turn (in internet play).
The game can be saved to a file.
The game can be loaded.