Esempio n. 1
0
        public IEnumerable <Player> Get()
        {
            // instantiate singleton
            if (_deck == null)
            {
                _deck = new Deck();
            }

            // if there's less than 10, we need to reset the deck
            if (_deck.Cards.Count < 10)
            {
                _deck.Cards = DeckService.CreateCardDeck();
            }

            // shuffle between every call to controller == every play
            DeckService.ShuffleDeck(_deck);

            var player1 = new Player
            {
                PlayerName = "Player 1"
            };

            var player2 = new Player
            {
                PlayerName = "Player 2"
            };

            // assign player hands
            for (int i = 0; i < 5; i++)
            {
                DeckService.DrawCard(player1, _deck);
                DeckService.DrawCard(player2, _deck);
            }

            // return players as a list with their cards
            return(new List <Player> {
                player1, player2
            });
        }
Esempio n. 2
0
        public void TestStraight()
        {
            var stopwatch = new Stopwatch();

            stopwatch.Start();
            var deck = new Deck();

            DeckService.ShuffleDeck(deck);
            var player1 = new Player
            {
                PlayerName = "Test1"
            };
            var player2 = new Player
            {
                PlayerName = "Test2"
            };
            var player3 = new Player
            {
                PlayerName = "Test3"
            };
            var player4 = new Player
            {
                PlayerName = "Test4"
            };
            var straightFound   = false;
            var straightCounter = 1;
            var handString      = "";

            while (!straightFound)
            {
                deck.Cards = DeckService.CreateCardDeck();
                DeckService.ShuffleDeck(deck);

                player1.PlayerHand.Cards.Clear();
                player2.PlayerHand.Cards.Clear();
                player3.PlayerHand.Cards.Clear();
                player4.PlayerHand.Cards.Clear();
                for (var i = 0; i < 5; i++)
                {
                    DeckService.DrawCard(player1, deck);
                    DeckService.DrawCard(player2, deck);
                    DeckService.DrawCard(player3, deck);
                    DeckService.DrawCard(player4, deck);
                }

                CheckResult(player1, ref straightFound, ref handString);
                if (!straightFound)
                {
                    CheckResult(player2, ref straightFound, ref handString);
                }
                if (!straightFound)
                {
                    CheckResult(player3, ref straightFound, ref handString);
                }
                if (!straightFound)
                {
                    CheckResult(player4, ref straightFound, ref handString);
                }

                straightCounter++;
                if (stopwatch.ElapsedMilliseconds > 60000) // 1 minute
                {
                    Assert.Fail($"Failed to generate a straight within {straightCounter} iterations");
                }
            }

            // we got to a successful iteration, so pass
            Assert.IsTrue(true, handString);
        }