Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vertaisarviointi #2

Open
SirVeggie opened this issue Aug 25, 2019 · 0 comments
Open

Vertaisarviointi #2

SirVeggie opened this issue Aug 25, 2019 · 0 comments

Comments

@SirVeggie
Copy link

SirVeggie commented Aug 25, 2019

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant