public void PlayerActionRequest(BlackjackGamePlayer player, string request) { var currentAction = Players.FirstOrDefault(a => a.HasAction); if (PlayerActionIsExpired) { player.Stand(); } else { switch (request.ToLower()) { case "hit": player.Hit(); break; case "doubledown": player.DoubleDown(); break; case "stand": player.Stand(); break; } } var nextAction = Players.FirstOrDefault(a => a.HasAction); if (nextAction == null) { SettlePlayers(); AwaitingPlayerActionSince = null; } else if (nextAction.Id != currentAction.Id) { AwaitingPlayerActionSince = DateTime.UtcNow; } }
public BlackjackGamePlayerViewModel(BlackjackGamePlayer player, int secondsAwaitingAction, BlackjackHandSettlement settlement = null) { if (player == null) { throw new ArgumentNullException("player"); } Id = player.Id; Name = player.Alias; Balance = player.Account.Balance.ToString(); IsLive = player.IsLive; HasAction = player.HasAction; Position = player.Position; SecondsAwaitingAction = secondsAwaitingAction; BlackjackHand hand; if (settlement != null) { hand = settlement.PlayerHand; Wager = settlement.WagerAmount.ToString(); RecentWagerOutcome = settlement.WagerOutcome.ToString(); } else { hand = player.Hand; Wager = player.Wager.ToString(); RecentWagerOutcome = ""; } Hand = new BlackjackHandViewModel(hand); }
private static void ShowHand(BlackjackGamePlayer player) { /* Console.WriteLine($"Score : {player.Hand.ScoreHighLow.Item1} - {player.Hand.ScoreHighLow.Item2}"); * foreach (var card in player.Hand.Cards) * { * Console.WriteLine($"card {card.Suit} {card.Rank}"); * }*/ }
private static void DoubleDown(int wager, BlackjackGamePlayer player) { if (player.Account.Balance >= wager) { player.DoubleDown(wager); } else { player.DoubleDown(player.Account.Balance); } }
public void PlayerWagerRequest(BlackjackGamePlayer player, double wager) { player.SetWager(wager); if (!IsRoundInProgress && Players.Count() == 1) { StartRound(); return; } if (!AwaitingNextRoundSince.HasValue) { AwaitingNextRoundSince = DateTime.UtcNow; } }