private void DealCards(List <IPlayer> players) { bool missingTrump = true; while (missingTrump) { IDeck Deck = new Piquet(); int timesAround = Deck.Cards.Count / players.Count; for (int i = 0; i < timesAround; ++i) { foreach (IPlayer player in players) { player.AddToHand(Deck.GetTopCard()); } } Blind.AddCard(Deck.GetTopCard()); Blind.AddCard(Deck.GetTopCard()); players.ForEach(player => { missingTrump &= !player.Hand.Cards.Aggregate(false, (agg, card) => agg || card.IsTrump()); }); // If nobody got trump, wipe the hands and blind and start again if (missingTrump) { players.ForEach(player => { player.Hand = new Hand.Hand(); }); Blind = new Blind.Blind(); } } }
public void GetTopCardTest() { Card card = new Card(CardID.Eight, CardPower.JackDiamond, Suit.Hearts); Card card2 = new Card(CardID.Jack, CardPower.JackClub, Suit.Clubs); deck.Cards.Insert(0, card); deck.Cards.Insert(1, card2); Assert.AreEqual(card, deck.GetTopCard()); Assert.AreNotEqual(card, deck.Cards[0]); Assert.AreEqual(card2, deck.GetTopCard()); }