palautus 3

Tällä viikollla toteutin minimax-algoritmin ja sen toimintaperiaate tuli samalla hyvin kerrattua. Lisäksi toteutin yksinkertaisen heuristiikan, joka laskee pelitilanteen arvon kunkin siirron jälkeen. Heuristiikka kaipaa varmasti vielä hiomista ja haluaisin myös lisätä peliin mahdollisuuden laittaa erilaiset heuristiikat pelaamaan toisiaan vastaan.

Tietorakenteista aloitin toteuttamaan puuta ja sen solmuja, joihin eri pelitilanteet voi sitten tallentaa ja joille voi laskea arvon. Seuraavaksi yritän saada solmuihin tallennettua pelitilanteiden arvot ja siirrot, jotka johtivat niihin. Tämän jälkeen minimax-algoritmi voi käyttää tätä puuta.

Peliä kokeillessa törmäsin uuteen ongelmaan, johon en vielä keksinyt hyvää ratkaisua. Tekoäly saa pelin helposti pattitilanteeseen, jossa molemmat pelaajat liikuttelevat kuninkaitaan edestakaisin. Pelaajien ei kannata tehdä muuta, jos niillä ei ole mahdollista syödä vastustajan nappuloita tulematta itse syödyksi. Ehkä lisään peliin esimerkiksi maksimisiirtomäärän, jonka jälkeen peli päättyy tasapeliin.

Seuraavaksi lisään peliin mahdollisuuden valita erikseen molemmille puolille ihmispelaajan tai tekoälyn. Tällä hetkellä musta pelaaja on tekoäly ja valkoinen ihminen, jolla on kuitenkin myös mahdollisuus pyytää siirto tekoälyltä.

Lisäksi tekoälyä pitäisi kehittää siten että se muodostaa mahdollista siirroista sovivan syvyisen pelipuun ja käyttää sitten sitä minimax-algoritmin kanssa.