public void HighCardGameOnePlayerWinner() { var highCardGame = new CardGames.HighCardGame (new CardGameLibrary.DeckOfCards(CardGameLibrary.Constants.HIGHCARD)); highCardGame.Play(1); var winner = highCardGame.EvaluateWinners(); Assert.AreEqual(winner.Count, 1); Assert.AreEqual(winner[0], 1); }
public void HighCardGameTwoPlayersWinner() { var deckOfCards = new CardGameLibrary.DeckOfCards(CardGameLibrary.Constants.HIGHCARD); deckOfCards.Shuffle(CardGameLibrary.Constants.NCARDS); var highCardGame = new CardGames.HighCardGame(deckOfCards); var playerOfCard1 = new CardGameLibrary.PlayerOfCard(); playerOfCard1.PlayerNumber = 1; playerOfCard1.PlayerCards.Add(highCardGame.GetCard()); highCardGame.PlayerOfCardsInGame.Add(playerOfCard1); var playerOfCard2 = new CardGameLibrary.PlayerOfCard(); playerOfCard2.PlayerNumber = 2; playerOfCard2.PlayerCards.Add(highCardGame.GetCard()); highCardGame.PlayerOfCardsInGame.Add(playerOfCard2); var evaluatedWinners = highCardGame.EvaluateWinners(); Assert.IsTrue(evaluatedWinners.Count <= 2); for (int i = 0; i < highCardGame.PlayerOfCardsInGame.Count; i++) { var player = highCardGame.PlayerOfCardsInGame[i]; Assert.AreEqual(player.PlayerCards.Count, 1); if (i > 0) { var previousPlayer = highCardGame.PlayerOfCardsInGame[i - 1]; if (previousPlayer.PlayerCards[0].GetRank() > player.PlayerCards[0].GetRank()) { Assert.AreEqual(evaluatedWinners.Count, 1); Assert.AreEqual(evaluatedWinners[0], 1); } else if (previousPlayer.PlayerCards[0].GetRank() < player.PlayerCards[0].GetRank()) { Assert.AreEqual(evaluatedWinners.Count, 1); Assert.AreEqual(evaluatedWinners[0], 2); } else { Assert.AreEqual(evaluatedWinners.Count, 2); Assert.IsTrue(evaluatedWinners.Exists(e => e == 1)); Assert.IsTrue(evaluatedWinners.Exists(e => e == 2)); } } } }
public void HighCardGameMultiplePlayersWinner() { var deckOfCards = new CardGameLibrary.DeckOfCards(CardGameLibrary.Constants.HIGHCARD); deckOfCards.Shuffle(CardGameLibrary.Constants.NCARDS); var highCardGame = new CardGames.HighCardGame(deckOfCards); for (int i = 1; i <= CardGameLibrary.Constants.NCARDS / 2; i++) { var playerOfCard = new CardGameLibrary.PlayerOfCard(); playerOfCard.PlayerNumber = i; playerOfCard.PlayerCards.Add(highCardGame.GetCard()); highCardGame.PlayerOfCardsInGame.Add(playerOfCard); } var evaluatedWinners = highCardGame.EvaluateWinners(); Assert.IsTrue(evaluatedWinners.Count <= 4); var winners = new System.Collections.Generic.List <int>(); int winningRank = 0; for (int i = 0; i < highCardGame.PlayerOfCardsInGame.Count; i++) { var player = highCardGame.PlayerOfCardsInGame[i]; Assert.AreEqual(player.PlayerCards.Count, 1); if (i > 0) { var previousPlayer = highCardGame.PlayerOfCardsInGame[i - 1]; if (previousPlayer.PlayerCards[0].GetRank() > player.PlayerCards[0].GetRank() && winningRank < previousPlayer.PlayerCards[0].GetRank()) { winningRank = previousPlayer.PlayerCards[0].GetRank(); } else if (previousPlayer.PlayerCards[0].GetRank() < player.PlayerCards[0].GetRank() && winningRank < player.PlayerCards[0].GetRank()) { winningRank = player.PlayerCards[0].GetRank(); } else if (winningRank < player.PlayerCards[0].GetRank()) { winningRank = player.PlayerCards[0].GetRank(); } } } foreach (var player in highCardGame.PlayerOfCardsInGame) { if (player.PlayerCards[0].GetRank() == winningRank) { winners.Add(player.PlayerNumber); } } //CollectionAssert.AreEqual Assert.AreEqual(evaluatedWinners.Count, winners.Count); foreach (var winner in winners) { Assert.IsTrue(evaluatedWinners.Exists(e => e == winner)); } }