Beispiel #1
0
  /** Starts next player's turn until betting is over, then advances to next phase. */
  public void betting() {
    // Begin showdown phase if no players have to make remaining decisions
    int playersLeft = 0;
    int remaining = 0;
    for (PokerPlayer player : getPlayers()) {
      if (player.isInPlay()) {
        playersLeft++;
        if (!player.hasActed()) {
          remaining++;
        }
      }
    }
    if (playersLeft == 0 || (playersLeft == 1 && remaining == 0)) {
      showdown(false);
      return;
    }

    // Start next player's turn
    int playerCount = getPlayerCount();
    PokerPlayer nextPlayer = getPlayerTurn();
    int i = 0;
    while ((!nextPlayer.isInPlay() || nextPlayer.hasActed()) && i < playerCount) {
      nextPlayer();
      nextPlayer = getPlayerTurn();
      i++;
    }
    if (nextPlayer.isInPlay() && !nextPlayer.hasActed()) {
      nextPlayer.turnStart();
      return;
    }

    // Start next phase
    nextPhase();
  }