Giter VIP home page Giter VIP logo

javablackjack's People

Contributors

joope avatar

Watchers

 avatar

javablackjack's Issues

Koodikatselmointi

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:

  • Luokan InfoPalkki nimi pitäisi olla kai Ylapalkki (tai sitten tekstin 'Ylapalkki' kaikkialla 'InfoPalkki')
  • Muutamassa luokassa import-rivillä mainittua luokkaa PelinPaivitys ei ainakaan minulla näytä olevan vielä olemassa
    [ - Valikko-luokan luoKomponentit()-metodin HitNapinKuuntelijan luominen taitaa liittyä edelliseen puutteeseen myös ]

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.

  • Pakkauksessa "jblackjack.logiikka.Kortit" tulisi kai itse asiassa päivittää luokkien ylin rivi eli "package jblackjack.logiikka" --> "package.jblackjack.logiikka.Kortit", jotta tilanne vastaisi oikeaa kansiorakennetta.

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!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.