public static Deal CreateDeal() { var newDeal = new Deal(); var deck = new Deck(); var list = deck.GetAllShuffledCards(); // Draw on three players` var player1Cards = new PlayerDeck(); var player2Cards = new PlayerDeck(); var player3Cards = new PlayerDeck(); for (var i = 0; i <= 4; i++) { player1Cards.AddRange(list.Skip(i * 6).Take(2)); player2Cards.AddRange(list.Skip(i * 6 + 2).Take(2)); player3Cards.AddRange(list.Skip(i * 6 + 4).Take(2)); } newDeal.InitialCards.Add(player1Cards); newDeal.InitialCards.Add(player2Cards); newDeal.InitialCards.Add(player3Cards); return(newDeal); }
public void NewGame() { //TODO detect if there is a current game already and ask if player wants to abandon current // Reset everything EndGame(); visualPlayerDeck.SpawnDeck(); visualOpponentDeck.SpawnDeck(); //TODO check if this is a rematch, if so, auto switch colors if (Random.value > 0.5f) { playerFirst = true; playerTurn = true; } else { playerFirst = false; playerTurn = false; } //Generate card lists List <PlayingCard> playerCards = new List <PlayingCard>(); List <PlayingCard> opponentCards = new List <PlayingCard>(); if (playerFirst) { CardUtils.populateCardLists(playerCards, opponentCards); } else { CardUtils.populateCardLists(opponentCards, playerCards); } // check if joker rule if (addJokers) { playerCards.Add(new PlayingCard(Rank.JOKER, Suit.NONE)); opponentCards.Add(new PlayingCard(Rank.JOKER, Suit.NONE)); } playerDeck.AddRange(playerCards); playerDeck.ShuffleAll(); opponentDeck.AddRange(opponentCards); opponentDeck.ShuffleAll(); // Draw initial hands as a fast coroutine for animation to occur StartCoroutine(initialHandDraw()); uiManager.showHelp(HelpDisplay.SETUP); }
public void TestAddCards() { deck.AddRange(spades); Assert.AreEqual(13, deck.Cards.Count); }