Domácí práce z předmětu 36PJC

11. června 2001

skupina 46, letní semestr 2000/2001

1 Zadání

Vytvořte program v jazyce C hrající s uživatelem šachy

2 Rozbor

Výsledný program používá běžnou metodu alfa-beta okna kombinovanou s rozšířením hloubky při šachu a bracích sekvencích. Jednoduše počítá alfa-beta do hloubky 1, poté 2, atd., až konečně jeden propočet nestihne vzhledem k zadanému času. V každé dalším kroku se jako první počítá nejlepší tah z minulého průchodu, šetří se tak ubývající čas. Při hodnocení se používá jednoduchá funkce počítající materiál podle běžných hodnot D = 950, V = 550, S = 330, J = 330, P = 100. Neobsahuje žádné další možnosti běžné z moderních šachových programů jako je postup pěšce, postavení střelců, postavení pěšec - věž, pohyb krále. Je implementováno pouze hodnocení postavení krále.

Pro styk s uživatelem jsem zvolil textové rozhraní z důvodu lepší přenositelnosti programu i na jiné platformy než MS-DOS.

3 Ladění

Program testovalo několik mých přátel a nad většinou z nich program vyhrál. Zkušený šachista 3 výkonostní třídy by však neměl mít žádné problémy počítač porazit.

4 Závěr

Podařilo se zrealizovat jednoduchý šachový program v programovacím jazyce C. Musím však přiznat, že program nehraje přesně podle striktních pravidel, neimplementoval jsem konec partie při třikrát stejné pozici, pravidlo 50 tahů a ani braní pěšců mimochodem. Myslím však, že by bylo možné tyto funkce dodatečně doplnit.