Sachy jsou implementovany v prologu, ktery je vhodny pro implemetaci algoritmu z Umele inteligence. Pro dostupnost jsme zvolili prolog Eclipse.
Program se spousti predikatem hra/3. Prvnim parametrem je pozice. Tu je mozno
zvolit dvema zpusoby. Bud zvolit pozici jiz zadanou ("a" je zakladni pozice),
nebo vepsat pozici vlastni. Pozice ma tvar dvouprvkoveho seznamu, kde prvni
prvek je postaveni figur bileho a druhy figur cerneho. Prvky jsou seznamy
objektu tvaru ["F",X,Y], kde F je oznaceni figury (K,D,V,S,J,P) a X,Y oznacuji
jeho pozici na hraci desce oznacene zleva doprava a zdola nahoru cisly 1..8.
Jako posledni figura se musi dat ["N",X,Y], nebot nese informaci o tom,zda lze
provezt rochadu. X urcuje, zda lze provest velkou rochadu (0-ne,50-ano), Y zase
urcuje malou rochadu.
Druhy parametr oznacuje barvu kamenu, kterymi hraje pocitac (0-bila,1-cerna).
Treti parametr oznacuje barvu kamenu, ktere jsou na tahu.
Tah se zapisuje tak, ze se napise vychozi pozice figury a cilova pozice figury (napr. e2e4 rika, ze tahneme figurou z e2 na e4). V pripade, ze tah neni korektni, program pozaduje opravu.
Program prohledava stavovy prostor ohodnocenych pozic do hloubky 3 pultahu. Hlubsi prohledavani je vzhledem k vysoke pametove a casove narocnosti neunosne. Vzhledem k pevne stanovene hloubce prohledavani vznika riziko, ze program ne vzdy najde nejlepsi mozny tah, protoze se pozice muze prave ve ctvrtem pultahu rapidne zmenit. Pouzita heuristika ohodnoceni pozice je dana z nejvetsi miry bodovym ohodnocenim jednotlivych figur. Take je zde vyuzito nekterych snadneji aplikovatelnych sachovych zasad, jako je boj o stred a dalsi.
Program je dostupny na aise v adresari /home/kara s nazvem sachy.pl.