librejack

Blackjack clone written in java
git clone https://github.com/michaelneuper/librejack.git
README | Files | Log | Refs | LICENSE

librejack/uml/librejack.puml (6207B)


@startuml
skinparam classAttributeIconSize 0
class Person{
- hand : Hand
- name : String
+ Person()
+ getHand() : Hand
+ setHand(hand : Hand) : void
+ getName() : String
+ setName(name : String) : void
+ hasBlackjack() : boolean
+ printHand() : String
+ hit(deck : Deck, discard : Deck) : void
}
class LoginController{
+ LoginController()
+ areAllFieldsValid(email : String, mobileNumber : String, date : Date, password : String) : boolean
- isValidEmail(email : String) : boolean
- isValidSouthAfricanMobileNumber(mobileNumber : String) : boolean
- {static} isValidDateAndAdult(date : Date) : boolean
- isValidPassword(password : String) : boolean
- isSpecialCharacter(ch : char) : boolean
}
class Hand{
- hand : ArrayList<Card>
+ Hand()
+ takeCardFromDeck(deck : Deck) : void
+ calculateValue() : int
+ getCard(i : int) : Card
+ discardHandToDeck(discardDeck : Deck) : void
+ toString() : String
}
class Card{
- suit : Suit
- rank : Rank
+ Card(suit : Suit, rank : Rank)
+ Card(card : Card)
+ getValue() : int
+ getSuit() : Suit
+ getRank() : Rank
+ toString() : String
}
class Dealer{
+ Dealer()
+ printFirstHand() : String
+ printFirstCardValue() : String
}
Dealer --|> Person
class StatisticsGUI{
stats : Statistics
- jLabelLosses : javax.swing.JLabel
- jLabelLossesAmount : javax.swing.JLabel
- jLabelPushes : javax.swing.JLabel
- jLabelPushesAmount : javax.swing.JLabel
- jLabelStatistics : javax.swing.JLabel
- jLabelWins : javax.swing.JLabel
- jLabelWinsAmount : javax.swing.JLabel
+ StatisticsGUI()
- initComponents() : void
+ {static} main(args : String[]) : void
}
StatisticsGUI --|> JFrame
class Controller{
- deck : Deck
- dealer : Dealer
- player : Player
- bet : double
- stats : Statistics
+ Controller()
+ getBet() : double
+ setBet(bet : double) : void
+ getBalance() : double
+ setBalance(balance : double) : void
+ startRound() : void
+ checkWhoWins() : String
+ hitPlayer() : void
+ displayPlayerHand() : String
+ displayPlayerHandValue() : String
+ displayDealerHand() : String
+ displayDealerHandValue() : String
+ displayDealerFirstCard() : String
+ displayDealerFirstCardValue() : String
}
class LoginGUI{
controller : LoginController
- jButtonVerify : javax.swing.JButton
- jDateChooser1 : com.toedter.calendar.JDateChooser
- jLabel1 : javax.swing.JLabel
- jLabel2 : javax.swing.JLabel
- jLabel3 : javax.swing.JLabel
- jLabel4 : javax.swing.JLabel
- jLabel5 : javax.swing.JLabel
- jLabel6 : javax.swing.JLabel
- jLabelCardsImage : javax.swing.JLabel
- jLabelDateOfBirth : javax.swing.JLabel
- jLabelEmail : javax.swing.JLabel
- jLabelLogin : javax.swing.JLabel
- jLabelMobileNumber : javax.swing.JLabel
- jLabelPassword : javax.swing.JLabel
- jLabelPasswordRequirements : javax.swing.JLabel
- jLabelUsername : javax.swing.JLabel
- jLabelWelcome : javax.swing.JLabel
- jPanel1 : javax.swing.JPanel
- jPanel2 : javax.swing.JPanel
- jPanel3 : javax.swing.JPanel
- jPasswordField : javax.swing.JPasswordField
- jTextFieldEmail : javax.swing.JTextField
- jTextFieldMobileNumber : javax.swing.JTextField
- jTextFieldUsername : javax.swing.JTextField
+ LoginGUI()
- initComponents() : void
- jPasswordFieldActionPerformed(evt : java.awt.event.ActionEvent) : void
- jButtonVerifyActionPerformed(evt : java.awt.event.ActionEvent) : void
- jTextFieldUsernameActionPerformed(evt : java.awt.event.ActionEvent) : void
- jTextFieldMobileNumberActionPerformed(evt : java.awt.event.ActionEvent) : void
+ {static} main(args : String[]) : void
}
LoginGUI --|> JFrame
class MainGUI{
game : Controller
- jButtonBetAmount : javax.swing.JButton
- jButtonDeal : javax.swing.JButton
- jButtonDouble : javax.swing.JButton
- jButtonExit : javax.swing.JButton
- jButtonHit : javax.swing.JButton
- jButtonStand : javax.swing.JButton
- jButtonStats : javax.swing.JButton
- jLabelBalance : javax.swing.JLabel
- jLabelCurrentBet : javax.swing.JLabel
- jLabelDealerHand : javax.swing.JLabel
- jLabelDealerHandValue : javax.swing.JLabel
- jLabelDisplayDealerHand : javax.swing.JLabel
- jLabelDisplayPlayerHand : javax.swing.JLabel
- jLabelPlayerHand : javax.swing.JLabel
- jLabelPlayerHandValue : javax.swing.JLabel
- jLabelResult : javax.swing.JLabel
- jPanel3 : javax.swing.JPanel
+ MainGUI()
- initComponents() : void
- jButtonDealActionPerformed(evt : java.awt.event.ActionEvent) : void
- jButtonBetAmountActionPerformed(evt : java.awt.event.ActionEvent) : void
- jButtonStandActionPerformed(evt : java.awt.event.ActionEvent) : void
- jButtonDoubleActionPerformed(evt : java.awt.event.ActionEvent) : void
- jButtonHitActionPerformed(evt : java.awt.event.ActionEvent) : void
- jButtonExitActionPerformed(evt : java.awt.event.ActionEvent) : void
- jButtonStatsActionPerformed(evt : java.awt.event.ActionEvent) : void
+ {static} main(args : String[]) : void
+ printDealerHand() : void
+ printPlayerHand() : void
}
MainGUI --|> JFrame
class Statistics{
- {static} CSV_FILE : String
- {static} CSV_HEADERS : String[]
- wins : int
- losses : int
- pushes : int
+ Statistics()
+ Statistics(wins : int, losses : int, pushes : int)
+ getWins() : int
+ getLosses() : int
+ getPushes() : int
+ setWins(wins : int) : void
+ setLosses(losses : int) : void
+ setPushes(pushes : int) : void
+ incrementWins() : void
+ incrementLosses() : void
+ incrementPushes() : void
- save() : void
+ {static} load() : Statistics
}
class Deck{
- deck : ArrayList<Card>
+ Deck()
+ populate() : void
+ shuffle() : void
+ addCard(inCard : Card) : void
+ takeCard() : Card
+ hasCards() : boolean
+ emptyDeck() : void
+ addCards(cards : ArrayList<Card>) : void
+ getCards() : ArrayList<Card>
+ reloadDeckFromDiscard(discard : Deck) : void
+ cardsLeft() : int
+ toString() : String
}
class Player{
- balance : double
- BALANCE_FILE : String
+ Player()
+ getBalance() : double
+ setBalance(balance : double) : void
}
Player --|> Person
Person--"- hand" Hand
Card--"- suit" Suit
Card--"- rank" Rank
StatisticsGUI--"stats" Statistics
Controller--"- deck" Deck
Controller--"- dealer" Dealer
Controller--"- player" Player
Controller--"- stats" Statistics
LoginGUI--"controller" LoginController
MainGUI--"game" Controller
enum Suit{
CLUBS
DIAMONDS
HEARTS
SPADES
}
enum Rank{
TWO
THREE
FOUR
FIVE
SIX
SEVEN
EIGHT
NINE
TEN
JACK
QUEEN
KING
ACE
}
@enduml