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 }); }
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); }