librejack

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

commit d828f7fdbb4a5e51e8145dbad18c03a743703ec7
parent 6774c1e1cf80073380356c684533c951a7967799
Author: Michael Neuper <73108749+michaelneuper@users.noreply.github.com>
Date:   Mon, 10 Oct 2022 18:43:15 +0200

added bet and balance getters and setter

Diffstat:
Msrc/controller/Controller.java | 96+++++++++++++++++++++++++++++++++++++++++--------------------------------------
1 file changed, 50 insertions(+), 46 deletions(-)

diff --git a/src/controller/Controller.java b/src/controller/Controller.java @@ -1,7 +1,5 @@ package controller; -import javax.swing.JOptionPane; - import model.Dealer; import model.Deck; import model.Player; @@ -23,7 +21,7 @@ public class Controller { /** * Controller Constructor: - * Initialises score to 0 + * Initializes score to 0 */ public Controller() { @@ -32,16 +30,39 @@ public class Controller { pushes = 0; balance = 1000.0; - deck = new Deck(); // creates new populated deck + // create new populated deck + deck = new Deck(); deck.populate(); deck.shuffle(); - discarded = new Deck(); // creates new empty deck - + // create new empty deck + discarded = new Deck(); + + // create new dealer and player dealer = new Dealer(); player = new Player(); } + public double getBet() { + return bet; + } + + public void setBet(double bet) { + if(bet < balance) { + this.bet = bet; + } else { // in case they try to make a bet bigger than their balance + System.out.println("You don't have that much money"); // TODO: change to message dialog + } + } + + public double getBalance() { + return balance; + } + + public void setBalance(double balance) { + this.balance = balance; + } + /** * Handles logic for each round * @@ -49,23 +70,12 @@ public class Controller { public void startRound() { // if we run out of cards - if(wins > 0 || losses > 0 || pushes > 0) { // FIXME: change code :) - System.out.println("\nStarting next round...\nWins: " + wins + "\nLosses: " + losses + "\nPushes: " + pushes + "\nBalance: " + balance); - dealer.getHand().discardHandToDeck(discarded); - player.getHand().discardHandToDeck(discarded); + dealer.getHand().discardHandToDeck(discarded); + player.getHand().discardHandToDeck(discarded); - // make sure deck has at least 4 cards left - if(deck.cardsLeft() < 4) { - deck.reloadDeckFromDiscard(discarded); - } - } - - // ask the player what their bet is - bet = Double.parseDouble(JOptionPane.showInputDialog("Enter a bet amount")); - - if(bet > balance) { // in case the player tries to bet more than they have - System.out.println("You don't have that much money! Please try again"); - bet = Double.parseDouble(JOptionPane.showInputDialog("Enter a bet amount")); + // make sure deck has at least 4 cards left + if(deck.cardsLeft() < 4) { + deck.reloadDeckFromDiscard(discarded); } // give the dealer 2 cards @@ -79,24 +89,27 @@ public class Controller { // print their hands dealer.printFirstHand(); player.printHand(); + + // TODO: move + player.makeDecision(deck, discarded); + checkWhoWins(); + } + + private String checkWhoWins() { // FIXME: return string and remove startRound + // check if dealer has blackjack if (dealer.hasBlackjack()) { dealer.printHand(); // show full hand if (player.hasBlackjack()) { - - System.out.println("You both have 21 - Push"); ++pushes; - startRound(); - + return "You both have 21 - Push"; } else { - - System.out.println("Dealer has BlackJack. You lose."); - dealer.printHand(); balance -= bet; ++losses; - startRound(); + dealer.printHand(); + return "Dealer has BlackJack. You lose."; } } @@ -107,23 +120,12 @@ public class Controller { ++wins; startRound(); } - - player.makeDecision(deck, discarded); - - checkWhoWins(); - - // start a new round - startRound(); - } - - private void checkWhoWins() { // FIXME: return string // check whether player busted if(player.getHand().calculateValue() > 21) { - System.out.println("Busted"); balance -= bet; ++losses; - startRound(); + return "Busted"; } // dealer's turn @@ -134,27 +136,29 @@ public class Controller { // check who wins if(dealer.getHand().calculateValue() > 21) { - System.out.println("Dealer busts"); balance += bet; ++wins; + return "Dealer busts"; } if(dealer.getHand().calculateValue() > player.getHand().calculateValue() && dealer.getHand().calculateValue() <= 21) { - System.out.println("You lose"); balance -= bet; ++losses; + return "You lose"; } if(player.getHand().calculateValue() > dealer.getHand().calculateValue()) { - System.out.println("You win"); balance += bet; ++wins; + return "You win"; } if(player.getHand().calculateValue() == dealer.getHand().calculateValue()) { - System.out.println("Push"); ++pushes; + return "Push"; } + + return "Something went wrong"; } }