Palautus 2

Täälä viikolla en kauheasti oppinut mitään uutta, koska en vielä päässyt kunnolla toteuttamaan varsinaisia algoritmeja. Koko viikko meni lähinnä itse pelin toiminnallisuuden ja käyttöliittymän toteutukseen ja nekin ovat vielä kaukana valmiista. Esim käyttäjän hölmöilyihin ei ole vielä varauduttu mitenkään. Tekoälypuolesta sain toteutettua vasta yksinkertaisimman mahdollisen tekoälyn, joka valitsee mahdollisten siirtojen listasta aina ensimmäisen mahdollisen siirron.

Seuraavaksi aion keskittyä varsinaisen tekoälyn ja sen algoritmien toteutukseen. Tämän lisäksi hion vähän käyttöliittymää ja lisään mahdollisuuden valita toiseksi tai molemmiksi pelaajiksi tekoälyn. Tällä hetkellä käyttäjä voi valita tekoälyn valitsemaan siirron vain jokaiselle siirrolle erikseen.

Lisäksi yritän miettiä, miten saisin tekoäly vs tekoäly -peleistä jotenkin järkevämpiä. Siirto kerrallaan katseltuna nämä pelit ovat toki mielenkiintoia, mutta varmasti tarvitaan myös mahdollisuus pelata peli heti loppuun asti. Lisäksi kun saan toteutettua useampia erilaisia tekoälyjä, pitää toteuttaa mahdollisuus laittaa ne pelaamaan toisiaan vastaan.

Koodissa on toki muutenkin vielä paljon parannettavaa ja muokattavaa. Halusin saada tuon perustoiminnan valmiiksi tällä viikolla, joten en ehtinyt hioa jokaista yksityiskohtaa ihan loppuun asti.

100 % kattava javadoc on hieman epäselvä ilmaisu. Esimerkiksi javalabrassa vaadittiin javadocia myös privaateille metodeille. Sen sijaan gettereille ja settereille sitä ei vaadittu. Toimin nyt lähinnä tämän ohjeen perusteella, mutta voin toki lisätä kommentteja, jos ne jotenkin selkeyttävät koodia. 

Myös kattava testaus on hyvin epämääräistä. Ilmeisesti ollaan kuitenkin kiinnostuneita lähinnä kurssin aihepiiriin liittyvän koodin testauksesta. En siis ole testannut esim. käyttöliittymää, koska sellaista ei vaadittu javalabrassakaan. En myöskään toistaiseksi testannut mitään yksinkertaisia gettereitä. Toki yritän kuitenkin jatkossa parantaa myös testikattavuutta.