perdperd / OhHa

Go-ohjelma ohjelmoinnin harjoitustyötä varten
0 stars 0 forks source link

Koodikatselmointi 2 #2

Open glindstrom opened 11 years ago

glindstrom commented 11 years ago

Projekti ladattu 7.6.2013 klo. 11.13.

Ohjelman ajaminen onnistui ongelmitta. En saanut ohjelmaa kaatumaan yrityksistä huolimatta.

Käyttöliittymä oli pääasiallisesti helppokäyttöinen. Käyttöliittymä kuitenkin näyttää samaa virheilmoitusta riippumatta siitä, johtuuko virhe väärästä syötteestä vai yrittääkö käyttäjä esimerkiksi tehdä siirron jo käytössä olevaan ruutuun. Pelaajan tehdessä syntaksisesti oikean, mutta muuten laittoman siirron, voisi olla hyvä - ainakin vasta-alottelijoita ajatellen - esimerkiksi luetella sallitut siirrot.

Löysin mahdollisen bugin, mutta ongelma saattaa myös johuta siitä, että en osaa peleta Go’ta: Onnistuin ajautumaan kuvassa näkyvään tilanteeseen. Nyt musta voi pelata c1 tai c2, mutta valkea voi ainoastaan passata. Mustan siirrot eivät aiheuta mitään muutosta pelilautaan, vaan musta voi tehdä saman siirron uudestaan, kun valkea on passannut.

screenshot Luokka Pelilauta on melko pitkä ja sisältää monta oliomuuttujaa, mikä voi olla ”koodihaju”. Yksi idea olisi tehdä Pelaaja-olio valkean ja mustan vankilaskua varten ja siirtää siirtoihin liittyvät toiminnot omaan luokkaan.

Ohjelman rakenne on hyvä ja metodit kuvaavasti nimetty. Testit testaavat oikeaoppisesti vain yhtä asiaa kerrallaan.

perdperd commented 11 years ago

Moi, kiitos paljon kommenteista! Ne olivat hyviä ja osuvia.

Juu, kieltämättä nuo virheilmoitukset on vähän koodattu siinä mielessä, että käyttäjä osaa pelata gota ja tunnistaa laittomat siirrot. Saatan ehkä tehdä ilmoituksille vielä jotain.

Kiitos tuon bugin löytämisestä! Syy oli hieman typerä, Pelilaudan siirtoOnLaillinen()-metodiin oli eksynyt kaksi kertaa pituus, vaikka toisessa kohdassa olisi pitänyt olla leveys. Tämä on korjattu nyt. Antamassasi laudan tilanteessa c1 ja c2 ovat tosiaan laillisia siirtoja kummallekin pelaajalle (ja valkean c1 syö kolme kiveä).

Olin itsekin huomannut tuon Pelilaudan paisumisen, mutta en ole vielä keksinyt mitään järkevää tapaa pilkkoa sitä osiin. Ehdottomasi idea saattaisi olla ihan toimiva.

Tämä viikonloppu on hieman kiireinen mulla, kun pelaan go-turnauksessa, mutta koitan laittaa sunnuntaina illalla sullekin hieman kommenteja koodistasi.