public void InitialDistribution(List <Gamester> gamesters, Shoes shoes, PlayerMove[,] condition) { for (int k = 0; k < 2; k++) { for (int i = 0; i < gamesters.Count; i++) { this.GiveCard(gamesters[i], 0, shoes); condition[i, 0] = PlayerMove.Call; } } this.GiveCard(this, 0, shoes); }
public void GiveCard(Player to, int hand, Shoes from) { to.ReceiveCard(from.Withdraw(), hand); }
public bool Ask(List <Gamester> gamesters, Shoes shoes, PlayerMove[,] condition) { for (int i = 0; i < gamesters.Count; i++) { for (int j = 0; j < 4 && gamesters[i].GetBet(j) != 0; j++) { if (gamesters[i].GetSum(j) >= 21 || gamesters[i].IsBlackJack(j)) { condition[i, j] = PlayerMove.Pass; } if (condition[i, j] != PlayerMove.Pass) { condition[i, j] = gamesters[i].Answer(j, this[0], gamesters); switch (condition[i, j]) { case PlayerMove.Pass: { break; } case PlayerMove.Call: { this.GiveCard(gamesters[i], j, shoes); break; } case PlayerMove.Double: { gamesters[i].ChangeBank(-gamesters[i].GetBet(j)); gamesters[i].SetBet(j, gamesters[i].GetBet(j) * 2); this.GiveCard(gamesters[i], j, shoes); condition[i, j] = PlayerMove.Pass; break; } case PlayerMove.Split: { for (int k = j + 1; k < 4; k++) { if (condition[i, k] == PlayerMove.Pass) { gamesters[i].SplitCards(j, k); condition[i, k] = PlayerMove.Call; this.GiveCard(gamesters[i], j, shoes); this.GiveCard(gamesters[i], k, shoes); break; } } break; } case PlayerMove.Surrender: { condition[i, j] = PlayerMove.Pass; gamesters[i].ChangeBank(gamesters[i].GetBet(j) / 2); this.CollectBets(gamesters[i], j); break; } } return(true); } else if (gamesters[i].GetSum(j) + 10 < 21 && gamesters[i][j].Exists(x => x.GetCardValue() == 1)) { gamesters[i].ConfirmBlackJack(j); } } } return(false); }