static void PlayDealer(Table table) { if (table.dealer.GetScore() < 17) { table.Play(new TableCommand() { action = TableCommand.Action.Hit, player = table.dealer }); } else { table.Play(new TableCommand() { action = TableCommand.Action.Stand, player = table.dealer }); } }
static void FristRound(Table table, Player[] players) { foreach (Player player in players) { table.Play(new TableCommand() { action = TableCommand.Action.Hit, player = player }); } PlayDealer(table); }
static void ResolveGame(Table table) { Console.WriteLine("No Hits taken. Resolving the Game."); while (!table.GameOver()) { table.Play(new TableCommand() { action = TableCommand.Action.Hit, player = table.dealer }); } }
static void PlayRound(Table table, Player[] players) { List <TableCommand> commands = new List <TableCommand>(); foreach (Player player in players) { if (player.GetScore() < 21) { Console.Out.WriteLine($"Player {player.Name}: Hit (H) or Stand (S)?"); String input = Console.ReadLine(); if (input == "H" || input == "h") { commands.Add(new TableCommand() { action = TableCommand.Action.Hit, player = player }); } else { commands.Add(new TableCommand() { action = TableCommand.Action.Stand, player = player }); } } else { commands.Add(new TableCommand() { action = TableCommand.Action.Bust, player = player }); } } foreach (TableCommand command in commands) { table.Play(command); } if (commands.Count(x => x.action == TableCommand.Action.Hit) >= 1) { PlayDealer(table); } else//American Rule; Te Dealer Draws until 21 or bust, if no hits were performed { ResolveGame(table); } }
private static void AddPlayers(Player[] players, Table table) { List <TableCommand> commands = new List <TableCommand>(); foreach (Player player in players) { commands.Add(new TableCommand() { action = TableCommand.Action.AddPlayer, player = player }); } foreach (TableCommand command in commands) { table.Play(command); } }
static void Main(string[] args) { Console.OutputEncoding = Encoding.UTF8; Table table = new Table(); int NumberofPlayers = GetPlayerCount(); Player[] players = InitPlayers(NumberofPlayers); AddPlayers(players, table); table.Play(new TableCommand() { action = TableCommand.Action.ShuffleDeck }); Console.Out.WriteLine(table.ToString()); FristRound(table, players); Console.Out.WriteLine(table.ToString()); while (!table.GameOver()) { PlayRound(table, players); Console.Out.WriteLine(table.ToString()); } Console.WriteLine("The Game is over."); }