예제 #1
0
        public void TestValue()
        {
            var        player = new Player(0, "PlayerTest", null);
            const Suit trump  = Suit.DIAMONDS;

            Card[] cards =
            {
                new Card("10", Suit.DIAMONDS,    1, 0),
                new Card("A",  Suit.DIAMONDS,   10, 1),
                new Card("9",  Suit.DIAMONDS,  100, 2),
                new Card("J",  Suit.DIAMONDS, 1000, 3)
            };
            foreach (var card in cards)
            {
                player.GetDeck().AddCard(card);
            }
            var trick     = new Trick();
            var firstCard = new Card("8", Suit.SPADES, 0, 8);

            trick.AddCard(firstCard);
            trick.SetLeadingCard(firstCard);
            Assert.Equal(true, player.PutCard(trick, player.GetDeck().GetCardById(0).GetId(), trump));
            Assert.Equal(true, player.PutCard(trick, player.GetDeck().GetCardById(1).GetId(), trump));
            Assert.Equal(true, player.PutCard(trick, player.GetDeck().GetCardById(2).GetId(), trump));
            Assert.Equal(true, player.PutCard(trick, player.GetDeck().GetCardById(3).GetId(), trump));
            Assert.Equal(1111, trick.GetValue());
        }
예제 #2
0
        public void TestPutCardCuttingNonTrumpTrick()
        {
            var        player = new Player(0, "PlayerTest", null);
            const Suit trump  = Suit.DIAMONDS;

            Card[] cards =
            {
                new Card("J",  Suit.DIAMONDS, 0, 0),
                new Card("9",  Suit.DIAMONDS, 0, 1),
                new Card("Q",  Suit.CLUBS,    0, 2),
                new Card("J",  Suit.CLUBS,    0, 3),
                new Card("Q",  Suit.CLUBS,    0, 4),
                new Card("K",  Suit.HEARTS,   0, 5),
                new Card("7",  Suit.HEARTS,   0, 6),
                new Card("10", Suit.SPADES,   0, 7)
            };
            foreach (var card in cards)
            {
                player.GetDeck().AddCard(card);
            }

            var trick     = new Trick();
            var firstCard = new Card("8", Suit.SPADES, 0, 8);

            trick.AddCard(firstCard);
            trick.SetLeadingCard(firstCard);
            Assert.Equal(true, player.PutCard(trick, player.GetDeck().GetCardById(7).GetId(), trump));
            Assert.Equal(true, player.PutCard(trick, player.GetDeck().GetCardById(1).GetId(), trump));
            Assert.Equal(true, player.PutCard(trick, player.GetDeck().GetCardById(0).GetId(), trump));
        }
예제 #3
0
        public void TestPutCard(int id)
        {
            var player = new Player(null);
            var card   = new Card("7", Suit.DIAMONDS, 0, id);

            Assert.Equal(true, player.GetDeck().AddCard(card));
            Assert.Equal(card, player.GetDeck().GetCardById(id));
            player.PutCard(card);
            Assert.Equal(null, player.GetDeck().GetCardById(id));
        }
예제 #4
0
        public void TestEmptyDeck(int id1, int id2)
        {
            var player = new Player(0, "PlayerTest", null);

            Card[] cards =
            {
                new Card("7", Suit.DIAMONDS, 0, id1),
                new Card("8", Suit.DIAMONDS, 0, id2)
            };
            foreach (var card in cards)
            {
                Assert.Equal(true, player.GetDeck().AddCard(card));
            }
            Assert.Equal(cards[0], player.GetDeck().GetCardById(id1));
            Assert.Equal(cards[1], player.GetDeck().GetCardById(id2));
            player.EmptyDeck();
            Assert.Equal(null, player.GetDeck().GetCardById(id1));
            Assert.Equal(null, player.GetDeck().GetCardById(id2));
        }
