From bdb70a30c6dc5667fab03c2c969562b6a071ff92 Mon Sep 17 00:00:00 2001 From: "michael.divia" <michael.divia@etu.hesge.ch> Date: Sat, 13 Jan 2024 01:11:01 +0100 Subject: [PATCH] GUI 100% --- .../src/main/java/ch/hepia/GameManager.java | 401 ++++++++++++++---- .../classes/ch/hepia/BlackjackGUI$1.class | Bin 1708 -> 1746 bytes .../classes/ch/hepia/BlackjackGUI.class | Bin 14873 -> 14772 bytes .../classes/ch/hepia/GameManager$1.class | Bin 1799 -> 1799 bytes .../target/classes/ch/hepia/GameManager.class | Bin 30418 -> 37181 bytes 5 files changed, 323 insertions(+), 78 deletions(-) diff --git a/Partie_3_GUI/src/main/java/ch/hepia/GameManager.java b/Partie_3_GUI/src/main/java/ch/hepia/GameManager.java index e9cb84e..1da51ee 100644 --- a/Partie_3_GUI/src/main/java/ch/hepia/GameManager.java +++ b/Partie_3_GUI/src/main/java/ch/hepia/GameManager.java @@ -31,8 +31,8 @@ public class GameManager { private ArrayList<Joueur> Players; private JoueurCroupier Dealer; private int ComputerPlayers; - private int Step; private boolean GameOver; + private int CurrentHand; public GameManager(int nbPlayer, int startMoney, int computerStrategy) { @@ -90,7 +90,7 @@ public class GameManager { // Ask the player how much he wan't to bid public void StartTurn(Stage primaryStage) { - this.Step = 0; + this.CurrentHand = 0; Font font = Font.font("Courier New", FontWeight.BOLD, 25); @@ -110,6 +110,38 @@ public class GameManager { BackgroundPosition.CENTER, new BackgroundSize(550, 400, false, false, true, true)); + Image deckImage = new Image("file:img/deck.png"); + ImageView deckView = new ImageView(deckImage); + deckView.setFitHeight(50); + deckView.setPreserveRatio(true); + + Image moneyImage = new Image("file:img/money.png"); + ImageView moneyView = new ImageView(moneyImage); + moneyView.setFitHeight(50); + moneyView.setPreserveRatio(true); + + Text cardsInDeck = new Text(String.valueOf(this.Deck.GetNbCards())); + cardsInDeck.setFill(Color.WHITE); + cardsInDeck.setFont(Font.font("Courier New", FontWeight.BOLD, 20)); + + Text moneyPlayer = new Text(String.valueOf(this.Players.get(0).GetMoney())); + moneyPlayer.setFill(Color.WHITE); + moneyPlayer.setFont(Font.font("Courier New", FontWeight.BOLD, 20)); + + HBox deckBox = new HBox(5); + deckBox.getChildren().addAll(deckView, cardsInDeck); + deckBox.setAlignment(Pos.CENTER_LEFT); + + HBox moneyBox = new HBox(5); + moneyBox.getChildren().addAll(moneyView, moneyPlayer); + moneyBox.setAlignment(Pos.CENTER_LEFT); + + VBox moneyDeckInsuredBox = new VBox(10); + moneyDeckInsuredBox.getChildren().addAll(deckBox, moneyBox); + moneyDeckInsuredBox.setAlignment(Pos.CENTER_LEFT); + + moneyDeckInsuredBox.setTranslateX(5); + if (this.GameOver) { Button exitButton = createButtonWithText("Exit", "file:img/red_button.png", 200, @@ -128,7 +160,7 @@ public class GameManager { StackPane root = new StackPane(); - root.getChildren().add(layout); + root.getChildren().addAll(moneyDeckInsuredBox, layout); root.setBackground(new Background(background)); layout.setBackground(new Background(backgroundPopup)); @@ -181,7 +213,7 @@ public class GameManager { layout.setMinSize(550, 400); layout.setMaxSize(550, 400); - root.getChildren().add(layout); + root.getChildren().addAll(moneyDeckInsuredBox, layout); root.setBackground(new Background(background)); layout.setBackground(new Background(backgroundPopup)); @@ -212,7 +244,9 @@ public class GameManager { // Set the Computer players bid for this turn for (int x = 1; x <= this.ComputerPlayers; x++) { - Players.get(x).SetBet(10, 0); + if (!this.Players.get(x).IsGameOver()) { + Players.get(x).SetBet(10, 0); + } } layout.setVisible(false); @@ -235,8 +269,6 @@ public class GameManager { // Ask the player for all his interactions with this cards public void PlayTurn(Stage primaryStage) { - this.Step = 0; - Image backgroundImage = new Image("file:img/background.jpg"); BackgroundImage background = new BackgroundImage( backgroundImage, @@ -286,7 +318,7 @@ public class GameManager { moneyPlayer.setFill(Color.WHITE); moneyPlayer.setFont(Font.font("Courier New", FontWeight.BOLD, 20)); - Text insured = new Text(String.valueOf(this.Players.get(0).HasInsured())); + Text insured = new Text("0.0"); insured.setFill(Color.WHITE); insured.setFont(Font.font("Courier New", FontWeight.BOLD, 20)); @@ -319,28 +351,45 @@ public class GameManager { dealerCardsStrengthBox.getChildren().addAll(dealerCardsBox, strengthDealer); dealerCardsStrengthBox.setAlignment(Pos.TOP_CENTER); - HBox playerCardsBox = new HBox(-70); - playerCardsBox.getChildren().addAll(playerCard1View, playerCard2View); - playerCardsBox.setAlignment(Pos.TOP_CENTER); + HBox[] playerCardsBox = new HBox[3]; + + Text[] strengthHand = new Text[3]; + + Text[] betHand = new Text[3]; + + VBox[] playerCardsStrengthBox = new VBox[3]; + + for (int x = 0; x < 3; x++) { + strengthHand[x] = new Text(); + strengthHand[x].setTextAlignment(TextAlignment.CENTER); + strengthHand[x].setFill(Color.WHITE); + strengthHand[x].setFont(Font.font("Courier New", FontWeight.BOLD, 30)); + + playerCardsBox[x] = new HBox(); + playerCardsBox[x] = new HBox(-70); + playerCardsBox[x].setAlignment(Pos.TOP_CENTER); + + betHand[x] = new Text(); + betHand[x].setFill(Color.WHITE); + betHand[x].setTextAlignment(TextAlignment.CENTER); + betHand[x].setFont(Font.font("Courier New", FontWeight.BOLD, 25)); + + playerCardsStrengthBox[x] = new VBox(20); + playerCardsStrengthBox[x].setAlignment(Pos.TOP_CENTER); + + playerCardsStrengthBox[x].getChildren().addAll(strengthHand[x], playerCardsBox[x], betHand[x]); + } - Text strengthHand1 = new Text(); if (this.Players.get(0).GetStrength(0) == 99) { - strengthHand1.setText("BlackJack"); + strengthHand[0].setText("BlackJack"); + strengthHand[0].setFill(Color.GOLD); } else { - strengthHand1.setText(String.valueOf(this.Players.get(0).GetStrength(0))); + strengthHand[0].setText(String.valueOf(this.Players.get(0).GetStrength(0))); } - strengthHand1.setFill(Color.WHITE); - strengthHand1.setTextAlignment(TextAlignment.CENTER); - strengthHand1.setFont(Font.font("Courier New", FontWeight.BOLD, 30)); - Text betHand1 = new Text(String.valueOf(this.Players.get(0).GetBet(0))); - betHand1.setFill(Color.WHITE); - betHand1.setTextAlignment(TextAlignment.CENTER); - betHand1.setFont(Font.font("Courier New", FontWeight.BOLD, 25)); + playerCardsBox[0].getChildren().addAll(playerCard1View, playerCard2View); - VBox playerCardsStrengthBox = new VBox(20); - playerCardsStrengthBox.getChildren().addAll(strengthHand1, playerCardsBox, betHand1); - playerCardsStrengthBox.setAlignment(Pos.TOP_CENTER); + betHand[0].setText(String.valueOf(this.Players.get(0).GetBet(0))); VBox computers = new VBox(15); computers.setAlignment(Pos.CENTER_RIGHT); @@ -378,21 +427,29 @@ public class GameManager { HBox actions = new HBox(10); actions.setAlignment(Pos.BOTTOM_CENTER); + Button insureButton = createButtonWithText("Insure", "file:img/red_button.png", 175, 4.0); + Button splitButton = createButtonWithText("Split", "file:img/red_button.png", 175, 4.0); + Button doubleButton = createButtonWithText("Double", "file:img/gray_button.png", 175, 4.0); + Button hitButton = createButtonWithText("Hit", "file:img/light_green_button.png", 175, 4.0); + Button keepButton = createButtonWithText("Stand", "file:img/light_blue_button.png", 175, 4.0); + // Insurance - // Can only insure if it's the first thing that the players does - // AND // That he hasn't already insured during this round - if (this.Step == 0 && this.Dealer.HasOnlyAs() && !this.Players.get(0).HasInsured()) { - Button insureButton = createButtonWithText("Insure", "file:img/red_button.png", 175, 4.0); + if (this.Dealer.HasOnlyAs() && !this.Players.get(0).HasInsured()) { + actions.getChildren().add(insureButton); insureButton.setOnAction(event -> { this.Players.get(0).Insure(); - insured.setText(String.valueOf(this.Players.get(0).HasInsured())); + insured.setText(String.valueOf(this.Players.get(0).GetInsured())); + moneyPlayer.setText(String.valueOf(this.Players.get(0).GetMoney())); actions.getChildren().remove(insureButton); }); } + HBox playerCardBox = new HBox(10); + playerCardBox.setAlignment(Pos.BOTTOM_CENTER); + // Split // Can only split if this hand can be split (if it wasn't already split AND if // the 2 cards have the same strength) @@ -400,10 +457,133 @@ public class GameManager { // if we have less that 3 hands already (Max 2 splits) // AND // if the player has enough money - if (this.Players.get(0).CanSplit(0) && this.Players.get(0).GetNbHands() < 3 - && this.Players.get(0).GetBet(0) <= this.Players.get(0).GetMoney()) { - Button splitButton = createButtonWithText("Split", "file:img/red_button.png", 175, 4.0); + if (this.Players.get(0).CanSplit(this.CurrentHand) && this.Players.get(0).GetNbHands() < 3 + && this.Players.get(0).GetBet(this.CurrentHand) <= this.Players.get(0).GetMoney()) { + actions.getChildren().add(splitButton); + + splitButton.setOnAction(event -> { + + this.Players.get(0).Split(this.CurrentHand, Deck); + moneyPlayer.setText(String.valueOf(this.Players.get(0).GetMoney())); + + playerCardsBox[this.CurrentHand].getChildren().clear(); + + Image Card1 = new Image("file:img/" + this.Players.get(0).GetCard(this.CurrentHand, 0) + ".png"); + Image Card2 = new Image("file:img/" + this.Players.get(0).GetCard(this.CurrentHand, 1) + ".png"); + + ImageView Card1View = new ImageView(Card1); + Card1View.setFitHeight(150); + Card1View.setPreserveRatio(true); + + ImageView Card2View = new ImageView(Card2); + Card2View.setFitHeight(150); + Card2View.setPreserveRatio(true); + + playerCardsBox[this.CurrentHand].getChildren().addAll(Card1View, Card2View); + + playerCardsBox[this.Players.get(0).GetNbHands() - 1].getChildren().clear(); + + Image Card3 = new Image( + "file:img/" + this.Players.get(0).GetCard(this.Players.get(0).GetNbHands() - 1, 0) + ".png"); + Image Card4 = new Image( + "file:img/" + this.Players.get(0).GetCard(this.Players.get(0).GetNbHands() - 1, 1) + ".png"); + + ImageView Card3View = new ImageView(Card3); + Card3View.setFitHeight(150); + Card3View.setPreserveRatio(true); + + ImageView Card4View = new ImageView(Card4); + Card4View.setFitHeight(150); + Card4View.setPreserveRatio(true); + + playerCardsBox[this.Players.get(0).GetNbHands() - 1].getChildren().addAll(Card3View, Card4View); + + if (this.Players.get(0).GetStrength(this.CurrentHand) == 99) { + strengthHand[this.CurrentHand].setText("BlackJack"); + strengthHand[this.CurrentHand].setFill(Color.GOLD); + } else { + strengthHand[this.CurrentHand] + .setText(String.valueOf(this.Players.get(0).GetStrength(this.CurrentHand))); + } + + if (this.Players.get(0).GetStrength(this.Players.get(0).GetNbHands() - 1) == 99) { + strengthHand[this.Players.get(0).GetNbHands() - 1].setText("BlackJack"); + strengthHand[this.Players.get(0).GetNbHands() - 1].setFill(Color.GOLD); + } else { + strengthHand[this.Players.get(0).GetNbHands() - 1] + .setText(String + .valueOf(this.Players.get(0).GetStrength(this.Players.get(0).GetNbHands() - 1))); + } + + betHand[this.Players.get(0).GetNbHands() - 1] + .setText(String.valueOf(this.Players.get(0).GetBet(this.Players.get(0).GetNbHands() - 1))); + + for (int x = 0; x < this.Players.get(0).GetNbHands(); x++) { + playerCardsStrengthBox[x].setTranslateY(0); + } + + playerCardsStrengthBox[this.CurrentHand].setTranslateY(-20); + + playerCardBox.getChildren().add(playerCardsStrengthBox[this.Players.get(0).GetNbHands() - 1]); + + if (actions.getChildren().contains(insureButton)) { + actions.getChildren().remove(insureButton); + } + + if (actions.getChildren().contains(doubleButton)) { + actions.getChildren().remove(doubleButton); + } + + if (this.Players.get(0).GetNbHands() == 3 || !this.Players.get(0).CanSplit(this.CurrentHand)) { + actions.getChildren().remove(splitButton); + } + + }); + } + + // Double + // Can only double if this hand wasn't already doubled + // AND + // if the hand has only 2 cards + // AND + // if the hand is not a BlackJack + // AND + // if the player has enough money + if (!this.Players.get(0).HasDoubled(this.CurrentHand) + && this.Players.get(0).GetNbCards(this.CurrentHand) == 2 + && this.Players.get(0).GetStrength(this.CurrentHand) != 99 + && this.Players.get(0).GetBet(this.CurrentHand) <= this.Players.get(0).GetMoney()) { + + actions.getChildren().add(doubleButton); + + doubleButton.setOnAction(event -> { + + actions.getChildren().clear(); + actions.getChildren().add(keepButton); + + this.Players.get(0).Double(this.CurrentHand, Deck); + + Image playerCard = new Image( + "file:img/" + this.Players.get(0).GetCard(this.CurrentHand, + this.Players.get(0).GetNbCards(this.CurrentHand) - 1) + ".png"); + ImageView playerCardView = new ImageView(playerCard); + playerCardView.setFitHeight(150); + playerCardView.setPreserveRatio(true); + + playerCardsBox[this.CurrentHand].getChildren().add(playerCardView); + if (this.Players.get(0).GetStrength(this.CurrentHand) > 21) { + strengthHand[this.CurrentHand].setText("BUSTED"); + strengthHand[this.CurrentHand].setFill(Color.RED); + } else { + strengthHand[this.CurrentHand] + .setText(String.valueOf(this.Players.get(0).GetStrength(this.CurrentHand))); + } + + betHand[0].setText(String.valueOf(this.Players.get(0).GetBet(this.CurrentHand))); + moneyPlayer.setText(String.valueOf(this.Players.get(0).GetMoney())); + + }); } // Draw a Card (Hit) @@ -414,15 +594,51 @@ public class GameManager { // if the player has a BlackJack // AND // if the strength of the hand is more than 21 - if (!(this.Players.get(0).HasDoubled(0) && this.Players.get(0).GetNbCards(0) == 3) - && !(this.Players.get(0).HasSplit(0) && this.Players.get(0).GetCardStrength(0, 0) == 1) - && this.Players.get(0).GetStrength(0) < 21) { - Button hitButton = createButtonWithText("Hit", "file:img/light_green_button.png", 175, 4.0); + if (!(this.Players.get(0).HasDoubled(this.CurrentHand) && this.Players.get(0).GetNbCards(this.CurrentHand) == 3) + && !(this.Players.get(0).HasSplit(this.CurrentHand) + && this.Players.get(0).GetCardStrength(this.CurrentHand, 0) == 1) + && this.Players.get(0).GetStrength(this.CurrentHand) < 21) { actions.getChildren().add(hitButton); + + hitButton.setOnAction(event -> { + + if (actions.getChildren().contains(splitButton)) { + actions.getChildren().remove(splitButton); + } + + if (actions.getChildren().contains(insureButton)) { + actions.getChildren().remove(insureButton); + } + + if (actions.getChildren().contains(doubleButton)) { + actions.getChildren().remove(doubleButton); + } + + this.Players.get(0).DrawCard(this.CurrentHand, Deck); + + Image playerCard = new Image( + "file:img/" + this.Players.get(0).GetCard(this.CurrentHand, + this.Players.get(0).GetNbCards(this.CurrentHand) - 1) + ".png"); + ImageView playerCardView = new ImageView(playerCard); + playerCardView.setFitHeight(150); + playerCardView.setPreserveRatio(true); + + playerCardsBox[this.CurrentHand].getChildren().add(playerCardView); + if (this.Players.get(0).GetStrength(this.CurrentHand) > 21) { + strengthHand[this.CurrentHand].setText("BUSTED"); + strengthHand[this.CurrentHand].setFill(Color.RED); + + actions.getChildren().clear(); + actions.getChildren().add(keepButton); + } else { + strengthHand[this.CurrentHand] + .setText(String.valueOf(this.Players.get(0).GetStrength(this.CurrentHand))); + } + + }); } // Keep (Stand) - Button keepButton = createButtonWithText("Stand", "file:img/light_blue_button.png", 175, 4.0); actions.getChildren().add(keepButton); StackPane deckMoney = new StackPane(); @@ -436,16 +652,43 @@ public class GameManager { StackPane computer = new StackPane(); keepButton.setOnAction(event -> { - if (this.Players.get(0).GetNbHands() == 1) { + + if (this.CurrentHand == this.Players.get(0).GetNbHands() - 1) { actions.getChildren().clear(); ResolveTurn(primaryStage, cardsInDeck, dealerCardsBox, strengthDealer, computers, actions, player, - moneyPlayer); + moneyPlayer, insured); + } else { + actions.getChildren().remove(keepButton); + + if (actions.getChildren().contains(hitButton)) { + actions.getChildren().remove(hitButton); + } + + this.CurrentHand++; + + if (this.Players.get(0).GetNbHands() < 3 && this.Players.get(0).CanSplit(this.CurrentHand)) { + actions.getChildren().add(splitButton); + } + + if (this.Players.get(0).GetStrength(this.CurrentHand) < 21) { + actions.getChildren().add(hitButton); + } + + actions.getChildren().add(keepButton); + + for (int x = 0; x < this.Players.get(0).GetNbHands(); x++) { + playerCardsStrengthBox[x].setTranslateY(0); + } + + playerCardsStrengthBox[this.CurrentHand].setTranslateY(-20); } }); + playerCardBox.getChildren().add(playerCardsStrengthBox[0]); + dealer.getChildren().add(dealerCardsStrengthBox); - player.getChildren().addAll(playerCardsStrengthBox); + player.getChildren().addAll(playerCardBox); action.getChildren().addAll(actions); deckMoney.getChildren().add(moneyDeckInsuredBox); computer.getChildren().add(computers); @@ -461,38 +704,6 @@ public class GameManager { root.getChildren().addAll(deckMoney, dealer, player, computer, action); - // Hit - // if (choice == 'h') { - // this.Players.get(0).DrawCard(HandNb, this.Deck); - // // Go back 1 hand to stay on the same hand in the for loop - // HandNb--; - // } - // Split - // else if (choice == 's') { - // this.Players.get(0).Split(HandNb, this.Deck); - // // Go back 1 hand to stay on the same hand in the for loop - // HandNb--; - // } - // Double - // else if (choice == 'd') { - // this.Players.get(0).Double(HandNb, this.Deck); - // // Go back 1 hand to stay on the same hand in the for loop - // HandNb--; - // } - - // Step++; - - // Insure - // if (choice == 'i') { - // this.Players.get(0).Insure(); - // EndTurn = false; - // } - // If this point is reached (and not because of the insurance), all hands have - // been played - // else { - // EndTurn = true; - // } - Scene scene_4 = new Scene(root, 1400, 800); primaryStage.setScene(scene_4); @@ -503,7 +714,7 @@ public class GameManager { // Do all the math for the player gains and losses // Check if the player can continue et prepare for the next round public void ResolveTurn(Stage primaryStage, Text cardsInDeck, HBox dealerCardsBox, Text strengthDealer, - VBox computers, HBox actions, StackPane player, Text moneyPlayer) { + VBox computers, HBox actions, StackPane player, Text moneyPlayer, Text insured) { // Computer Players take turn to play for (int x = 1; x <= this.ComputerPlayers; x++) { @@ -726,8 +937,14 @@ public class GameManager { if (this.Dealer.GetStrength(0) == 99) { strengthDealer.setText("BlackJack"); + strengthDealer.setFill(Color.GOLD); } else { - strengthDealer.setText(String.valueOf(this.Dealer.GetStrength(0))); + if (this.Dealer.GetStrength(0) > 21) { + strengthDealer.setText("BUSTED"); + strengthDealer.setFill(Color.RED); + } else { + strengthDealer.setText(String.valueOf(this.Dealer.GetStrength(0))); + } } dealerCardsBox.getChildren().clear(); @@ -826,21 +1043,42 @@ public class GameManager { for (int HandNb = 0; HandNb < this.Players.get(0).GetNbHands(); HandNb++) { hand[HandNb] = new VBox(20); + HBox cards = new HBox(-70); hand[HandNb].setAlignment(Pos.TOP_CENTER); Text strengthHand = new Text(); + strengthHand.setFill(Color.WHITE); + if (this.Players.get(0).GetStrength(HandNb) == 99) { strengthHand.setText("BlackJack"); + strengthHand.setFill(Color.GOLD); } else { - strengthHand.setText(String.valueOf(this.Players.get(0).GetStrength(0))); + if (this.Players.get(0).GetStrength(HandNb) > 21) { + strengthHand.setText("BUSTED"); + strengthHand.setFill(Color.RED); + } else { + strengthHand.setText(String.valueOf(this.Players.get(0).GetStrength(HandNb))); + } } - strengthHand.setFill(Color.WHITE); + strengthHand.setTextAlignment(TextAlignment.CENTER); strengthHand.setFont(Font.font("Courier New", FontWeight.BOLD, 30)); + ImageView[] card = new ImageView[this.Players.get(0).GetNbCards(HandNb)]; + for (int z = 0; z < this.Players.get(0).GetNbCards(HandNb); z++) { + + Image cardImage = new Image("file:img/" + this.Players.get(0).GetCard(HandNb, z) + ".png"); + + card[z] = new ImageView(cardImage); + card[z].setFitHeight(150); + card[z].setPreserveRatio(true); + + cards.getChildren().add(card[z]); + } + Text betHand = new Text(); betHand.setTextAlignment(TextAlignment.CENTER); - betHand.setFont(Font.font("Courier New", FontWeight.BOLD, 30)); + betHand.setFont(Font.font("Courier New", FontWeight.BOLD, 25)); // If the player is Busted (strength > 21 but not BlackJack (99)) if (this.Players.get(0).GetStrength(HandNb) > 21 && this.Players.get(0).GetStrength(HandNb) != 99) { @@ -887,7 +1125,7 @@ public class GameManager { betHand.setFill(Color.LIGHTGREEN); } - hand[HandNb].getChildren().addAll(strengthHand, betHand); + hand[HandNb].getChildren().addAll(strengthHand, cards, betHand); hands.getChildren().add(hand[HandNb]); } @@ -902,6 +1140,13 @@ public class GameManager { if (this.Dealer.GetStrength(0) == 99) { this.Players.get(0).AddMoney(this.Players.get(0).GetInsured() * 3); + + insured.setText("+" + String.valueOf(this.Players.get(0).GetInsured() * 3)); + insured.setFill(Color.LIGHTGREEN); + + } else { + insured.setText(String.valueOf(this.Players.get(0).GetInsured() * -1)); + insured.setFill(Color.RED); } } diff --git a/Partie_3_GUI/target/classes/ch/hepia/BlackjackGUI$1.class b/Partie_3_GUI/target/classes/ch/hepia/BlackjackGUI$1.class index 9ff25729f7579aedf8ab30375c5973a07af7109e..dfb5471cba8b04ad6653a41ecd555366c06feec5 100644 GIT binary patch delta 759 zcmZ3(dx_Wi)W2Q(7#J8F7`)jTm>3zvlQZ-)QVTK@^__AOle4oDle67JJyi_Z8CVz@ z1hNv#67_Qu^V0SGld@8iOV}CM7#S2NZ)6mnT*JaQc|DWrL}Lq1Mg}&U%)HDJyUB`7 zE-IW1j12rd4D1XXAeJBx11AF)7XvecFb@Mag9sx7vxa8a<Wwe~$x9f+xEUEZgEQ0f z5=%;pCNE@8G3H>9V`N~CNzvkBP+(AEXHZ0OL~uz_W?niEgEE5(BLjPGVo7pFYVqU- zMsb-a4hA(w2G;1fn3Px!1`S3A29N<-JPg_lI+GZ^IQ19|*ctR08RRD0GRd*>Fc>lz zO)g_pntYGx*yMGLhLbH=q}kXRY#AApCU0a^;^JapWU%L9kYtdWJfB6G(Q~pci}>VR z7L&<`ScK$U85u;eh8hopJA=pMPb@0+Jf3-ZsYT8?iN(dK#f%IbeyPPJ9{I&33<?a4 z49pCS46F=H0s^2gVqg#u0)-F*0|PSy0|Pe$4+A3uF9QREB?A*!gkMX0D+8aF&Q=Bi zt?dj#8yOfFm>5JE7#P?X7#SECPBDlvFn~2NFz_>oGe|HnFfi7GT+YD6APrV512(UP zfrWvEfq_9%S4egngZwN8A+0S80=hz~Lh9QXG`BJ6f=p%so6HBc_#6W#!+8b?hKpbu zv>=+HHZU+qG8i+MfL$QTV9H>|zyvay!JNU2ftkUg9_}QNGD`+V1}m`t7$pQ886+93 zp<XnEI!RDV`v8ND&H)Am-2)5?+ZgOXPC@o0BiIQbD_9vEz<zRs`pt>KnSp_Ug~5fv Ujlq)v6zhyo!x<PDyueCb05FPmJ^%m! delta 719 zcmcb_yM|Zl)W2Q(7#J8F7~DA-m>8JZ8CZB2SQ*$D8N??RiZZDfPHeY|;9}rl;ACgu z;$h%s;9+DC$Vx0r)Xz!GOV{^L%1TWxVPs&l$;`_vv14Rl*3b;&VBlk9V2(-A;$jeB z5M*Z%;$aYG5JAxwTvC*omp(a%NkvkOk%2WjE+!?GgF%9kfdQmPiibg(L1ywwCNFL| z26=V{1s(=P2BpbAnG`3>Gb?d%F)%Tx@Gz({s7<b6j9_MG(3t3;#$=^2u|Ry{Q_aan zj6M_7l({&AGt=`DOG=AUCp$79oBW6|k%f`LTVrw{v&!UkjNFqgSfrU589XQJvWQPU zz+y7FokdZM-!(5eC%-r|FWon_BqKkCoxzcjL3CoFC@T+xGlR=y6;_pc4!_jm5|8}i z5=I6d&%C_UBIlgM;^Nd|1_cHt1`Y;B26YBT0Rd1LGB7YOGcYi4GiWj}F=#O`FxY`Y zn1O+TOG{@f1Ebb<2KJ2%3=B*R+6)W~Yz&MH3=F3jbQl;I#2A=Bsu*+`^cX;Zi$R~k zfPs<0kb!}ro{52nff3|+sG%(kEDS6R3=ERGLcH4;_-8Q)X>DO()D;pH65qxkxs5>< zWCsh_4nDAZ&M|N@oM(_=xCpjO3!)irmn4G`gE81Gk_;vcreK#yGMF)#GB7ikgX{;{ z&cFatX2HP7U<vjlqXgJ(Obk{6jtr^{)(nhb|5`wu#;2vNbAUlW_W*;yHU?#odocYB tF_sVN4pyjnHVn4l5VB*iXJBApVQ^rObYgG?3pp^jfdh#V>_i3z1^_~uXzKs~ diff --git a/Partie_3_GUI/target/classes/ch/hepia/BlackjackGUI.class b/Partie_3_GUI/target/classes/ch/hepia/BlackjackGUI.class index 8ee7e93d237978efad496f9ce73fb34732281f78..6fe366d35383b346eafd305a8fc28ad162058b8a 100644 GIT binary patch delta 7544 zcmbPPvZYwy)W2Q(7#J8Fm=>@zFflTSPQJh=%FNEdGEv+>kdcAKIX@+pi-DPelZSzo zfo-ywWT2LqMzl{>Vp*boPGVlVesD=qW?s6rW*8R(BZD9hgAfBhBLiDbVrgD-#^h8< z1&;K@+*C#eX^qK_N+M2Co}QkXVeAYNj10WV8TuKi1(}KZ!HH$5Tnyq2oa_wJj0_@h zareaBRNutB#Prl6khClhgB*kW#8Vnp;tYyB3`z|0j0`+E`H3mPB}IuPsp*v<MJhZD zs&EOA0sdtm-BJwdAP;Cv)?sv)mSWHXakLp3*fhZI;bM?t(B)y!W6+=6$EY^>fMnd{ zxss}rTO=hX%Snl8aWL33GH?_pmZj<?7niX!I5INufCC^iU*9b=CzXrAfx#JMqRZra zj8al=j11h)`K3jfsYMEYspXsu9t>XW44#Y(GL!9?WLS9^ycv8Z8#5WR1uz7$GXzd9 zWRhg%VF+djncT$`ZX3qP!0D8en4F!Jn4HbU5Wx_|&JfASAOx~7twO)JBr!czKNv*v zFhn!BfE<=u5|UYxlgiEzJ6VodmN9;^4YLee41+T}L(=3pW(~F!hBS7D)X5W>)meEM z(it))?_f6P%wou4XUJw`P@9~{EH~MYg+qvkA(tVKk%7(G)i1;~h>=0V2P(zQQozWd z1m;w;@GIprlz=>2%E-W};o=e%6%_@F{6vOwkZ1)X!&Z&Sg3^+ckFv~_tzu*lOUukj zwaUy**H41^O0OU<ot>d(ay_dePc=gwNLxK4gDhB^nYCsZn?of77;rIEGc@xsv@o<X zGVm0qmbhh>c%){gXOu89uxPk|Y^`Q!=V9nz=$!nURh7S&k%7Z6wOj!d?HmmKll9qj zIT#rx^Ds<dm^wLyEm2@PBLk;TeqxFOD8+Fw%$$6cO__1_<U%IV$pMNi^&AXy85sop zk`(gO6asP*D^rV#6|5Av7-lgzb1*DmWZ(-fNh~T+@XgOltyHj5;9yw9$iQgG!LWpp zfl-^yK?Lk(1`dW5j0}vr91N=%8N}h9FG@{`Pbw`b$<G7%o`YcxBLf%2IFM`E8P+i} zOrFTD$hj7j3pO$`$WHDT6`g#6olAQ&BLhcpF34g>PcDWHAh&E|WZ(=gDJ{rMQE>F+ zWZ1#5i=AO7BZI_bJq`(09){fvdnPM!sB>&!*vG@LpW(pdKn??r4Gf2P7!ETWncT^t z6*G(B5Xf7{c^FPG9AIQ%2ZwD=4j02(hC^%)2@YVNfOuzl7|y{$KcFZzEj%-&Bm*RI zfrsHDNP@dKwZu2E0xZtXa2e!?L}n2s52ySJHU|~3ISgD3ml&>tV!4%*;U>dvc7|Jw z48oHWIfYq4N$$?%SWYR9OAPmT816GXm|V}P!*Pk>5f8&-h9{FZb6UtgV`LD7CH~~p zyi|R^{FGE~h8GO4*co0<=H*gh<zaZu@Mf|hmkP@}sQsZ~PWcsF3~w2(gNS<|;t`vJ z3CuYg7{2l_d}HWjWB@roI5j6Vxg<3O<jfyD3_n5QT*av+VVT95Nub=lf#Ej~!yksf zlMit@v;F5`WME{R%*`Fd#mLOa%Ff8b$e=p8o=;4~DL+3aH8C%sD8C@JsHBpIk&Tgk z@<eWHmj4`#T$3+wYjVUe3h*$nG73&+<dGF-6lP>#F*GnR;9^+ID9Xbq#^5s9kVnqy zEu#z%qb#EwBLm10zL|N!nN_Kb46GV1;1vIsQGth15iXrr0g`5CR0buPL}ro6ak88u zT#QN#oFL*6H^U1?bsk0yM$O5)cobN)85!h2`B;F9QHxO*<Q6?f22G7<P)=8#tk28J z@s`nmhtZJHXtE8j1)CD10Xw7V<SJfG4iiRekaC;Jt9j))A{gy>80{GyCST%J_laP1 z;$d_K1sW)e2Bj8fRwaUiErQXNhtZ9Jjgf(+I3vHDi@|}>gNM<R(TkCREwv)ExTKho zfmuT{ii^>Q;RidTFC&BW<bF|UE>L**^DqW522Rf6vtbElWDo~cO8hE@T#P}Cp&)03 zF)~<9ejubb`41l-TLdT;A}0&*YqCT$GN?>$6j0G+gCt=F1}?^U#zc0;1V#oCXd)^t z$;{DrDJ@DY$;{8=VN7C7p4`W;!4bun3Nkru@;-jU`Y6T>9>z>i`erLmEpe)hU~{m8 zCLYEp##|o8JcL{%7h@D-0S{v#V-X_*Z*gjgb7gW)s&js69=MqD)C>bDDB)o&1%(k` zacYTUX-R%iYFTPgaVkivoQJUj97+W_iIqYOOpH~0JdD+hHH-{w8Hsr*IjNJ^D(;zV zAt=Y;!&t||SkKrnIZn`+tqG*4d9tOV+2pf=3VcmM46KZ8AhC8vh8vR~2q{dK7TUws z2@>g=d{=1EW)rEa%ogm7yBQe-KtX|AeRDBXGw$VK+z0X%C`-6ymVk3K7o!j30Z_0U zoV-w2m-8^=QFg{7j10=)!YN*a50rr!k4^qBti|EOc!G!VB;%>ch9Zt^XBf}1GoGDX zD<a9t!+4(Y!sKZpsvJIymv|U2GhUf|SVY&#hv5(>!w$ylJd8IO_AoNAhI@F1xPnr` zK9E~(^Dy24xdjxQAw`LK#W{&3sgWFv_ZS%*C(DaDDKYvmKHy<|2&?~sODc0xg&5cw zAA`L6gpt8YV{)Oq*yJUmAZwrTFg|B&n0!%GLhdohN3VDoUo$o^G6)o>miXuS=9d<y zx>jVCq^3;fluP8~$VtpiN=Z~PnEYNT-++tpJL6Aw#vjl^2oh+}oX*4e3zV37k{}sB zEHS4vb#k0?vXq!lesW??SYlBoC?|we7NmxN7@$O}qpGZHqm9&lf|_M*XU)g}v)T~B zG@86t@rDQ&V-yn`4--2$nG~1g7qByNPSz7wabx0OOl7mbYzzimOdL#nJWTwckOQUL zko*XckRT6}5JD)D?Lg}Ta9Rc#D#pVk&LlB;hPW9wlMD}IHIpnOgDa@1rU6QD8c|I0 zJWL9pumZ(|f1X=rUS@GdY6=$<2V*%S18ZtoDkzmpO`a$(HF=GKB|Pv<CR-{7ad9!s zV$$Sc(qht{+$g4`z@*Eh&(5TW5|o~KC8_DDMLbLfOoo#Wi>Yuj?qV|LVKQMdog6Qr zqCAUHl!M8Fk%7@15hSJvrWqr{!O0sG*G@jAB*H7iz{O+>@`D{CgU93tLW+~Ul(;8v z7n0$GYnZGc-)qIiuz|^mhshZfcU+mph~j@OlO`7fBa<5sgD8U-BLh=nCS0S6B_o49 zBuy=r(_rRc@}A5k7B=~`oQ5PPG`$!aAXFPeL(z>F7NzEl42Ga^m6?1>No?{ZWkpE= zr~Leq;*z4o0^ih<jQo^hE~ap%NOq=($;v9KtUOFnOwp4)RPM6yvoVED)=>2m5nzf1 zIWK{S@eAWuem16fMh4%>+NuVV&#H1v_EZ*i6JSb$s!8KvVgjp46<|tYWDwT?C%Ci< zeQ<>7yMm(4S~E<5DHCL34i6JE6Ud%ya4T%0yiAG!Qyx^Zh=)myNu8gKsSqJn&ckF0 z7Ar%D)$lM`F<JAoGgTwR8hM!PnH>1pnHmscZ9GgKOrHE~Os$h^)Ko(Rm^z>q_3$wH zfhD>TViS3o{Fwsy*_b9E44B5l6v!0B&(1VefGLlWfyXm1FSW=yC$YFVwV0i0HY0=T z<c%uglfSD8u*?NjcN<m2>pj5bXfY!Ln@@gzc4+}41GislafxqgZc=JdF@qulBLg!y zPY5tDg8DfOj124y3=H}Vj0}tn3=FJV+Zi}EGB7YOF>o<3FtC9I6&bi07#MiKY*q#y z23`gR22KV(27ah!W4PuW^$Y?C-CPVz3=9k^3@i+)C?*IqfEtjDptJ`y;T{7k0|x^G zgRRU=2KC(x;*r}KB(2zYGe|{BvTtLM0TBuyLU}ubnibn}20@UNtSGA}%XS7$D>g|s z?QIM?Ad8uq8Mr2kYADr%EsSB{1Q`l-G6RDxg8_pf*c-MCMhwPa=h-rtFqneF#FoK~ z!IXgotiznal!28&m4TVTg29r3jlqn89m?WmkYKQ4ux4OqumJ}Hlg1wgUUmj421W*3 za4@nnFmU{<XAodeWnf@s6SDK&&EOEJvz@`oPsnu>gS!ZW?+ylkD;8~`&}|IiyBT64 zh2pj|Bv`TTW=M>bWZlG&3`Uu|8S*1V7z#xg3YnQ%Shh11Z)Yg8VgswM1gU4=%}^aF z$-bST)`~-tLxiDW8$**M2g^2wHjqR;M21t6Q-q-lB*O`k(Guzr>Jwzt5n-6HjbV}% zmzK~pp&1B1_ilz+kwSB}Gt9H%0W;@=n7m--LJ*TrOK7oBpFoNT!%~obel4NpLM!21 z0WG1`LNf#zPKYo}s0Yal?q*mUxt(FXmC$a64Us~dwli$85(YE3f|w$b!kZYjZ)4ai zDFUU1C0VvH9F!D+P<$Zjs3ad)@|YwKgv$fv@<O=0P_7V&ds0$JgyGaShBK1&5XSl4 z43{EB7_Mw*xMn3PDY}W_#x{n#lA_xf9<uIbcpAwp$sZiaA}J8Oli@iNC^9ZZ@`03! zNs2+0iXoKpfRysVmA-|T``$`iQXH)KgQWO2hL2El>%~B-Md7MJuJ{BpT0&9+top8` z1j1-xkYW+2Vo70^Z46%|C78D{e3um7#_&s0WEaCf28L~nOp+oXuJA5K4loy#7=#%) zMHsn77<rjlwlnfuNrF?6<feL*WCT%wNJdgf!6Gdw4Rw$-!a=+s2MNI(BqYozw2e^& zq6zE^8A%z4rriv0BSjd+w==xAl9iN2@;?X21R0nKvS8I8AgU!ns^ui*wlREUhs1(7 zNU=n4B&(!!a3q_gAWWMaM4O}>#EaV)r4dZ|-Hb|++Zk1?<R#^|F{(<+?POGAVhER% z-OZ>K$x^?UAu*C!k}Y^Uqs}%)eMxz+D2kx5q#Tl<6jbGIMw3WMSrJAv5k`ycj8;|( z+L8*}7;Uwgw=p_`<>V1^irU*4U39lGy3b;el;mdK#^^06vyI`QB-c*HdXQU|Gsu7i zplN~&<V$Xt--Na?`t4>6iqw)6+RhlVjWK*TV^pLFW6Tc5I7yD}j44)1l1hBr7}F({ zL>RNSG3H1rF>PbamsDce##jte$`4Y=1yZOisSH-A49b>_Ig-ju+ZgNfC6!TBa)VT= zNUDHUsz6n$fQ?iEDU?*%##kn)3?h_31ec_;q>7}HB!{-7;x5KYP<pGC<d@`=l-R}C z2;m7pcr6efw-#K-F2+_Bh@haBq=>d8pQO+(#tyIuxQqr>EsWn7YA2u5l@!%uaAq)I zaA7cJaAh!KaAUA!aA)wE{6zO~eGbD6rUHhUOhpW{m`WLDGgUCmVX9`B%hba#gJ~ke ze5Sb!3z(KNEM(fpu$bu>!&0V849l2qF|1&E#;}s<Kf@|!c7`>~!VGJf%^21(+cB(X z_GH+=9Kx`PIhJ8Fa~8uk=6Z(h%u^V4Ft23T#k`AQH}e68J<LZL_Ay^$ILLg9;cz|k zLxv;F&l!#~e_=Sr{GH)AivYtZ7A1x&EXE91Su7c@u{bhZXK`n^!Q#tsizSrdHcL3e zEtVLDJ1j{IcUiI+?y(dw+-E6cc*s)6@Q9^>;UP;a!(*0ih9@kO8J@DtWO&9hpW!9T z5{6eSD;Zw1tYdh~a+r~q<szd5%Y8;gmd}j!j;ySVexQ1cu>?|=!0ItpHfTM@%*xEz z&Dg`h#K6Pyi?NrnkAay%lI1N!Fk?Rh3xgKR9mWZa6B$?;{8_d$PGX$Qz{U{8vW9UA z<3t8_hE$e?j8hq>F>o-{v2-v_XPm~s$uNf{i*W|yOa?B7H7rr}jI$VLGH^3&XYps8 z%{YgFhv5*53*%hIISjlEXIU&6=P}M<;A6PMqQy9$aV7&l!)q34#s!Qs83Y)9vv4ym zWSq$$$jHLN#JGrYF@q2zKl69SC5%fMgc+rn-!Lv?T*@HA*uh-KxSVkXgDB%>=3vH^ zj4K$#7#}dJF|J}<%^=QH&&%|a!HjVQg9K9!(=5g{j1w6onI<xoGOlHu%pk=ymnoCM zoN)z%G}9#}6UKFnD;Q*$o-rvfu4i1$Aj>Sw_?dA7<7x&u=2*s+j2js@F~~FTV)S9$ z%(#U?f%zJv0pnK2Eewh*#tfGkw=r&KP-2N;SjD)5aXW)DODjVo<4(ry^$aTDD!zb$ z=|A|@a|Ms|h>cE(-o3=ZrJ0qhJh><o!uvYMTtnw`-HgcxSALlA_^=)=yimYrb( z7+qp#xWvxz7ED6)!bRS)Gb*t&ny@pPFfd3kFoA~g80x_-Ge$E87Epd+XaSY>I-r`L z4OGEPvVm%Tc1d>G_HB%NB-ugL`))>`NNq{>?Tq_DO@d8~hqf^um*m*QczPS-MdY>z zrzD3Y=QhTxAh~PX7;j3lOR#KXyd}vY%y@Sj<9$gENse8NkEB2u_9=w(0>pkP$*}>_ zGMvn3<b>S9YJsIph8D&*j6L8MRtw`>aLQz0XkmN@ZDF-AzGwUZ_D>b#N5+W^Yz(3d z`HY_!r!lZI=rM#berBA>z`@|nU<ppaoB~{+_CK_Vn8&~bZkzGyZe#p5lYygNi+LNv z7f^Wu2_HUi8?J|eouQY3hoK*oZx|H7V!VvM8UKLY#LM`X@gKO=$IJMi@gD;-sC^1; z*zz*|W&*W=L9IGw21XtME>On;hviz#+v+hbpTxk<FqwgeVJbB&XJ%r7SkB19zyfX@ zw`gr+V%6Tp#HzE6iFJ296GtSd4$$4s#AU@U$u7dgy^V<%N(<;PZ(}UhVcEu*uOq@F zyp1tO2c&izlPIVnE7k@{Xp1mOZez^R0;$vj31~qCbR=0MS$8o>GcasplGEPCSf&N4 z57@UcDe7!vECU5NxNk7I)jTE<>`^grh_)~(F)1^!F-S3FGN~}BGO!D9fx1%=KQQDl zFoWYlQ%h?blg17v9hQV0Oh((7%(PjyF?@%L39v6=;L;LiGT+8z2C@g#mY-!N6$iEj z(*4i`+rk9Sn9K}}8UkFP{u$JgET|>wa7$7kmO#yCS<JwvCA1J^E2wb=vx3J=3X+&1 zR;Z&|p(elt>h3|TU=)MJ1uPzPL2&_%3P~2MaiI$eVO>xN>q6o}7aA9cNV3s^ggr*= z=xTxD!Uh}{px_6^ha@O2bP;hed8bJn!~>A@j+7h0USVU9X2^iX2@|NB3h@iWOa?Y^ z-%mq(8<XQq22NHpw&e_LEM{z4I?TF|SQ2HEWZA~#vV%!y8<Q(Eycif5ltAf`(UpOn z(T#zN(Vc;pvEGA0fYF;lhS7&Xh0&WqozWK@X<Fbcs{t<_G{6pGW#D39W^!jRWng0v zU=WA0KpBsnfr<AI0~4bF7pUtDb*CKz6F7x&XbCfUZDYI-atAmGG6;c;XG~&XWUNnS zU|~#RU}sDQ+Y5<F4kjNaUj~q2eoUTF!^{wdfeSl?Vc^~>V=4n9V;WX7{FwrvW|%NA zffF;Emi9JATd)cB;4&Iw1PcQzBP)^-Y)n2($_z{bOrYL8)CeaAHn0&~TG}kk%*@cx zh4>0$iUk8Fqb1lBNdDr22O<~5JO&n~U{G<)6v7nBP|v_nz`)HE!@$fG$CSvF3}&S; zr88xKSy@cEO!;6|0aGzk37A#NRKZjUW>qoOGSz`u^-N7n&0tmwQ#(^9nAOG9%hU&E y^)pRknha)5VVce~gJ~uM0|RIjH;92j3^b;|G>d5t(>w-AruhsE3@i+cj6ndIk#<-B delta 7625 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 P&%nUc!PLdn!ypL&TxOLI diff --git a/Partie_3_GUI/target/classes/ch/hepia/GameManager$1.class b/Partie_3_GUI/target/classes/ch/hepia/GameManager$1.class index cf32a393bd62ad299b967bad90ea50167be45046..35904b8df7ab6a76c55e5d1e7abc30e5863ea0d3 100644 GIT binary patch delta 35 rcmZqYYv<c=nw9b4<TI?<f=?MZ8J;mnFg#~aVtB!z&G2fn2itxC-m44$ delta 35 rcmZqYYv<c=nw9b3<TI?<f=3xR8ICbXFdS!4VmQH|&2Vb62itxC(<=)< diff --git a/Partie_3_GUI/target/classes/ch/hepia/GameManager.class b/Partie_3_GUI/target/classes/ch/hepia/GameManager.class index 5e98dbb8e06ebf2f79381a08b225403e58f64803..52570a3f5d1db32a7353a8a3b3e82ef9cf5ff9ac 100644 GIT binary patch literal 37181 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 Xm}fB0VxGew$vl^Vfq{jAk+B#6aOHl2 delta 14615 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 -- GitLab