Linux E X P R E S

Facebook

Šachy v Linuxu

kralovna.png

Následující dva díly seriálu se zaměří na dvě konkrétní hry. Tento díl se bude věnovat u nás zjevně nejpopulárnější deskové hře šachy, příští se bude zabývat původem asijskou hrou go.


Nejznámější klienti

Klasický herní engine GNU Chess, jehož kořeny sahají až do první poloviny osmdesátých let minulého století, patří mezi jeden z vůbec nejstarších projektů GNU. V desktopovém prostředí GNOME lze hrát proti GNU Chess v programu glChess, který se vyvíjí v rámci iniciativy GNOME Games jako jedna z „oficiálních“ her pro GNOME. Obtížnost se nastavuje od jednoduché, přes normální po těžké. Na nejvyšší úrovni GNU Chess však pravděpodobně bez problémů porazí běžného klubového hráče. Lze říci, že z hlediska obtížnosti pro běžné hraní kombinace glChess a GNU Chess stačí. Na desktopové prostředí KDE se zaměřuje prográmek Knights, který je obdobou glChess pro KDE.

Program glChess v GNOME Program glChess v GNOME

Mezi propracovanější klienty se řadí například EBoard. Mimořádné popularity dosáhl jeden z nejstarších klientů XBoard, který podporuje i mnohé různé orientální verze šachu (např. Shogi) a různá netradiční pozměnění pravidel.

EBoard EBoard

V současnosti se používají dva komunikační protokoly Chess Engine Communication Protocol (CECP) a Universal chess interface (UCI). Protocol CECP etablovala kombinace GNU Chess a XBoard. Novější protokol UCI navrhl Stefan Meyer-Kahlen (autor enginu Shredder). Protokol UCI dnes vyžadují mnohé z nejsilnějších enginů. Bohužel CECP a UCI nejsou vzájemně kompatibilní. Problémy s podporou jen jednoho ze standardů lze snadno vyřešit vložením převaděče těchto protokolů Polyglot.

Mnohé aplikace naštěstí spolupracují s UCI i CECP. Zmínil bych především PyChess, který je podle FAQ otestován pod Linuxem pro tyto enginy: Crafty, GNU Chess, Sjeng, Phalanx, Fruit, Shredder Computer Chess, Toga II a několik dalších.

Varování před dlouhodobým hraním proti počítači

Při dlouhodobém hraní proti počítači hrozí, že si hráč zvykne na některou neoptimální strategii. Slabý hráč si snadno osvojí návyk, že k vítězství stačí dodržet některou antipočítačovou strategii. Například při zahájení v první řadě usiluje o zablokování středu pěšcovou formací. Hra se tím uzavře a engine neuvidí žádné rychlé taktické kombinace, takže začne zmateně pohybovat svými figurami. Následně v klidu věnuje třeba dvacet tahů přesunu těžkých figur na křídlo se soupeřovým králem a po perfektní přípravě následuje oběť figur (např. jezdců), která na tomto křídle rozbije pěšcovou formaci. Těžké figury tak silně útočí, že pravděpodobně následuje rychlý mat anebo počítač vykrvácí při zastavování vašich volných křídelních pěšců obětováváním materiálu. Matovou pozici, do které může ústit tato strategie, vidíme na ilustračním obrázku ke glChess (výše). Antipočítačová strategie slaví úspěch proti počítačům, přestože proti lidskému hráči, který dodržuje běžné zásady, jde o velmi hloupou strategii. Proto se vyplatí kombinovat hru proti počítači s hrou na speciálních on-line serverech, které organizují hru lidských oponentů.

Nejsilnější enginy

Herní síla špičkových programů se odhaduje nad tři tisíce ELO bodů. Možná poptáváte právě takový špičkový herní engine, protože chcete analyzovat své pozice, hrajete korespondenční šach, vyvíjíte vlastní šachový engine... I přes primární zaměření některých z nejsilnějších enginů na operační systém Microsoft Windows zůstává i v Linuxu dostatečný výběr.

