joope / JavaBlackJack

joululabran'13 projekti
0 stars 0 forks source link

Koodikatselmointi #1

Open teopii opened 10 years ago

teopii commented 10 years ago

Ohjelma ladattiin githubista 5.1.2014 kello 20:26.

[En olekaan itse koskaan tainnut pelata BlackJackia, joten keskityin lähinnä katsomaan tuleeko mitään mieleen koodista ja suositelluista käytänteistä. Osaisin siis hyvin heikosti lähteä suosittelemaan niksejä BlackJackin tai minkään korttipelin mallintamiseksi koodiksi :) ]

Luokkia on kertynyt jo melko monta, ja kannattaa kiinnittää huomiota siihen että niiden väliset suhteet pysyvät ajan tasalla.

NB-puna taitaa olla poikkeuksetta huomionarvoista: Lataushetkellä ohjelmassa on pari NetBeansinkin punaiseksi alleviivaamaa pikkuvikaa, joiden vuoksi sitä ei pystynyt suorittamaan:

Pakkauksista: Olisi kai hyvien tapojen mukaista pitää testiluokat aina samannimisessä pakkauksessa kuin mikä testattavien luokkien pakkausten nimi on, eli esim. jos KorttiKokoelma kuuluu pakkaukseen "jblackjack.logiikka.Kortit", niin myös testiluokan KorttiKokoelmaTest tulisi kuulua samannimiseen pakkaukseen.

Näin monen luokan ohjelmassa metodien nimet saattaisivat olla hieman pidempinä mukavasti havainnollisempia. Tuli ainakin mieleen että saattaisin muuttaa esim.: jaaKortit --> jaaPelaajilleKortit otaPanokset --> pyydaPelaajiltaPanokset

Korttipakka-luokan metodi lisaaKortit sisältää toistuvaa koodia, minkä voisi välttää esimerkiksi erillisellä metodilla, joka tekisi saman for-loopin saaden ensin parametrin Maa.RISTI, sitten Maa.HERTTA jne.

Pelaaja-luokan metodin laitaPanos voisi myös koittaa jakaa luettavuuden lisäämiseksi pienempiin osiin.

Samoin KorttiKasi-luokan metodi laskeKadenArvo on melko pitkä lista ehtoja ollakseen yksi metodi. Korttipeliä tuntemattomalle se näyttää ainakin nopeasti vilkaistuna myös aika kryptiseltä, ja esimerkiksi pitkillä metodien nimillä voisi suomeksi selventää, millä tavalla käden arvo määräytyy.

Graafista käyttöliittymää kannattaa varmaan kokeilla ajaa ruudulle näkymään, mitä olet ehkä tehnytkin. Pysyy myös keskittyminen kasassa jos testaa aina asiaa jonka on juuri tehnyt, eli hoitaa punaiset pikkuviat heti pois ja lopettaa etenemisen jos edellinen juttu toimiikin toisin kuin tarkoitus.

Kärsivällisyyttä toimivan korttipelin kokoamiseen!

joope commented 10 years ago

Kiitos kommentista! Tuossa tulikin paljon hyviä neuvoja mitä olen pyrkinyt toteuttamaan. Tosiaan oma mokani ettei githubin versio ohjelmasta pystynyt käynnistymään ja jotkin luokat eivät olleet päivittyneet, mutta sekin pitäisi olla nyt korjattuna. Onneksi sait kuitenkin jotain selvää koodista, nyt se on jo toivottavasti paljon parempi!