Melchan / ChessAI

0 stars 0 forks source link

Koodikatselmointi #1

Open Jonii opened 8 years ago

Jonii commented 8 years ago

ma 15.2.2016 19.14.44

Palaute työstä

Itse koodin rakenne oli ihailtavan selkeää, kaikki oli jaoteltu hyvin selkeisiin palasiin.

Staterater: Se mikä hiukan ihmetytti oli että ratsun arvoksi oli annettu 510 ja tornin arvoksi vain 320. Tuon uskon olevan väärin päin.

MoveDetector: Siirtojen koodausjärjestelmä on hiukan vaikealukuinen. Vaikka koodin kommentoinnista ei muuten kai haluttukaan sanottavan, tuon merkintäjärjestelmän toiminnan pääpiirteet olisi hyvä mainita luokan tai funktion javadoc-kommenteissa. Helpottaisi seuraavan katsemoijan työtä.

Muista luokista ymmärsin että nämä olisivat peräisin vanhemmasta projektista, en niihin oikein osaa ottaa muuta kantaa kuin että nuo olivat isolta osin helppolukuista koodia.

Dokumentoinnista ymmärsin että tulisit käyttämään MCTS:ää. Tätä silmällä pitäen staterater-luokka tuntuu ylimääräiseltä, sitä ei ymmärtääkseni pitäisi tarvita MCTS-toteutuksessa. En ole varma onko ideana käyttää minimax- vai mcts-algoritmia, kaikki koodi jonka ymmärsin tuntui viittaavan minimax-toteutukseen.

Melchan commented 8 years ago

MoveDetectorista tuli hieman huonosti toteutettu myönnettäköön olisin voinut tehdä sen kanssa parempaa jälkeä heti kättelyssä.

Vanhemmasta projektista ei ole oikeastaan periytynyt mitään muuta kuin idea ja UI. Kirjoitin kaiken muun uusiksi. Sain sen melkein nykyiseen kuntoonsa ennen kuin kurssi alkoi. Fixaamista oli vielä.

Mitä statrateriin tulee niin ainakin materiaalin mukaan, jonka itse olen saanut käsittääkseni käytetään apuna minmaxia. Materiaali käsittelee go peliä, mutta käytän siitä ensimmäistä 7 sivua. Missä avataan esimerkki tapaus uct:stä pseudo muodossa tämän seitsemän sivun aikana.

http://www0.cs.ucl.ac.uk/staff/D.Silver/web/Applications_files/mcrave.pdf

minmaxia käsittääkseni käytetään hyväksi ottamaan selville eri laudan tilanteiden arvo. Ja jos sattuu olemaan tilanne missä olemme ottaneet selville kaikki mahdolliset laudan tilanteet niin algoritmin pitäisi toimia kuin minmax haku. Jos siis olen käsittänyt oikein.