Palautus

Mitä opin
===========
- Opin siis tekemään pelilaudalle hajautusvaimen <a href="http://en.wikipedia.org/wiki/Zobrist_hashing">Zobristin hajautusalgoritmia</a> käyttämällä.
- Opin transpositiotauluista, jotka aion ensi viikolla ottaa käyttöön tekoälyn optimoinniksi.
- Opin käyttämään Javan threadeja hyväkseni.
- Opin toteuttamaan yksinkertaisen pinon, jossa säilytän pelissä tehtyjä operaatioita.

Onnistumiset, aikaansaannokset
==========================
- Totesin viime viikon koodin rakenteen paskaksi joten korvasin ja siistin ohjelmaa huomattavasti, koodirivejä Board- ja Game-luokissa ehkä puolet vähemmän. Kirjoitin luokat lähes uusiksi ja tein uudet testit.
- Toteutin oman pinon Board-luokkaan, joka sisältää kaikki pelin aikaisemmat operaatiot kumoamista varten.
- Toteutin Zobristin hajautusavainalgoritmin pelilaudalle. Alan toteuttaa sen ympärille hajautustaulua.

Epäselvää
========
- Ei juurikaan. Käytin paljon aikaa pelin koodin uusimiseen, joten tekoäly ei edistynyt yhtä paljon kuin olisin toivonut. Aioin optimoida sitä vielä transposititiotauluilla, valikoivalla haulla sekä kaikista surkeimpien siirtojen tutkimatta jättämisellä. Algoritmi on kyllä periaatteessa valmis, ja sen liikkeiden taustalla on jokin järki, mutta en ole tyytyväinen sen tehokkuuteen tai älykkyyteen.

Edistyminen
==========
- Ohjelma on ihan ok vaiheessa. Ohjelman perusrakenne on lähes täysin valmis ja tärkeimmiltä osiltaan kattavasti testattu. Tekoäly kaipaa viimeistelyä, mutta toimii. Olen myös  aloittanut omien tietorakenteiden toteuttamisen. Olen ehkä hieman aikataulusta jäljessä ja testejä voisi olla enemmän mutta saan ensi viikolla varmasti kirittyä kiinni.

Seuraavaksi
==========
- Tekoälyn testien toteuttaminen
- Oman listan toteuttaminen.
- Tekoälyn parantelu
- Hajautustaulun toteuttaminen