Exemplo n.º 1
0
  // returns true if at least one player bet, false otherwise
  private boolean takeBetsAndDealInitialCards() {
    boolean atLeastOneBet = false;

    List<Double> bets = new ArrayList<Double>();

    //        for(Seat seat : this.seats)
    for (int seatIndex = 0; seatIndex < this.seats.size(); seatIndex++) {
      Seat seat = this.seats.get(seatIndex);
      double bet = seat.player.bet(this.minBet, this.maxBet);
      if (this.minBet <= bet && bet <= this.maxBet) {
        atLeastOneBet = true;
        seat.hands.add(new CardsAndBet(bet));
        bets.add(bet);
      } else {
        bet = 0;
        bets.add(0.0);
      }

      for (BlackjackObserver observer : this.observers) observer.initialBet(seatIndex, bet);
    }

    for (BlackjackObserver observer : this.observers) observer.initialBets(bets);

    if (!atLeastOneBet) return false;

    for (int x = 1; x <= 2; x++) {
      for (Seat seat : this.seats)
        if (seat.hands.size() > 0) seat.hands.get(0).dealCardTo(this.dealFaceUpCard());

      if (x == 2) this.dealerHand.add(0, dealFaceUpCard());
      else this.dealerHand.add(0, this.cardSource.getCard());
    }

    return true;
  }