public void CardComparisonGreaterThan() { CardWarGame a = new CardWarGame(CardValueEnum.Five, CardColorEnum.Clover); CardWarGame b = new CardWarGame(CardValueEnum.Six, CardColorEnum.Spade); Assert.IsFalse(a > b); }
public void CardComparisonSmallerThan2() { CardWarGame a = new CardWarGame(CardValueEnum.Seven, CardColorEnum.Clover); CardWarGame b = new CardWarGame(CardValueEnum.Seven, CardColorEnum.Spade); Assert.IsFalse(a < b); }
public void CardComparisonSmallerThan() { CardWarGame a = new CardWarGame(CardValueEnum.Five, CardColorEnum.Clover); CardWarGame b = new CardWarGame(CardValueEnum.Six, CardColorEnum.Spade); Assert.IsTrue(a < b); }
private static int CompareCard(CardWarGame a, CardWarGame b) // return 1 if >, 0 if == and -1 if < { if (a > b) { return(-1); } else if (a < b) { return(1); } else { return(0); } }
public static Dictionary <int, HandWarGame <CardWarGame> > DistributeHands(HashSet <int> playersId) { List <CardWarGame> allCards = CardWarGame.GetAllCardsCombination(); allCards.Shuffle(); Dictionary <int, HandWarGame <CardWarGame> > playersIdAndCorrespondingHand = new Dictionary <int, HandWarGame <CardWarGame> >(); foreach (int playerId in playersId) { playersIdAndCorrespondingHand.Add(playerId, new HandWarGame <CardWarGame>()); } for (int i = 0; i < allCards.Count; i++) { playersIdAndCorrespondingHand[i % playersId.Count].AddCard(allCards[i]); } return(playersIdAndCorrespondingHand); }
private List <PlayerWar> BurnCard(List <PlayerWar> winners, List <CardWarGame> pot) { List <PlayerWar> winnersWithDeckNotEmpty = new List <PlayerWar>(); foreach (PlayerWar player in winners) { if (!player.IsDeckEmpty()) { CardWarGame card = player.PopTopCardOfDeck(); pot.Add(card); winnersWithDeckNotEmpty.Add(player); gameHistory.AddAction("Player " + player.GetId() + " burned the card " + card); } else { gameHistory.AddAction(player.GetId() + "has no more card left, he can't burn a card"); } } return(winnersWithDeckNotEmpty); }
private List <PlayerWar> GetWinnersOfPop(List <PlayerWar> players, List <CardWarGame> pot) { CardWarGame betterCard = null; List <PlayerWar> winners = new List <PlayerWar>(); foreach (PlayerWar player in players) { if (!player.IsDeckEmpty()) { CardWarGame card = player.PopTopCardOfDeck(); pot.Add(card); this.gameHistory.AddAction("Player " + player.GetId() + " played card " + card); if (betterCard == null) { betterCard = card; winners.Add(player); } else { switch (CompareCard(betterCard, card)) { case -1: // your cart is worse than the betteCard so you're not part of the winners. break; case 0: winners.Add(player); break; case 1: betterCard = card; winners.Clear(); winners.Add(player); break; } } } } return(winners); }
public void SameCardInDifferentHandTest2() { Dictionary <int, HandWarGame <CardWarGame> > players = new Dictionary <int, HandWarGame <CardWarGame> >(); CardWarGame card = new CardWarGame(CardValueEnum.Five, CardColorEnum.Spade); HandWarGame <CardWarGame> Hand1 = new HandWarGame <CardWarGame>(); Hand1.AddCard(card); HandWarGame <CardWarGame> Hand2 = new HandWarGame <CardWarGame>(); Hand2.AddCard(card); players.Add(1, Hand1); players.Add(2, Hand2); GameWar dealerWarGame = new GameWar(players); dealerWarGame.Play(); }