Za nejsilnější engine několika posledních let se všeobecně považuje Rybka od českého programátora a šachisty známého jako Vasik Rajlich (asi Václav). Sice se software Rybka prodává jen ve verzi pro Windows, ale podle databáze testů na stránkách Wine lze bez jakýchkoli problému Rybku provozovat pod touto kompatibilizační vrstvou. Bohužel Rybka je nesvobodný a podle některých odborníků na počítačový šach porušuje autorské právo. Některé indicie totiž nasvědčují, že Rybka vznikla jako vylepšení svobodného enginu Fruit. To by znamenalo, že proprietární charakter Rybky porušuje copyleft u GPL pokrývající Fruit. Později se objevily velmi silné enginy Strelka a IPPOLIT, které pro změnu obviňuje Rajlich z porušování autorského práva k Rybce. Je však docela dobře možné, že schody mezi chováním enginů plynou z faktu, že implementují stejné všeobecně známé prohledávací algoritmy, způsoby reprezentace stavu ve hře apod.

Poměrně neznámý nový engine Houdini je podle nejnovějších výsledků nepatrně silnější než Rybka.

Přibližně srovnatelně silné jsou i linuxové enginy (nesvobodný) Shredder a (svobodný) Stockfish. Stockfish znamená v překladu Treska, čemuž odpovídá i ikona programu. Osobně nevidím jediný důvod, proč se nerozhodnout právě pro Stockfish. Herní síla Stockfische se na lepších strojích odhaduje nejčastěji těsně nad 3200 ELO bodů.

Jak vidíte, jde hlavně o ryby Jak vidíte, jde hlavně o ryby

Další enginy použitelné pro Linux jsou Fruit a odvozeniny (Toga, GrepFruit, GambitFruit...), Faile, Crafty, Phalanx, Sjeng... Připojením knihoven zahájení a koncovek lze zvýšit sílu herního enginu. Knihovny koncovek vyčerpávají všechna nebo všechna důležitá postavení v situacích s minimem materiálu, čímž umožňují rychle ohodnotit jednotlivé koncovky a zvýšit sílu enginu ve fázi přechodu ze střední hry do koncovky. Různé knihovny lze nalézt na internetu.

Ostatní software

Pro studium doporučuji především Shane's Chess Information Database (Scid), který využívá framework Tcl/Tk. Scid obsahuje databázi partií a různé funkce, které mohou využívat i herní síly připojeného enginu. Pro příznivce jiných widgetů existuje port Scidu do Qt, který se jmenuje ChessX. Existují i produkty pro úplné začátečníky a středně pokročilé. Například na stránce ChessTraining naleznete tréninkový software s možností například procvičování vizualizace šachových pozic.

Shane's Chess Information Database Shane's Chess Information Database

V kompozičním šachu často nelze použít běžné šachové enginy. V šachových problémech se totiž často výzva odlišuje od běžného záměru vyhrát partii (např. samomat, pomocný mat...) nebo jsou například mírně pozměňována pravidla šachu. Dále může skladba spočívat ve stanovení posloupnosti tahů vedoucí do cílové pozice (retrográdní skladba), v šachověmatematickém problému, v konstrukčním zadání, v ukázání humorných aspektů (tzv. žertovná šachová úloha)... Bohužel neznám program pro Linux, který by komplexně pokrýval problematiku kompozičního šachu.

Mnozí klienti zvládnou tisk šachových diagramů a notace. Pro šachovou typografii v LaTeXu lze vyhledat například toto a několik dalších rozšíření. Na internetu lze snadno nalézt i množství nejrůznějších šachových fontů.

Rovněž existují různé on-line herní servery, které snadno naleznete ve svém oblíbeném vyhledávači. Pochopitelně z Linuxu lze přistupovat i k dalším specializovaným šachovým portálům.

Autorem obrázku šachové figurky v úvodu článku je dracos. Dílo je zveřejněno pod licencí Creative Commons BY-NC-SA.

Diskuze (4) Nahoru