commit 81522dcbbed44cd59d3b4e2bcc760f553690cef0
parent 0dcb5a5fd3954118622fd612c776a29ca7562080
Author: Michael Neuper <michael@michaelneuper.com>
Date: Fri, 28 Apr 2023 15:04:10 +0200
Add uml diagram for the project
Diffstat:
| A | uml/librejack.puml | | | 227 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
1 file changed, 227 insertions(+), 0 deletions(-)
diff --git a/uml/librejack.puml b/uml/librejack.puml
@@ -0,0 +1,226 @@
+@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
+\ No newline at end of file