Klient pro uživatelské prostředí

Aby byly moje šachové programy lehce uživatelsky přístupné, upravil jsem je jako klienta k rozšířenému šachovému uživatelskému prostředí Winboard (to je verze pro windows; verze pro linux a unix se jmenuje Xboard). Úspěch totoho uživatelského prostředí jistě spočívá v dobré dokumentaci a jednoduchém způsobu komunikace mezi klientem a serverem. Server (uživatelské prostředí) si klienta (motor) spustí jako child process a komunikují spolu přes standardní vstup a výstup. Vlastní protokol komunikace je už poněkud složitější. Důvodem je potřeba nastavit počítaní času, různé funkce motoru jako například tzv. “pernament brain” (motor propočítává varianty ve vláknu na pozadí, i když není zrovna na tahu), ošetřit indikaci remízy atd.

Díky jednoduché ale praktické myšlence se pomocí Xboardu resp. Winboardu mohou lehce střetnout dva programy proti sobě nebo dva soupeři (lidé či programy) přes síť. Xboard a Winboard používá zřejmě nejznámější open source šachový projekt GNU Chess. Více na

Screenshoty

... program (černý) neoplývá žádnou znalostí zahajení. První tahy jsou ze strategického hlediska slabé....

...taktickou hrozbu (vazba dámy na sloupci e) by viděl každý začátečník. Program ji “vidí” také, ale nikoli na základě zkušenosti nebo pattern recognition, ale na základě propočtu variant. Šipkami je naznačen poslední tah bílého a následující tah černého.

....ani koncovky nejsou silnou stránkou programu. Program jako černý by měl jasně
zvítězit, ale protože nevidí zisk materiálu ani mat v horizontu 5 půltahů, což je maximální hloubka stromu, táhne jezdcem cyklicky z d8 na f7 a zase zpátky (pokud bílý tahá Kd5 – c5 a nazpátek). Bílý tak snadno získá remízu opakováním tahů. Je nutno dodat, že chování programu je snadno pochopitelné – zisk materiálu ani mat do 5 půltahů v dané pozici není, dál “vidět” program nemůže, a jelikož nemá žádnou strategickou “znalost” hodící se k této pozici (například “zažeň krále do rohu šachovnice”), jsou jeho tahy prakticky “náhodné” (většina tahů obdrží stejné ohodnocení, vybere se ten tah, který se v propočtu objevil jako první (v paralelní verzi “první” znamená “první u procesu s nejnižším pořadovým číslem”)).