(do napisania programu nie jest potrzebna umiejętność gry w go, a jedynie znajomość podstawowych zasad, które są opisane w tym dokumencie)
Plansza składa się z przecinających się 19 poziomych i 19 pionowych linii. Czasem zamiast 19x19 stosuje się plansze 13x13 lub 9x9.
Linie pionowe tradycyjnie oznaczane są literami, poziome liczbami.[1]
Zadanie: program ma otworzyć okno, w którym jest narysowana plansza, oraz przycisk do wyjścia z programu.
Do gry służą czarne i białe piony, które gracze na przemian kładą na przecięciach linii
Zadanie: w momencie kliknięcia w pobliżu przecięcia linii [2] program ma umieścić na planszy odpowiedni pion (co najmniej czarne lub białe kółko odpowiedniego rozmiaru) [3].
Sąsiadami danego przecięcia są najbliższe przecięcia połączone z nim linią pionową lub poziomą (nie na skos)
Zadanie: w momencie kliknięcia w pobliżu przecięcia zawierającego pion, program ma wypisać zawartość tego pola i pól sąsiednich, np. tak:
Kliknięto A4: czarny A3: wolne A5: czarny B4: biały
Jeżeli pion sąsiaduje z pionem tego samego koloru mówimy, że są one połączone. Grupa to maksymalny zbiór pionów takich, że każdy z nich jest połączony z innym pionem z tego zbioru (pion niepołączony z żadnym pionem możemy traktować jako grupę jednoelementową).
Zadanie: w momencie kliknięcia w pobliżu przecięcia zawierającego pion, program ma wypisać grupę, do której należy dany pion.
Wolne pole sąsiadujące z pionem danej grupy jest nazywane oddechem tej grupy. Liczba oddechów danej grupy to liczba takich pól.
Zadanie: w momencie kliknięcia w pobliżu przeci ¹cia zawierającego pion, program ma wypisać oddechy grupy do której należy dany pion.
Powyższa ilustracja przedstawia czarną grupę i dwie białe grupy. Małe kwadraciki oznaczają oddechy. Jeśli biały zagra w punkcie oddechu wspólnego dla dwóch swoich grup, połączy je w jedną grupe.
Grupa żyje, jeśli ma co najmniej jeden oddech.
Ruch odbierający życie (ostatni oddech) grupie przeciwnika powoduje usunięcie z planszy wszystkich pionów tej grupy.
Jeśli Biały zagra w punkcie A, czarna grupa jest martwa i zostaje zdjęta z planszy
Ruch odbierający ostatni oddech własnej grupie jest niedozwolony, chyba, że zabija grupę przeciwnika (czyli po jej zdjęciu z planszy nasza grupa będzie miała oddech).
Zadanie: program ma realizować powyższe reguły.
[1] Tradycyjnie używane są litery: ABCDEFGHJKLMNOPQRST od lewej do prawej, oraz liczby od 1 do 19 od dołu do góry planszy.
[2] Pojęcie "w pobliżu" jest umyślnie nieprecyzyjne. Program musi je realizować tak, aby używanie go było wygodne; nierealistyczne jest wymaganie, by użytkownik kliknął dokładnie w punkcie przecięcia linii. Możliwą definicją "pobliża"jest np. obszar w promieniu 1/3 odległości między liniami.
[3] Można też użyć jakiejś ładnej bitmapy.