Ejemplo n.º 1
0
        public void TradeCards_ValidCards_TradedCards()
        {
            var playerAHand = new List <Card>
            {
                new Card(Suit.Spades, 1), new Card(Suit.Spades, 2), new Card(Suit.Spades, 3), new Card(Suit.Spades, 4)
            };
            var tradeCards = new List <Card>
            {
                new Card(Suit.Spades, 3), new Card(Suit.Spades, 4)
            };
            var playerBHand = new List <Card>
            {
                new Card(Suit.Hearts, 1), new Card(Suit.Hearts, 2), new Card(Suit.Hearts, 3), new Card(Suit.Hearts, 4)
            };

            DaifugoFunction.TradeCards(playerAHand, tradeCards, playerBHand);
            playerAHand.Sort(DaifugoFunction.SortRankOrderComparison);
            playerBHand.Sort(DaifugoFunction.SortRankOrderComparison);

            var expectedA = new List <Card>
            {
                new Card(Suit.Spades, 1), new Card(Suit.Spades, 2), new Card(Suit.Hearts, 1), new Card(Suit.Hearts, 2)
            };

            expectedA.Sort(DaifugoFunction.SortRankOrderComparison);
            Assert.True(expectedA.SequenceEqual(playerAHand));

            var expectedB = new List <Card>
            {
                new Card(Suit.Spades, 3), new Card(Suit.Spades, 4), new Card(Suit.Hearts, 3), new Card(Suit.Hearts, 4)
            };

            expectedB.Sort(DaifugoFunction.SortRankOrderComparison);
            Assert.True(expectedB.SequenceEqual(playerBHand));
        }
Ejemplo n.º 2
0
        public void ArePlayedCardsValid_PlayedCards_ReturnTrueIfCardsAreValid(List <Card> playedCards, List <Card> fieldCards, bool expected)
        {
            var playerHand = new List <Card>
            {
                new Card(Suit.Spades, 12),
                new Card(Suit.Spades, 13),
                new Card(Suit.Hearts, 13),
                new Card(Suit.Spades, 1),
                new Card(Suit.Spades, 2),
                new Card(Suit.Joker, Card.JokerNumber)
            };
            var actual = DaifugoFunction.ArePlayedCardsValid(playedCards, playerHand, fieldCards);

            Assert.Equal(expected, actual);
        }
Ejemplo n.º 3
0
        public void TradeCards_InvalidCards_ReturnFalse()
        {
            var playerAHand = new List <Card>
            {
                new Card(Suit.Spades, 1), new Card(Suit.Spades, 2), new Card(Suit.Spades, 3), new Card(Suit.Spades, 4)
            };
            var tradeCards = new List <Card>
            {
                new Card(Suit.Spades, 1), new Card(Suit.Clubs, 2)
            };
            var playerBHand = new List <Card>
            {
                new Card(Suit.Hearts, 1), new Card(Suit.Hearts, 2), new Card(Suit.Hearts, 3), new Card(Suit.Hearts, 4)
            };
            var result = DaifugoFunction.TradeCards(playerAHand, tradeCards, playerBHand);

            Assert.False(result);
        }
Ejemplo n.º 4
0
        public void AssignPlayersToSeats_PlayersAndSeats_SeatIdIsAssigned()
        {
            var players = new List <PrivateStatus>
            {
                new PrivateStatus()
                {
                    id = 0
                },
                new PrivateStatus()
                {
                    id = 1
                },
                new PrivateStatus()
                {
                    id = 2
                },
                new PrivateStatus()
                {
                    id = 3
                },
                new PrivateStatus()
                {
                    id = 4
                },
            };
            var seats = new List <Seat>
            {
                new Seat(),
                new Seat(),
                new Seat(),
                new Seat(),
                new Seat(),
            };

            DaifugoFunction.AssignPlayersToSeats(players, seats);
            foreach (var player in players)
            {
                var assigned = seats[player.seat].playerId;
                Assert.Equal(player.id, assigned);
            }
        }
Ejemplo n.º 5
0
        public void DealCardsToPlayers_5Players_ValidHands()
        {
            var deck    = new Deck();
            var players = new List <PrivateStatus>
            {
                new PrivateStatus()
                {
                    id = 0, seat = 0, roleRank = RoleRank.Heimin
                },
                new PrivateStatus()
                {
                    id = 1, seat = 1, roleRank = RoleRank.Heimin
                },
                new PrivateStatus()
                {
                    id = 2, seat = 2, roleRank = RoleRank.Heimin
                },
                new PrivateStatus()
                {
                    id = 3, seat = 3, roleRank = RoleRank.Heimin
                },
                new PrivateStatus()
                {
                    id = 4, seat = 4, roleRank = RoleRank.Heimin
                },
            };

            DaifugoFunction.DealCardsToPlayers(deck, players);
            var cards = new List <Card>();

            foreach (var player in players)
            {
                foreach (var card in player.hand)
                {
                    var exists = cards.Exists(c => c == card);
                    Assert.False(exists);
                    cards.Add(card);
                }
            }
        }
Ejemplo n.º 6
0
        public void DealCardsToPlayers_5Players_HandCountIs11or10()
        {
            var deck    = new Deck();
            var players = new List <PrivateStatus>
            {
                new PrivateStatus()
                {
                    id = 0, seat = 0, roleRank = RoleRank.Heimin
                },
                new PrivateStatus()
                {
                    id = 1, seat = 1, roleRank = RoleRank.Heimin
                },
                new PrivateStatus()
                {
                    id = 2, seat = 2, roleRank = RoleRank.Heimin
                },
                new PrivateStatus()
                {
                    id = 3, seat = 3, roleRank = RoleRank.Heimin
                },
                new PrivateStatus()
                {
                    id = 4, seat = 4, roleRank = RoleRank.Heimin
                },
            };

            DaifugoFunction.DealCardsToPlayers(deck, players);
            var handCount0 = players[0].hand.Count;
            var handCount1 = players[1].hand.Count;
            var handCount2 = players[2].hand.Count;
            var handCount3 = players[3].hand.Count;
            var handCount4 = players[4].hand.Count;
            var result     = handCount0 == 11 && handCount1 == 11 && handCount2 == 11 && handCount3 == 10 && handCount4 == 10;

            Assert.True(result);
        }
Ejemplo n.º 7
0
        public void NumberToRank_Number_Rank(int number, int rank)
        {
            var actual = DaifugoFunction.NumberToRank(number);

            Assert.Equal(rank, actual);
        }