Beispiel #1
0
        public void CardComparisonGreaterThan()
        {
            CardWarGame a = new CardWarGame(CardValueEnum.Five, CardColorEnum.Clover);
            CardWarGame b = new CardWarGame(CardValueEnum.Six, CardColorEnum.Spade);

            Assert.IsFalse(a > b);
        }
Beispiel #2
0
        public void CardComparisonSmallerThan2()
        {
            CardWarGame a = new CardWarGame(CardValueEnum.Seven, CardColorEnum.Clover);
            CardWarGame b = new CardWarGame(CardValueEnum.Seven, CardColorEnum.Spade);

            Assert.IsFalse(a < b);
        }
Beispiel #3
0
        public void CardComparisonSmallerThan()
        {
            CardWarGame a = new CardWarGame(CardValueEnum.Five, CardColorEnum.Clover);
            CardWarGame b = new CardWarGame(CardValueEnum.Six, CardColorEnum.Spade);

            Assert.IsTrue(a < b);
        }
Beispiel #4
0
 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);
     }
 }
Beispiel #5
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);
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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();
        }