-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
I hope it's okay that I did this in Finnish because I'm not so good at writing English.
Repositorio ladattu: 11.4.2014 klo 18
Yleistä
- javadoccien hyödyllisyys paljastui minulle koodiasi lukiessa: ne todella auttoivat ymmärtämään, mitä mikäkin metodi tekee.
- Main-luokan kannattaisi luultavasti luoda SlidePuzzleModel: nyt pääluokka luo vain käyttöliittymän, mikä on hieman käyttöliittymän ja pelilogiikan eriyttämisen periaatteiden vastaista.
- clean code-periaatteita hyvin noudatettu. Käyttöliittymän olit jakanut luokkiin tavalla, jota en ole nähnyt aiemmin, mutta se näytti toimivalta, joten tuskin oma tapasi on yhtään huonompi kuin se, mitä itse olen tottunut MOOC-kurssin ynnä muiden perusteella käyttämään.
- peliä voisi laajentaa antamalla käyttäjän valita, kuinka iso pelikenttä on. Tosin logiikka ei tästä juuri luultavasti laajentuisi, lähinnä käyttöliittymään tulisi uusia asioita.
Pelilogiikasta
- perustoiminnallisuus hyvin kasassa. Virheilmoitusääni, kun pelaaja yrittää siirtää jumissa olevaa ruutua on hyvä ja toimiva lisä. Olen siis ottanut pelaajan hyvin huomioon, etkä keskittynyt liikaa pelkkään pelimekaniikan rakentamiseen.
- isGameOver-metodi ei ilmeisesti toimi: peli ei koskaan osaa ilmoittaa, että palapeli on ratkaistu. Metodi ei tunnu toimivan tarkoitetulla tavalla, vaan se taitaa tarkistaa ainoastaan, onko ensimmäinen tiili paikallaan.
- randomizeTiles satunnaistaa tiilien paikat muuten hyvin, mutta sen on mahdollista tuottaa pelitilanne, josta ei pääse mitenkään loppuratkaisuun. En osaa antaa korjausehdotuksia, muistan vain oppineeni jollain matematiikan kurssilla teoreettisesti, että noin voi käydä. Jos haluat perehtyä asiaan ja hienosäätää tuon ominaisuuden kuntoon, Google varmaankin osaa auttaa.
Testeistä
- testikattavuus näyttää numeroiden perusteella hyvältä
- toisaalta osa testeistä esim. testaa useampaa kuin yhtä asiaa (useampi kuin yksi assert-komento)
- testeistä saisi hieman helppolukuisempia, jos ne nimeäisi vieläkin kuvaavammin (ainakin Ohjelmistotekniikan menetelmät-kurssilla käskettiin aina käyttää mahdollisimman pitkiä nimiä). Lisäksi joitakin pitkiä testejä voisi selkeyttää refaktoroimalla niitä siten, että osa toiminnallisuudesta olisi metodeissa. Testiluokkiinkin kun voi tehdä metodeita ihan niin kuin tavallisiin luokkiin
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels