Zadaniem będzie napisanie funkcji heurystycznej do gry w warcaby. Funkcja musi być napisana w Javie zgodnie z zadanym API do pracy z dostarczonym programem
Celem ćwiczenia jest zapoznanie się ze sterowaniem procesu przeszukiwania dla gier dwuosobowych za pomocą funkcji heurystycznej.
Program wykorzystywany do gry implementuje warcaby angielskie, zwane również amerykańskimi lub tradycyjnymi. Reguły gry w tej wersji obejmują przymusowe bicia, i wszystkie możliwości bicia muszą być wykorzystane do końca. Jednak jeśli istnieją różne możliwości ruchów z biciem to gracz nie ma obowiązku wykonania ruchu maksymalizującego liczbę bić. Pionki mogą bić wyłącznie do przodu. Po awansie pionka na damkę może ona wykonywać ruchy i bicia w dowolnym kierunku, ale za każdym razem tylko o jeden krok.
Ocena będzie miała składową stała, przyznawaną za samodzielne napisanie działającej funkcji heurystycznej, oraz składową zmienną, odpowiadającą ocenie jakości napisanej funkcji. Funkcja będzie oceniana na dwa sposoby: ocena względna w obecnej grupie studentów, oraz ocena bezwzględna wynikająca z gry przeciwko pewnym graczom standardowym.
http://www.kcir.pwr.edu.pl/~witold/ai/Checkers_manual/index.html - instrukcja do programu
http://www.kcir.pwr.edu.pl/~witold/ai/Checkers_manual/api.html - API funkcji heurystycznej
https://pl.wikipedia.org/wiki/Warcaby_angielskie
https://cs.huji.ac.il/~ai/projects/old/English-Draughts.pdf - wprowadzenie do tworzenia heurystyk dla warcab i kilka podstawowych funkcji heursytycznych
https://onlinelibrary.wiley.com/doi/abs/10.1111/j.1468-0394.2007.00429.x - wszechstronna analiza metod budowy heurystyk dla warcab (wstępna wersja tego artykułu jest dostępna tutaj: https://www.mini.pw.edu.pl/~mandziuk/PRACE/es_init.pdf)