示例#1
0
        public void PlayTrumpOrderTest()
        {
            var players      = PlayersSetup.BuildFourAIPlayers();
            var fourthPlayer = players[3];

            var cardsHeldByPlayer   = new Dictionary <IPlayer, List <Card> >();
            var cardsPlayedByPlayer = new Dictionary <IPlayer, List <Card> >();

            var heart = SuitHelper.GetSuit(CardSuit.Heart);

            cardsHeldByPlayer[players[0]] = new List <Card> {
                new Card(RankHelper.GetRank("7"), heart)
            };
            cardsHeldByPlayer[players[1]] = new List <Card> {
                new Card(RankHelper.GetRank("A"), heart)
            };
            cardsHeldByPlayer[players[2]] = new List <Card> {
                new Card(RankHelper.GetRank("8"), heart)
            };
            cardsHeldByPlayer[players[3]] = new List <Card> {
                new Card(RankHelper.GetRank("9"), heart)
            };

            var trick = new Trick(players, heart);

            trick.Play(cardsHeldByPlayer, cardsPlayedByPlayer);
            var winner = trick.GetTaker();

            Assert.AreEqual(fourthPlayer, winner);
        }
示例#2
0
        public void OrderPlayersTest()
        {
            var players = PlayersSetup.BuildFourAIPlayers();

            var first  = players[0];
            var second = players[1];
            var third  = players[2];
            var fourth = players[3];

            var afterFirst = RoundHelper.OrderPlayersForNewTrick(players, first);
            var newOrder   = string.Join("|", afterFirst.Select(t => t.PlayerNumber));

            Assert.AreEqual("0|1|2|3", newOrder);

            var afterSecond = RoundHelper.OrderPlayersForNewTrick(players, second);

            newOrder = string.Join("|", afterSecond.Select(t => t.PlayerNumber));
            Assert.AreEqual("1|2|3|0", newOrder);

            var afterThird = RoundHelper.OrderPlayersForNewTrick(players, third);

            newOrder = string.Join("|", afterThird.Select(t => t.PlayerNumber));
            Assert.AreEqual("2|3|0|1", newOrder);

            var afterFourth = RoundHelper.OrderPlayersForNewTrick(players, fourth);

            newOrder = string.Join("|", afterFourth.Select(t => t.PlayerNumber));
            Assert.AreEqual("3|0|1|2", newOrder);
        }
示例#3
0
        public void PlayMultipleColors()
        {
            var players     = PlayersSetup.BuildFourAIPlayers();
            var firstPlayer = players[0];

            var cardsHeldByPlayer   = new Dictionary <IPlayer, List <Card> >();
            var cardsPlayedByPlayer = new Dictionary <IPlayer, List <Card> >();

            var heart = SuitHelper.GetSuit(CardSuit.Heart);
            var spade = SuitHelper.GetSuit(CardSuit.Spade);
            var club  = SuitHelper.GetSuit(CardSuit.Club);

            cardsHeldByPlayer[players[0]] = new List <Card> {
                new Card(RankHelper.GetRank("7"), heart)
            };
            cardsHeldByPlayer[players[1]] = new List <Card> {
                new Card(RankHelper.GetRank("A"), club)
            };
            cardsHeldByPlayer[players[2]] = new List <Card> {
                new Card(RankHelper.GetRank("8"), club)
            };
            cardsHeldByPlayer[players[3]] = new List <Card> {
                new Card(RankHelper.GetRank("9"), club)
            };

            var trick = new Trick(players, spade);

            trick.Play(cardsHeldByPlayer, cardsPlayedByPlayer);
            var winner = trick.GetTaker();

            Assert.AreEqual(firstPlayer, winner);
        }
示例#4
0
        private Game InitGame()
        {
            var game    = new Game();
            var players = PlayersSetup.BuildFourAIPlayers();

            foreach (var player in players)
            {
                game.AddPlayer(player);
            }
            return(game);
        }
示例#5
0
        public void DealRandomTest()
        {
            var players = PlayersSetup.BuildFourAIPlayers();
            var round   = new Round(players, 1);

            round.ShuffleAndDeal();

            foreach (var player in players)
            {
                var playerCards = round.GetPlayerCards(player);
                Assert.AreEqual(8, playerCards.Count);
            }
        }
示例#6
0
        public void RoundPlayTest()
        {
            var players = PlayersSetup.BuildFourAIPlayers();
            var round   = new Round(players, 1);

            round.ShuffleAndDeal();
            round.Play();
            foreach (var player in players)
            {
                var playerCards = round.GetPlayerCards(player);
                Assert.AreEqual(0, playerCards.Count);
            }

            round.CountPlayersPoints();
            var firstTeamPoints  = round.GetFirstTeamPoints();
            var secondTeamPoints = round.GetSecondTeamPoints();

            Assert.AreEqual(162, firstTeamPoints + secondTeamPoints);
        }
示例#7
0
        public void PlayWithRankTest()
        {
            var players      = PlayersSetup.BuildFourAIPlayers();
            var secondPlayer = players[1];

            var cardsHeldByPlayer   = new Dictionary <IPlayer, List <Card> >();
            var cardsPlayedByPlayer = new Dictionary <IPlayer, List <Card> >();

            var heart = SuitHelper.GetSuit(CardSuit.Heart);
            var spade = SuitHelper.GetSuit(CardSuit.Spade);

            cardsHeldByPlayer[players[0]] = new List <Card> {
                new Card(RankHelper.GetRank("7"), heart)
            };
            cardsHeldByPlayer[players[1]] = new List <Card> {
                new Card(RankHelper.GetRank("A"), heart)
            };
            cardsHeldByPlayer[players[2]] = new List <Card> {
                new Card(RankHelper.GetRank("8"), heart)
            };
            cardsHeldByPlayer[players[3]] = new List <Card> {
                new Card(RankHelper.GetRank("9"), heart)
            };

            var trick = new Trick(players, spade);

            trick.Play(cardsHeldByPlayer, cardsPlayedByPlayer);
            var winner = trick.GetTaker();

            Assert.AreEqual(secondPlayer, winner);

            var playedCards = trick.GetPlayedCards();

            Assert.IsNotNull(playedCards);
            Assert.AreEqual(4, playedCards.Count);
        }