예제 #5
0
        public void TestHasGreater()
        {
            var player = new Player(0, "PlayerTest", null);

            Card[] cards =
            {
                new Card("7", Suit.DIAMONDS, 0, 0),
                new Card("8", Suit.DIAMONDS, 0, 1)
            };
            foreach (var card in cards)
            {
                player.GetDeck().AddCard(card);
            }
            Assert.Equal(true, player.HasGreater(cards[0], false));
            Assert.Equal(false, player.HasGreater(cards[1], false));
        }
예제 #6
0
        public void TestCheckBeloteFalse()
        {
            var player = new Player(0, "PlayerTest", null);

            Card[] cards =
            {
                new Card("Q", Suit.DIAMONDS, 0, 0),
                new Card("J", Suit.DIAMONDS, 0, 1)
            };
            foreach (var card in cards)
            {
                player.GetDeck().AddCard(card);
            }
            player.CheckBelote(Suit.DIAMONDS);
            Assert.Equal(false, player.HasBelote());
            Assert.Equal(0, player.GetBeloteCards());
        }
예제 #7
0
        public void TestHasAllFour(string cardName, int score)
        {
            var player = new Player(0, "PlayerTest", null);

            Card[] cards =
            {
                new Card(cardName, Suit.DIAMONDS, 0, 0),
                new Card(cardName, Suit.CLUBS,    0, 0),
                new Card(cardName, Suit.HEARTS,   0, 0),
                new Card(cardName, Suit.SPADES,   0, 0)
            };
            foreach (var card in cards)
            {
                player.GetDeck().AddCard(card);
            }
            Assert.Equal(score, player.HasAllFour());
        }
예제 #8
0
        public void TestHasSuit()
        {
            var player = new Player(0, "PlayerTest", null);

            Card[] cards =
            {
                new Card("Q", Suit.DIAMONDS, 0, 0),
                new Card("Q", Suit.HEARTS,   0, 1)
            };
            foreach (var card in cards)
            {
                player.GetDeck().AddCard(card);
            }
            Assert.Equal(true, player.HasSuit(Suit.DIAMONDS));
            Assert.Equal(true, player.HasSuit(Suit.HEARTS));
            Assert.Equal(false, player.HasSuit(Suit.CLUBS));
            Assert.Equal(false, player.HasSuit(Suit.SPADES));
        }
예제 #9
0
        public void TestHasAllFourFalse()
        {
            var player = new Player(0, "PlayerTest", null);

            Card[] cards =
            {
                new Card("J",  Suit.DIAMONDS, 0, 0),
                new Card("Q",  Suit.CLUBS,    0, 0),
                new Card("J",  Suit.HEARTS,   0, 0),
                new Card("Q",  Suit.SPADES,   0, 0),
                new Card("9",  Suit.DIAMONDS, 0, 0),
                new Card("J",  Suit.CLUBS,    0, 0),
                new Card("10", Suit.HEARTS,   0, 0),
                new Card("7",  Suit.SPADES,   0, 0)
            };
            foreach (var card in cards)
            {
                player.GetDeck().AddCard(card);
            }
            Assert.Equal(0, player.HasAllFour());
        }
예제 #10
0
        public void TestHasAllFourJacksAndKings()
        {
            var player = new Player(0, "PlayerTest", null);

            Card[] cards =
            {
                new Card("J", Suit.DIAMONDS, 0, 0),
                new Card("J", Suit.CLUBS,    0, 0),
                new Card("J", Suit.HEARTS,   0, 0),
                new Card("J", Suit.SPADES,   0, 0),
                new Card("K", Suit.DIAMONDS, 0, 0),
                new Card("K", Suit.CLUBS,    0, 0),
                new Card("K", Suit.HEARTS,   0, 0),
                new Card("K", Suit.SPADES,   0, 0)
            };
            foreach (var card in cards)
            {
                player.GetDeck().AddCard(card);
            }
            Assert.Equal(200 + 100, player.HasAllFour());
        }