Open korolainenriikka opened 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:
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:
./gradlew build
: a on ajettavachmod +x gradlew
koodaustapa:
algot:
pilkunviilausta: