private static void PlayHighCard(LibraryInterfaces.IDeckOfCards deckOfCards) { var highCardGame = new HighCardGame(deckOfCards); //Ask for user input for number of players Console.WriteLine("Enter number of players not greater than 52:"); int numPlayers = 0; if (!int.TryParse(Console.ReadLine(), out numPlayers) || numPlayers > CardGameLibrary.Constants.NCARDS) { Console.WriteLine("Number of players needs to be an integer lesser than 52."); return; } highCardGame.Play(numPlayers); foreach (var player in highCardGame.PlayerOfCardsInGame) { ConsoleWriteLinePlayerScore(player.PlayerNumber, false, player.PlayerScore, player.PlayerCards); } var winners = highCardGame.EvaluateWinners(); System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append("Winners are "); foreach (var winner in winners) { sb.Append(winner + " "); } Console.WriteLine(sb); }
//Assumption: BlackJack is usually played in casinos between the dealer and //5-7 users, hence, allowing max 7 players. Also, assuming one hand per player private static void PlayBlackJack(CardGameLibrary.Interfaces.IDeckOfCards deckOfCards) { var blackJackGame = new BlackJackGame(deckOfCards); //Ask for user input for number of players Console.WriteLine("Enter number of players not greater than 7:"); int numPlayers = 0; if (!int.TryParse(Console.ReadLine(), out numPlayers) || numPlayers > 7) { Console.WriteLine("Number of players needs to be an integer lesser than 7."); return; } blackJackGame.Play(numPlayers); foreach (var player in blackJackGame.PlayerOfCardsInGame) { if (!player.IsDealer) { while (player.PlayerScore < 21 || (player.HasSoftScore && (player.PlayerScore - 10) < 21)) { ConsoleWriteLinePlayerScore(player.PlayerNumber, player.HasSoftScore, player.PlayerScore, player.PlayerCards, true); var toHitOrNotToHit = Console.ReadLine(); if (toHitOrNotToHit.Trim().ToUpper() == "Y") { blackJackGame.DealForPlayer(player.PlayerNumber); } else { break; } } ConsoleWriteLinePlayerScore(player.PlayerNumber, player.HasSoftScore, player.PlayerScore, player.PlayerCards); } else { while (player.PlayerScore < 17) { ConsoleWriteLineDealerScore(player.HasSoftScore, player.PlayerScore, player.PlayerCards); blackJackGame.DealForPlayer(player.PlayerNumber); } ConsoleWriteLineDealerScore(player.HasSoftScore, player.PlayerScore, player.PlayerCards); } } var winners = blackJackGame.EvaluateWinners(); var sb = new System.Text.StringBuilder(); sb.Append("Result of the game is as follows: \n"); foreach (var winner in winners) { if (winner.whoWon == CardGameLibrary.DealerOrPlayerOrNone.Dealer) { sb.Append("Dealer won against " + winner.playerNumber + ".\n"); } else if (winner.whoWon == CardGameLibrary.DealerOrPlayerOrNone.Player) { sb.Append("Player#" + winner.playerNumber + " won against dealer.\n"); } else { sb.Append("Player#" + winner.playerNumber + " and dealer reached a push; no one won.\n"); } } Console.WriteLine(sb); }
//Assumption: One set of 52 cards is being used in the deck of cards and not multiple public BlackJackGame(LibraryInterfaces.IDeckOfCards deckOfCards) { PlayerOfCardsInGame = new Generic.List <CardGameLibrary.PlayerOfCard>(); _deckOfCards = deckOfCards; }