You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Player luokassa on toinen konstruktori cloonaamista varten, mikä on ihan ok. Tietääkseni olisi kuitenkin mahdollista overridata clone metodi luokalle. Clone metodin käyttö olisi ehkä intuitiivisempi ja tutumpi koodatessa.
RunMeld / SetMeld
RunMeld ja SetMeld luokissa metodi layoff vaatii oikein toimiakseen että layOffAllowed metodia käytetään ensin tarkistamiseen. Tässä tapauksessa layoff metodi voisi ihan hyvin käyttää sitä sisäisesti, sillä ei pitäisi olla mitään tilannetta missä kyseinen toiminnallisuus ei olisi haluttua.
RunMeld ja SetMeld luokissa on melkein copioitu copy metodi. Vaihtoehtoisesti voisi pistää Meld superclassiin copyCards metodin, johon laittaa copy paste koodi, ja laittaa copy metodiin vain jäljellä oleva yksi rivi. Toisaalta metodi on muutenkin vain 3 riviä, joten muokkaaminen voisi olla turhaa.
Move
Luokan tekeminen jokaiselle erilliselle siirrolle vaikuttaa hieman oudolta. En ole täysin varma miksi juuri näin on tehty, ehkä siirtojen vertaamiseen toisiinsa, mutta luulisi olevan mahdollista yhdistää erilliset siirto luokat yhteen yksittäiseen luokkaan. Tällainen muutos johtaisi ainakin omasta mielestäni puhtaampaan koodiin.
ISMCTS
Kyseisen luokan metodi run on erittäin pitkä. Vaikka lisätyt kommentit auttavat koodin luettavuudessa, olisi kyseisen metodin refaktorointi useampaan pienempään metodiin merkittävä parannus.
Muuta
Hieman outoa että peliä pelatessa ei ole Player vs AI vaihtoehtoa. Ilman tätä vaihtoehtoa on vaikea saada kunnollista tuntumaa siihen miten AI toimii käytännössä, varsinkin kun AI vs AI versio on hyvin epäselvä.
Huomasin että jossain kohdissa koodia oli suhteellisen pitkiä rivejä koodia, joita olisi voinut jakaa useammille riveille. Tämä auttaisi koodin lukemista myöhemmin.
The text was updated successfully, but these errors were encountered:
Date: 25.8. 11:22
Vertaisarviointi
Ehdotuksia luokkiin
Player
Player luokassa on toinen konstruktori cloonaamista varten, mikä on ihan ok. Tietääkseni olisi kuitenkin mahdollista overridata clone metodi luokalle. Clone metodin käyttö olisi ehkä intuitiivisempi ja tutumpi koodatessa.
RunMeld / SetMeld
RunMeld ja SetMeld luokissa metodi layoff vaatii oikein toimiakseen että layOffAllowed metodia käytetään ensin tarkistamiseen. Tässä tapauksessa layoff metodi voisi ihan hyvin käyttää sitä sisäisesti, sillä ei pitäisi olla mitään tilannetta missä kyseinen toiminnallisuus ei olisi haluttua.
RunMeld ja SetMeld luokissa on melkein copioitu copy metodi. Vaihtoehtoisesti voisi pistää Meld superclassiin copyCards metodin, johon laittaa copy paste koodi, ja laittaa copy metodiin vain jäljellä oleva yksi rivi. Toisaalta metodi on muutenkin vain 3 riviä, joten muokkaaminen voisi olla turhaa.
Move
Luokan tekeminen jokaiselle erilliselle siirrolle vaikuttaa hieman oudolta. En ole täysin varma miksi juuri näin on tehty, ehkä siirtojen vertaamiseen toisiinsa, mutta luulisi olevan mahdollista yhdistää erilliset siirto luokat yhteen yksittäiseen luokkaan. Tällainen muutos johtaisi ainakin omasta mielestäni puhtaampaan koodiin.
ISMCTS
Kyseisen luokan metodi run on erittäin pitkä. Vaikka lisätyt kommentit auttavat koodin luettavuudessa, olisi kyseisen metodin refaktorointi useampaan pienempään metodiin merkittävä parannus.
Muuta
Hieman outoa että peliä pelatessa ei ole Player vs AI vaihtoehtoa. Ilman tätä vaihtoehtoa on vaikea saada kunnollista tuntumaa siihen miten AI toimii käytännössä, varsinkin kun AI vs AI versio on hyvin epäselvä.
Huomasin että jossain kohdissa koodia oli suhteellisen pitkiä rivejä koodia, joita olisi voinut jakaa useammille riveille. Tämä auttaisi koodin lukemista myöhemmin.
The text was updated successfully, but these errors were encountered: