MC, 12:46 niedziela, 05.02.2012 r.
Ilustracja do artykułu: xBoard i silnik Crafty - Program szachowy dla początkujących i zaawansowanych

xBoard i silnik Crafty - Program szachowy dla początkujących i zaawansowanych

Bardzo często, początkujący szachiści, którzy albo nie mają z kim grać na co dzień, albo nie chcą tego robić przed osiągnięciem pewnego minimalnego poziomu umiejętności, szukają przeciwnika w postaci programu komputerowego. Niestety program taki może okazać się ścianą od której początkujący gracz odbije się prosto w kierunku zniechęcenia. O ile dla kogoś kto ma już pewne doświadczenie, przegrane mogą być niezwykle kształcące, o tyle dla kogoś kto dopiero zaczyna przygodę z szachami, dostawanie okrutnych batów, jest nie tyle rozwijające, co nużące i finalnie może zaowocować wyborem innego hobby. Dlatego niezwykle ważny jest wybór odpowiedniego poziomu trudności gry i w tym artykule chciałbym pokazać jak zarówno początkujący gracz jak i zaawansowany, może stanąć naprzeciw jednemu z czołowych silników szachowych - Crafty.

Czym jest Crafty?

Crafty (strona domowa Crafty) jest napisanym przez Roberta Hyatta silnikiem szachowym, który między innymi w 2010 roku zajął 2. miejsce w mistrzostwa świata programów szachowych w szachach szybkich ("World Computer Rapid Chess Championships"). Jak widać będzie to godny przeciwnik, nawet dla najlepszych graczy, ale i dla początkujących, o czym napiszemy dalej. Ważną rzeczą jest fakt, że silniki szachowe, same w sobie nie posiadają interfejsu graficznego. Dlatego też będziemy potrzebować "nakładki graficznej" na silnik, czyli programu z interfejsem, który będzie potrafił z tym silnikiem współpracować. W naszym przypadku będzie to xBoard.

No dobrze, ale co z początkującymi graczami?

Jak już wspomniałem, silnik o którego planujemy użyć, to jeden z najlepszych silników szachowych na świecie, gdy... pracuje na pełnych obrotach. My jednak, będziemy kontrolować jego możliwości i tak je ograniczać, by działał na poziomie odpowiadającym naszemu wymarzonemu przeciwnikowi. O tym w jaki sposób, za chwilę.

Dobrze, to czego potrzebuję?

Jak już wspomnieliśmy potrzebujemy silnika - Crafty, a także interfejsu - xBoard-a. Obydwa programy znajdują się w repozytoriach dlatego wydajmy polecenie:
sudo apt-get install xboard crafty
Niezbędne minimum już posiadamy, jednak warto również zainstalować sobie słownik debiutów, dzięki któremu silnik będzie działał sprawniej. Mamy do wyboru dwa, mniejszy i większy, które znajdują się kolejno w pakietach crafty-books-small i crafty-books-medium. Powiedzmy, ze na początek zainstalujemy mniejszy, ale tutaj pozostawiam pełną dowolność, więc jak komu wygodniej.
sudo apt-get install crafty-books-small
Dobrze, zatem mamy wszystko czego potrzebujemy do rozpoczęcia gry.

Jak uruchomić xBoard z silnikiem Crafty?

Czas na najważniejszy moment - uruchomienie xBoard z silnikiem Crafty. xBoard może mieć podłączone do siebie jednocześnie dwa silniki jako dwóch graczy, ale my podepniemy tylko Crafty i sami staniemy się jego przeciwnikiem. Wydajmy więc polecenie w terminalu:
xboard -fcp "crafty"
Argument -fcp oznacza FirstChessProgram i jest to sygnał dla xBoard-a, że Crafty ma być użyty jako pierwszy silnik.
Teoretycznie już teraz możemy zacząć grać, ale interesuje nas jeszcze temat ograniczenia możliwości tego silnika, tak by i początkujący mogli uczyć się tej gry dobrze się bawiąc.

Jak dostosować poziom zaawansowania?

Silniki szachowe maję tę umiejętność, którą początkujący zawodnik musi dopiero wypracować - myślenie na kilka ruchów w przód. Dlatego też ograniczenie głębokości "myślenia" przez silnik będzie głównym sposobem na dostosowanie jego poziomu jako przeciwnika. Aby określić jak daleko ma się silnik posunąć w obliczeniach musimy przy uruchomieniu xBoard podać parametr -depth. Jeśli np. chcemy ograniczyć silnik, żeby myślał tylko jeden ruch do przodu, musimy wydać polecenie:
xboard -fcp "crafty" -depth 1
W ten sposób kontrolujemy poziom zaawansowania gry. Jeżeli masz ochotę sprawdzić, czy to ograniczenie naprawdę działa, to uruchom xBoard z -depth 0, a wtedy zobaczysz, że silnik szachowy nie wykona żadnego ruchu gdy nadejdzie jego kolej.

Na początku nauki gry w szachy warto również znieść ograniczenie czasowe, które w xBoard domyślnie wynosi 5 minut. Gdy gramy, żeby się uczyć, lepiej siedzieć nad jedną rozgrywką i dokładnie ją analizować choćby przez kilka dobrych godzin niż stresować się uciekającym czasem. Do ustawienia czasu przypadającego na rozgrywkę służy argument -tc (timeControl). Dlatego ustawmy go np. na 1000 minut i zapomnijmy o czasie podczas rozgrywki.

xboard -fcp "crafty" -depth 1 -tc 1000

Czy to już wszystko?

To już wszystko co chciałem omówić w tym artykule. Życzę miłej gry w szachy.

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: