@FXML
  private void handlePlay() {

    eGameState = eGameState.StartOfGame;

    // Clear all players hands
    hBoxP1Cards.getChildren().clear();
    hBoxP2Cards.getChildren().clear();
    hBoxP3Cards.getChildren().clear();
    hBoxP4Cards.getChildren().clear();

    // Face down card (will represent the deck)
    ImageView imgBottomCard =
        new ImageView(
            new Image(getClass().getResourceAsStream("/res/img/b1fh.png"), 75, 75, true, true));

    HboxCommonArea.getChildren().clear();
    HboxCommonArea.getChildren().add(imgBottomCard);
    HboxCommunityCards.getChildren().clear();

    // ensures play cannot be pressed without selecting a game type
    // this still allows you to hit draw, so something more robust is needed,
    // or something has to be added to handleDraw()
    if (this.mainApp.getiGameType() == null) {
      displayWarning("you must select a game to play from the menu");
      return;
    }

    // Get the Rule, start the Game
    Rule rle = new Rule(this.mainApp.getiGameType());
    gme = new GamePlay(rle);

    // Add the seated players to the game, create a GPPH for the player
    for (Player p : mainApp.GetSeatedPlayers()) {
      gme.addPlayerToGame(p);
      GamePlayPlayerHand GPPH = new GamePlayPlayerHand();
      GPPH.setGame(gme);
      GPPH.setPlayer(p);
      GPPH.setHand(new Hand());
      gme.addGamePlayPlayerHand(GPPH);
      DealFaceDownCards(gme.getNbrOfCards(), p.getiPlayerPosition());
    }

    // Add the common player (community player) to the game
    GamePlayPlayerHand GPCH = new GamePlayPlayerHand();
    GPCH.setGame(gme);
    GPCH.setPlayer(PlayerCommon);
    GPCH.setHand(new Hand());
    gme.addGamePlayCommonHand(GPCH);
    DealFaceDownCards(gme.getRule().GetCommunityCardsCount(), 0);

    // Add a deck to the game
    gme.setGameDeck(new Deck(rle.GetNumberOfJokers(), rle.GetRuleCards()));

    // Call common code to set the game controls
    SetGameControls(eGameState);
  }
  @FXML
  private void handlePlay() {

    eGameState = eGameState.StartOfGame;

    // Clear all players hands
    hBoxP1Cards.getChildren().clear();
    hBoxP2Cards.getChildren().clear();
    hBoxP3Cards.getChildren().clear();
    hBoxP4Cards.getChildren().clear();

    // Face down card (will represent the deck)
    ImageView imgBottomCard =
        new ImageView(
            new Image(getClass().getResourceAsStream("/res/img/b1fh.png"), 75, 75, true, true));

    HboxCommonArea.getChildren().clear();
    HboxCommonArea.getChildren().add(imgBottomCard);
    HboxCommunityCards.getChildren().clear();

    // Get the Rule, start the Game
    Rule rle = new Rule(eGame.Omaha);
    gme = new GamePlay(rle);

    // Add the seated players to the game, create a GPPH for the player
    for (Player p : mainApp.GetSeatedPlayers()) {
      gme.addPlayerToGame(p);
      GamePlayPlayerHand GPPH = new GamePlayPlayerHand();
      GPPH.setGame(gme);
      GPPH.setPlayer(p);
      GPPH.setHand(new Hand());
      gme.addGamePlayPlayerHand(GPPH);
      DealFaceDownCards(gme.getNbrOfCards(), p.getiPlayerPosition());
    }

    // Add the common player (community player) to the game
    GamePlayPlayerHand GPCH = new GamePlayPlayerHand();
    GPCH.setGame(gme);
    GPCH.setPlayer(PlayerCommon);
    GPCH.setHand(new Hand());
    gme.addGamePlayCommonHand(GPCH);
    DealFaceDownCards(gme.getRule().GetCommunityCardsCount(), 0);

    // Add a deck to the game
    gme.setGameDeck(new Deck(rle.GetNumberOfJokers(), rle.GetRuleCards()));

    // Call common code to set the game controls
    SetGameControls(eGameState);
  }
