Moją ulubioną grą były, są i będą szachy ale raz na parę lat ogarnia mnie chęć zrozumienia o co chodzi w Go. Przechodzę właśnie kolejną taką fazę, stąd min. mniejsza aktywność na blogu - spędziłem ostatnio trochę wieczorów na przypominaniu sobie zasad, rozwiązywaniu prostych tesuji i tsumego i próbach grania. Zapewne skończy się tak, jak kończyło poprzednio - za parę tygodni przejdę od początkowego zapału do zniechęcenia ogromem wymagającego opanowania materiału - ale póki co sporo myślę o układach kamieni.
Zatem - krótki artykuł o Go. Nie, nie będę uczył jak grać.
Kilka słów o grze
Mimo pozornie prostych reguł gra w Go jest bardzo trudna. Wymaga zapamiętania ogromnej ilości charakterystycznych pozycji i metod ich rozgrywania, sprawnego posługiwania się nimi a także analizowania bardzo złożonych wariantów. No - wymaga od kogoś, kto chciałby grać przyzwoicie.
Tak, jak wprawny szachista od razu widzi widełki, groźby matowe czy wie jak oceniać końcówki, goista powinien instynktownie rozpoznawać dziesiątki standardowych kształtów, manewrów czy uderzeń taktycznych. I jest to dopiero podstawa, na której należałoby budować strategiczne plany i sprawnie przeliczać warianty.
Spore wyzwanie, dużo nauki, dodatkowo utrudnionej przez wszechobecną japońską terminologię. Zarazem jednak - bardzo głęboka, frapująca, wciągająca gra.
Ze swymi raz na zawsze stawianymi pionkami go jest też jakoś pierwotnie, koncepcyjnie inne od szachów, warcab, halmy i innych planszówek popularnych w Europie - zazwyczaj bazujących na ruchu, dynamice, manewrze. Co zabawne, podobną charakterystykę ma ... Carcassonne.
Nauka
Próba gry w oparciu o same zasady kończy się szybkim upokorzeniem nawet w kontaktach z bardzo słabymi rywalami. Trzeba choć trochę poczytać i poćwiczyć.
Lektury
Zabierałem się do paru książek dla początkujących i do paru sieciowych tutoriali. Najlepsze wrażenie zrobiło na mnie Zagraj ze mną w go Jana Lubosa. Cienka (140 stron), dająca się przeczytać w dwa-trzy wieczory książeczka, niezbyt trudna ale zostawiająca w głowie sporą porcję podstawowych pojęć i manewrów (udanie ilustrowanych ćwiczeniami).
Z tutoriali online niezłe pierwsze wrażenie zrobiło na mnie Master Go in 10 days. Po polsku jest dostępny interaktywny kurs na go.art.pl.
Bardzo często są w sieci rekomendowane książki Jamesa Daviesa, z których Tesuji wyszło po polsku. Dopiero się do tej książki zabieram, wygląda na sensowną (ale i trudną) następną lekturę po Lubosie.
Układankę uzupełnia Sensei's Library - bardzo rozbudowane wiki poświęcone Go, omawiające mnóstwo pojęć związanych z tą grą. Używam go głównie do sprawdzania znaczenia niezrozumiałych japońskich słówek, metoda ta sprawdza się znacznie lepiej od wyszukiwania w Google.
Jest też polski serwis - go.art.pl - który jednak najmocniej skupia się na publikowaniu wyników lig i turniejów, tabel rankingowych itp.
Ćwiczenia
Drugi ważny element to goproblems.com. Serwis z dużą ilością krótkich zadań - głównie wymagających znalezienia najlepszego ruchu (albo sekwencji kilku ruchów) w danej pozycji.
Zadania można selekcjonować ze względu na poziom trudności a także temat, rozwiązuje się je klikając na wyświetlanej planszy (aplet Javy - ale dość zgrabny i estetyczny), w razie błędu można obejrzeć poprawne rozwiązanie, są obsługiwane alternatywne warianty. A dla uprzyjemnienia rozwiązywania goproblems nalicza rozwiązującemu ranking.
Przesiedziałem nad tymi zadaniami parę godzin (na razie ograniczając się do poziomu Easy) i już zacząłem zauważać, że przydają mi się w granych partiach.
Zamiast w sieci, zadania można rozwiązywać też lokalnie.
Służącym do tego programem jest uliGo (w Debianach i Ubuntu
dostępne w standardowej dystrybucji - apt-get install uligo
).
Używałem go króciutko (w tej chwili wystarcza mi goproblems),
mogę stwierdzić, że obsługuje się go bezproblemowo i wygląda przyjemnie.
Ciekawostka: uliGo jest napisane w Pythonie (z użyciem Tk). W większości powstał w latach 2001-2003, niedawno pojawiło się odgałęzienie mające ułatwić tłumaczenie programu. Jest dla niego dostępne repozytorium Mercurialowe.
Korzystanie z uliGo wymaga ściągnięcia baz z zadaniami. Spory
zestaw jest dostępny na stronie autora,
można też próbować korzystać z innych baz w formacie .sgf
(między
innymi można pobrać zadania z goproblems
albo z gobase - uwaga, nie testowałem
ich jeszcze w uliGo). Pobrane bazy zapisujemy w katalogu ~/.uligo
.
Format
.sgf
jest standardowym tekstowym formatem zapisu partii Go, pełniącym rolę zbliżoną do szachowego PGN i obsługiwanym przez wszelkie programy do gry w Go.
Ostatnim elementem ćwiczeń jest gra na mniejszych planszach - najpierw 9x9, potem 13x13. Grane tak partie są krótsze, szybciej doprowadzają do starć i do ich rozstrzygnięć, szybciej pozwalają ocenić rezultaty przyjętego planu. Na obu omawianych niżej serwerach można grać takie partie i nie ma większego problemu ze znalezieniem przeciwników chętnych do ich rozgrywania.
Gra przez sieć
W Go można grać przez sieć, dostępnych jest kilka popularnych i kilkanaście mniej znanych serwerów. Najciekawszymi wydają mi się:
PandaNet
PandaNet IGS to prestiżowy japoński serwis zapewniający dobre wsparcie także dla anglojęzycznych użytkowników. Trochę kojarzy mi się z szachowymi ICC i FICS - także tutaj mamy tekstowy telnetowy protokół (wraz z okienkiem konsoli na którym, jeśli chcemy, możemy wydawać tekstowe komendy), możliwość wyboru jednego z wielu programów do gry i długą, długą historię. Można tu grać samemu, można też obserwować partie innych zawodników.
Najwygodniejszym - przynajmniej dla użytkownika Linuksa - programem do
gry wydaje mi się nie rekomendowane przez właścicieli glGo ale
qGo (na Debianie i Ubuntu dostępne w dystrybucji - apt-get
install qgo
). Pod wieloma względami programy te są do siebie podobne ale
qGo ma czytelniejszy układ głównego ekranu i menu, jest trochę
żwawszy i ma polską wersję językową. No i działa bez problemów na
AMD64, gdzie 32-bitowe glGo zainstalować trudno (wymaga wielu
32-bitowych bibliotek a nawet 32-bitowego Pythona).
qGo bywa w sieci opisywany jako starsza, zarzucona wersja javowego gGo. To już nieaktualne - co prawda autor kilka lat temu zdecydował się na reimplementację w Javie ale rozwój qGo (opartego na C++ i QT) został w latach 2007-2008 wznowiony i trwa (obecnie postępują prace nad wersją wykorzystującą QT4).
qGo nie ogranicza się do obsługi PandaNet IGS, wspiera też kilka innych serwerów (wykorzystujących oprogramowanie z rodziny NNGS), między innymi polską Aurorę.
Na powyższym obrazku widać drobny problem z używalnością. Po wpisaniu danych konta trzeba kliknąć przycisk Dodaj i dopiero później zatwierdzać całość przez OK. Wpisałem dane, kliknąłem OK a następnie dziwiłem się, czemu dalej loguję się jako gość.
Można grac jako gość ale lepiej się zarejestrować (radzę robić to przez formularz webowy, opcja rejestracji wewnątrz programu nie chciała mi zadziałać). Nieaktywne konta są po pewnym czasie usuwane, dla zachowania identyfikatora, rankingu i historii trzeba choć raz na parę miesięcy się zalogować.
Nie ma listy ofert gry. Zamiast tego można:
-
włączyć sobie flagę looking for a game (chmurkę na toolbarze) i czekać na propozycje (takowe się nieraz zdarzają, nawet ze strony silniejszych graczy dających handicap),
-
kliknąć przycisk szukaj gry (w poniższym oknie przycisk na lewo od dropdownu równy, ustawienie z dropdownu ustala akceptowaną różnicę siły),
-
wyszukać gracza o zbliżonej sile i wyzwać go bezpośrednio (opcja rozgrywka w menu pod prawym klawiszem myszy), przy czym listę graczy można sobie filtrować (ze względu na zakres rankingu a także otwartość na wyzwania) - ustalamy odpowiednie kryteria po czym klikamy pobierz nową listę graczy na toolbarze.
Gra się dość intuicyjnie a w trakcie gry można rozmawiać przeciwnikiem. Partia kończy się po trzech kolejnych pasach, następuje wtedy faza oznaczania martwych kamieni - serwer proponuje wstępną wersję ale czasem trzeba ją poprawić, po prostu klikamy kamienie przeciwnika, które są do usunięcia.
Następnie obaj gracze klikają Gotowe i zostaje ogłoszony wynik.
Warto nakazać programowi autozapisywanie rozgrywanych partii (opcja w
preferencjach) albo ich wysyłanie mailem (set automail 1
w
konsoli). Automatycznie zapisywane partie domyślnie trafiają do $HOME
(każda do nowego pliku .sgf
, nazwy w stylu 2009-11-28-Roto-Mekk-1.sgf
),
by trafiały gdzie indziej należy zaznaczyć w preferencjach opcję
zapamiętaj ostatnio używany katalog (zakładka Import/Eksport)
i ręcznie (Plik/Zapisz) zapisać jakąkolwiek partię w tym katalogu.
KGS
Kiseido Go Server jest bardzo popularny wśród europejskich i amerykańskich graczy, a ponieważ ma polską wersję językową (przetłumaczony jest nie tylko program do gry ale też część serwisu webowego), pokazuje się na nim także wielu Polaków. Ba - jest nawet polski pokój ze sporą grupą bywalców.
Programu do gry tym razem wybrać się nie da, protokół serwera jest tajny
(ciekawostką jest próba reverse-engineeringu)
i grać trzeba przy pomocy javowego CGoban3 (którego nie należy
mylić z dostępnym w pakietach archaicznym cgoban
, którym można zagrać
na IGS a nie na KGS). Na Linuksie najwygodniejszą metodą
uruchamiania jest napisanie skryptu cgoban3
o treści:
#!/bin/sh exec javaws http://files.gokgs.com/javaBin/cgoban.jnlp
i wrzucenie go do ścieżki lub podpięcie pod ikonkę. Trzeba mieć zainstalowaną i ustawioną jako domyślną sensowną Javę (Sun lub OpenJDK).
Po rejestracji (logujemy się jako gość podając pseudonim pod którym chcemy występować, następnie wybieramy z menu Użytkownik/Rejestracja) warto dołączyć do polskiego pokoju i przejrzeć ustawienia, a potem ... można grać.
Na KGS można składać publiczne oferty gry i je przeglądać, więc szukanie przeciwnika jest bardzo wygodne.
Nie ma opcji zapisywania czy wysyłania mailem zakończonych partii ale serwer je zachowuje (na stronie archiwum znalazłem nawet moich kilka prób z 2005 roku).
Gra korespondencyjna
Ostatnią wartą wspomnienia opcją jest DragonGoServer. Jest to serwer do gry korespondencyjnej, tj. takiej, w której w zadanej partii ruszamy się raz dziennie (albo i rzadziej). Za to możemy grać wiele partii równocześnie.
O ile szachy korespondencyjne bardzo lubię, o tyle co do Go mam trochę wątpliwości. Z jednej strony - taka gra daje unikalną możliwość douczania się w trakcie partii (można sobie szukać w książkach czy sieciowych serwisach informacji o napotkanych pozycjach), z drugiej - partie Go są zwykle dłuższe (jeśli chodzi o ilość ruchów) od szachowych i w wersji korespondencyjnej potrafią się ślimaczyć (rośnie też ryzyko porzucenia partii przez jednego z rywali).
Sam DragonGoServer jest bardzo przyzwoity, gra się wygodnie, wygodnie też szuka się przeciwników (znowu - mamy tabelę ogłoszeń o chęci gry).
Oglądanie zakończonych partii
Oba omawiane wyżej programy do gry pozwalają też na przeglądanie zakończonych partii, analizowanie wariantów itp. Na moje potrzeby jest to jak dotychczas wystarczające, w przyszłości być może zainteresuję się Kombilo (program bazodanowy z różnymi opcjami wyszukiwania partii, napisany przez autora uliGo - także w Pythonie).
Opinię najciekawszego narzędzia dla graczy Go ma w sieci komercyjne SmartGo, obejmujące program do analizowania i wyszukiwania partii, sporą bazę tychże, narzędzia do rozwiązywania niektórych pozycji a także zbiór zadań. Program nawet nie jest szczególnie drogi (69 dolarów) ale niestety - dostępny tylko dla Windows (jest to aplikacja .NET). Próbowałem odpalić demonstracyjną wersję pod
wine
, na razie bez efektu (program zainstalował się, przy uruchomieniu wyświetlił okno ale od razu zgłosił kilka technicznych błędów i zawiesił się).
W sieci dostępnych jest wiele baz partii, np.:
- gobase
- europeangodatabase
- baduk.pl (polskie)
- NNGS archive (duża baza partii z nieistniejącego już ale niegdyś popularnego serwera NNGS).
Można też przeglądać partie zapisane na serwerach, choćby te pochodzące z KGS archive.
Dopisek: przy intensywniejszym używaniu baz partii Go może się przydać sgfc - prosty command-line program umiejący sprawdzać poprawność plików
.sgf
, poprawiać niektóre błędy, dzielić plik.sgf
zawierający wiele partii na pliki zawierające po jednej partii itp.
Gra przeciw komputerowi
qGo i CGoban3 pozwalają również na grę przeciw komputerowi. Oprócz
deski trzeba mieć też właściwe engine (program wyliczający
ruchy). Najpopularniejszym jest GNU Go (spakietowane, apt-get
install gnugo
), mniej znanymi a ciekawymi programami są podobno
MoGo oraz
Fuego.
Przeciw komputerom można również grać na serwerach, na każdym z nich działają boty oparte na popularnych programach.
Piszę o tym wszystkim teoretycznie, po szachowej traumie nie mam ochoty na rywalizację z maszyną. Co prawda, programy do Go są relatywnie słabsze (ciągle przegrywają z zawodowymi graczami a nawet silnymi amatorami)...
Na żywo
Na żadnych turniejach nie byłem, natomiast przy okazji kupowania Carcassonne skusiłem się na tak zwane Atari Go czyli małą drewnianą planszę 9x9 z zestawem pionków.
Rzecz jest przyjemna - pionki są miłe w dotyku, plansza estetyczna - i chce się jej używać. Także dzieciakom, dla których szybka rozgrywka 9x9 jest chyba idealna.
Liczenie rozmiarów terytoriów jest dla dzieci trudne, lepiej wychodzi uproszczona gra kto pierwszy zbije trzy pionki (albo jeden, albo pięć).
Pełnowymiarowe gobany są niestety drogie.