Palautus 2

Sain enemmän aikaiseksi kuin oletin. Käyttöliittymä on jo suht toimiva, ja tekoälyyn sain toteutettua useampia optimointeja (bittimaskit, transpositiotaulu, nollasiirrot, lyöntien priorisointi). Omalla koneella se pystyy nyt laskemaan parissa sekuntissa n. 8-15 siirron päähän tilanteesta riippuen. Loppupelissä on eniten parannettavaa; nyt melkein kaikki pelit päättyy pattiin, koska hakualgoritmi ei vielä tunnista niitä. Lisäksi erikoistilanteet (korotus, ohestalyönti, tornitus) pitää vielä toteuttaa ensi viikon aikana. Jonkinlaisen nopeustestin ehdin myös kirjoittaa tällä viikolla.

Testaus jäi vähän vajavaiseksi MinMaxAI-luokan osalta. En oikein tiedä vielä miten sitä pitäisi testata, koska julkisia metodeja on käytännössä vain yksi, ja shakissa on vähän tilanteita, joissa tekoälyn pitäisi käyttäytyä juuri jollain tietyllä tavalla. Paras testi olisi kai peluuttaa sitä jotain toista tekoälyä vastaan.

Koodista tulee vähän rumaa ja vaikeaselkoista, koska olen pyrkinyt kirjoittamaan suht optimoitua koodia ja välttämään objektien allokointia niin paljon kuin mahdollista.