joope / javablackjack Goto Github PK
View Code? Open in Web Editor NEWjoululabran'13 projekti
joululabran'13 projekti
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!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.