Esempio n. 3
0
  @FXML
  private void handlePlay() {
    // Clear all players hands
    HboxCommonArea.getChildren().clear();
    HboxCommunityCards.getChildren().clear();
    h1P1.getChildren().clear();
    v2P2.getChildren().clear();
    h3P3.getChildren().clear();
    v4P4.getChildren().clear();
    handsInPlay.clear();
    winnerAnnouncement.setText("");

    // Correct the spacing of cards on the East and West sides
    h1P1.setSpacing(-30);
    v2P2.setSpacing(-45);
    h3P3.setSpacing(-30);
    v4P4.setSpacing(-45);

    // Get the Rule, start the Game
    Rule rle = new Rule(eGame.FiveStud);
    gme = new GamePlay(rle);

    NbrCards = gme.getNbrOfCards();
    NbrCommunityCards = gme.getNbrCommunityCards();

    // For purpose of testing when the game is set to Five Card Stud:
    NbrCommunityCards = 5;

    // Add the seated players to the game
    for (Player p : mainApp.GetSeatedPlayers()) {
      gme.addPlayerToGame(p);
      GamePlayPlayerHand GPPH = new GamePlayPlayerHand();
      GPPH.setGame(gme);
      GPPH.setPlayer(p);
      GPPH.setHand(new Hand());
      gme.addGamePlayPlayerHand(GPPH);
    }

    // Add a deck to the game
    gme.setGameDeck(new Deck());

    btnDraw.setVisible(true);
    btnDrawCenter.setVisible(false);
    iCardDrawn = 0;
    communityCardDrawn = 0;

    String strCard = "/res/img/b1fv.png";

    if (bP1Sit == true) {
      for (int i = 0; i < gme.getNbrOfCards(); i++) {
        ImageView img =
            new ImageView(new Image(getClass().getResourceAsStream(strCard), 75, 75, true, true));
        h1P1.getChildren().add(img);
      }
    }

    if (bP2Sit == true) {
      for (int i = 0; i < gme.getNbrOfCards(); i++) {
        ImageView img =
            new ImageView(new Image(getClass().getResourceAsStream(strCard), 75, 75, true, true));
        img.setRotate(90);
        v2P2.getChildren().add(img);
      }
    }

    if (bP3Sit == true) {
      for (int i = 0; i < gme.getNbrOfCards(); i++) {
        ImageView img =
            new ImageView(new Image(getClass().getResourceAsStream(strCard), 75, 75, true, true));

        h3P3.getChildren().add(img);
      }
    }

    if (bP4Sit == true) {
      for (int i = 0; i < gme.getNbrOfCards(); i++) {
        ImageView img =
            new ImageView(new Image(getClass().getResourceAsStream(strCard), 75, 75, true, true));
        img.setRotate(-90);
        v4P4.getChildren().add(img);
      }
    }

    for (int i = 0; i < this.NbrCommunityCards; i++) {
      ImageView img =
          new ImageView(new Image(getClass().getResourceAsStream(strCard), 75, 75, true, true));

      HboxCommunityCards.getChildren().add(img);
    }

    ImageView imgBottomCard =
        new ImageView(
            new Image(getClass().getResourceAsStream("/res/img/b2fh.png"), 75, 75, true, true));

    HboxCommonArea.getChildren().add(imgBottomCard);

    // Draw for the number of cards being dealt according to the current game's rules
    for (int i = 0; i < NbrCards; i++) {
      handleDraw();
    }

    // Make an ArrayList for the hands to compare
    ArrayList<Hand> handsAsHands = new ArrayList<Hand>();

    for (GamePlayPlayerHand gpph : handsInPlay) {
      handsAsHands.add(gpph.getHand());
    }

    // Find the best hand of those in play
    Hand winningHand = Hand.PickBestHand(handsAsHands);

    // Establish the winning player
    Player winningPlayer = new Player("null", 0);

    // Match the winning hand to the winning player
    for (GamePlayPlayerHand gpph : handsInPlay) {
      if (gpph.getHand() == winningHand) {
        winningPlayer = gpph.getPlayer();
      }
    }

    // Print the winner to the console and the game itself
    String winner = winningPlayer.getPlayerName() + " wins!";
    System.out.println(winner);
    winnerAnnouncement.setText(winner);
  }