示例#1
0
        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);
        }
示例#2
0
    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);
    }
示例#3
0
    public void TestAddCards()
    {
        deck.AddRange(spades);

        Assert.AreEqual(13, deck.Cards.Count);
    }