noobLue / ShakkiAly

MIT License
0 stars 0 forks source link

Koodikatselmointi #2

Open korolainenriikka opened 4 years ago

korolainenriikka commented 4 years ago

Koodi oli yleisesti ottaen helposti luettavaa; luokkien vastuujako oli erityisen selkeä ja kokonaisuuden toiminnasta pääsi nopeasti kärryille. Ylipäätään projektista näkee, että siihen on nähty vaivaa ja koodin laatua on mietitty.

Korjaus / parannusehdotuksia: dokumentaatio:

koodaustapa:

algot:

pilkunviilausta:

noobLue commented 4 years ago

tornin ja lähetin siirtojen hakua olisi syytä yksinkertaistaa: esim. lähetille final int[][] suunnat = {{-1,-1},{-1,1},{1,-1},{1,1}} ja for suunta in suunnat kohde = new Ruutu(getX+suunta[0], getY+suunta[1])

shakin alkutilaa kuvaava char[][] shakkitemplaatti voisi olla nimeltään alkutila tms

Hyödyllisiä mainintoja. Näiden muuttaminen tulee varmasti parantamaan koodin luettavuutta!

minimaxin implementointi voisi olla lähempänä pseudokoodia; minimaxin tunteva ymmärtäisi toiminnan helpommin.

No riippuu tietenkin mitä pseudokoodia katselee...

Syvyyden 3 minimax ei ole vielä erityisen tehokas. Syvyysluokissa noin 7 on vielä heikko pelaaja, kymmenen toisella puolen hyvä, ja >20 maailmanluokkaa.

Shakissa tuolla syvyydellä voisi yhden siirron keksimiseen kulua esim. 30 ^7 = 27_512_614_111 verran aikaa...

Tai 31^20 = 67_179_000_000_000_000_000_000_000_000 verran....

Loppuu tietokoneelta puhti kesken...

minimax kahdella i:llä, heuristiikka i:llä ja eksponentiaalinen k:lla. Pahoittelut mutta nämä aina särähtää isosti :)

Heuristiikka, eksponentiaalinen olivat hyviä huomautuksia! Mutta MinMax on mielestäni hyväksytty kirjoitustapa, Wikipediasta: kuva