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:
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";
}
}