Пример #1
0
        public void CanRemoveCardFromDeck()
        {
            Card[]      cards   = new Card[1];
            Deck <Card> newDeck = new Deck <Card>();

            Card testCard = new Card((Rank)1, (Suit)1);

            newDeck.Add(testCard);

            newDeck.RemoveCard(0);

            Assert.Empty(newDeck);
        }
Пример #2
0
        public void ReturnOfSuitReturnsZeroIfNoneFound()
        {
            //Arrange
            Deck <Card> myDeck = new Deck <Card>();
            Card        myCard = new Card {
                Suit = Suit.Spades, Value = Value.Ace
            };

            myDeck.Add(myCard);

            //Assert
            Assert.Equal(0, myDeck.ReturnOfSuit((Suit)2).count);
        }
Пример #3
0
        public void CanAddCards()
        {
            Card testCard = new Card()
            {
                CardSuits = Suits.Hearts, CardFace = CardValue.Ace
            };
            Deck <Card> testdeck = new Deck <Card>();

            testdeck.Add(testCard);


            Assert.Equal(1, testdeck.count);
        }
        public void AddCardTest()
        {
            int         count       = 0;
            Deck <Card> DeckOfCards = new Deck <Card>();
            Card        KingClubs   = new Card(Suit.Clubs, Face.King);

            DeckOfCards.Add(KingClubs);
            foreach (Card item in DeckOfCards)
            {
                count++;
            }
            Assert.Equal(1, count);
        }
    void PlayTopCard()
    {
        AbilityCard targetCard = _playerHand.TopItem;

        targetCard.Play();
        //TODO consider expanding Remove to accept a deck position
        Destroy(_displayedHand[_playerHand.LastIndex]);
        _displayedHand.RemoveAt(_playerHand.LastIndex);
        _playerHand.Remove(_playerHand.LastIndex);

        _abilityDiscard.Add(targetCard);
        Debug.Log("Card added to discard: " + targetCard.Name);
    }
Пример #6
0
 private void RefillDeck()
 {
     if (DealtDeck.CardsCount() == 0)
     {
         Card topCard = DiscardedDeck.Deal();
         while (DiscardedDeck.CardsCount() > 0)
         {
             DealtDeck.Add(DiscardedDeck.Deal());
         }
         DealtDeck.Shuffle();
         DiscardedDeck.Add(topCard);
     }
 }
Пример #7
0
        public void CardTwoWorks()
        {
            //Arrange
            Card cardOne = new Card();

            cardOne.CardSuit  = CardSuites.Hearts;
            cardOne.CardValue = CardValues.Ace;

            Card cardTwo = new Card();

            cardTwo.CardSuit  = CardSuites.Diamonds;
            cardTwo.CardValue = CardValues.Five;

            //act
            Deck <Card> deck = new Deck <Card>();

            deck.Add(cardOne);
            deck.Add(cardTwo);
            //assert

            Assert.Contains(cardTwo, deck.cardsInDeck);
        }
    private void Draw()
    {
        AbilityCard newCard = _abilityDeck.Draw(DeckPosition.Top);

        //Instantiate(newCard, new Vector3(i * 2.0F, 0, 0), Quaternion.identity);
        Debug.Log("Drew card: " + newCard.Name);
        _playerHand.Add(newCard, DeckPosition.Top);

        //newCard._cardPosition = new Vector3();

        //_abilityCardView.Display(newCard);
        PrintPlayerHand();
    }
Пример #9
0
        public void GetSetWorks()
        {
            //Arrange
            Card cardOne = new Card();

            cardOne.CardSuit  = CardSuites.Hearts;
            cardOne.CardValue = CardValues.Ace;

            Card cardTwo = new Card();

            cardTwo.CardSuit  = CardSuites.Diamonds;
            cardTwo.CardValue = CardValues.Five;
            var heart = cardOne.CardSuit;
            //act
            Deck <Card> deck = new Deck <Card>();

            deck.Add(cardOne);
            deck.Add(cardTwo);
            //assert

            Assert.Equal(heart, cardOne.CardSuit);
        }
Пример #10
0
        public void CanNotRemoveCardThatDoesNotExistFromDeck()
        {
            Card[]      cards   = new Card[1];
            Deck <Card> newDeck = new Deck <Card>();

            Card testCard = new Card((Rank)1, (Suit)1);

            newDeck.Add(testCard);

            newDeck.RemoveCard(16);

            Assert.NotEmpty(newDeck);
        }
Пример #11
0
 void OnMainDeckClicked(Deck deck)
 {
     if (deck.Count <= 0)
     {
         while (_discardDeck.Count > 0)
         {
             var card = _discardDeck.RemoveTopCard();
             card.showing = false;
             deck.Add(card);
         }
     }
     LogSelected();
 }
Пример #12
0
    public void AddCard(CardBase gCard)
    {
        currentDeck.Add(gCard, 1);

        CardBase cBase = gCard;

        if (!cardButtons.ContainsKey(cBase))
        {
            GameObject button = Instantiate(cardInDeck);
            button.transform.SetParent(editDeckPage.transform, false);
            Vector3 down = new Vector3(0, currentDeck.Count() * -25, 0);
            button.transform.Translate(down);
            button.GetComponent <CardInDeck> ().SetCard(cBase, currentDeck.deck[cBase]);
            cardButtons.Add(cBase, button);
        }
        else
        {
            cardButtons [cBase].GetComponent <CardInDeck> ().SetAmout(currentDeck.deck[cBase]);
        }

        cardCount.GetComponent <Text> ().text = currentDeck.Total() + "/" + cardLimit;
    }
Пример #13
0
        public void AddSuccessfullyAddsCard()
        {
            //Arrange
            Deck <Card> myDeck = new Deck <Card>();
            Card        myCard = new Card {
                Suit = Suit.Spades, Value = Value.Ace
            };

            myDeck.Add(myCard);

            //Assert
            Assert.Equal(1, myDeck.count);
        }
Пример #14
0
 public void ReturnBattlefields(List <Card> BattleCards, List <Card> OpponentBattleCards)
 {
     foreach (Card c in BattleCards)
     {
         c.FaceUP = false;
         Deck.Add(c);
     }
     foreach (Card c in OpponentBattleCards)
     {
         c.FaceUP = false;
         OpponentDeck.Add(c);
     }
 }
Пример #15
0
        public void ReplenishCards()
        {
            //Each player takes turns replenishing cards
            foreach (IPlayer player in Players)
            {
                // While the player still reuqires cards and the outOfCards flag is not set
                while (player.Cards.Count < MINIMUM_CARD_COUNT && !outOfCards)
                {
                    // Deck contains cards
                    if (deck.Count > 0)
                    {
                        // Remove the image from the deck CardBox when the last card is taken
                        if (deck.Count == 1)
                        {
                            gui.Controls.Remove(gui.pbDeck);
                        }
                        player.Cards.Add(deck.DrawTopCard());

                        // Deal card to appropriate plater
                        if (player.GetType() == typeof(Player))
                        {
                            gui.DealCardToPanel(gui.pnlPlayerBottom, player.Cards.Last());
                            gui.gameStats.cardsDrawn++;
                        }

                        if (player.GetType() == typeof(ComputerPlayer))
                        {
                            gui.DealCardToPanel(gui.pnlPlayerTop, player.Cards.Last());
                        }

                        // Update deck count label
                        gui.lblDeckCount.Text = deck.Count.ToString();
                        gui.Wait(150);
                    }
                    else // Deck does not contain cards
                    {
                        // If, trump card has not yet been moved to the deck, move it
                        if (!trumpMovedtoDeck)
                        {
                            deck.Add(TrumpCard);
                            gui.Controls.Remove(gui.pbTrump);
                            trumpMovedtoDeck = true;
                        }
                        else
                        {
                            outOfCards = true; // Set outOfCards bool to true
                        }
                    }
                }
            }
        }
Пример #16
0
        /// <summary>
        /// Logic for AI on <see cref="EnvInfos.S_SET_TOUR"/> event.
        /// </summary>
        /// <param name="name">The name of the player who must play</param>
        private void AIPlayCard(string name)
        {
            if (name != this.CurrentPlayerName || this.TrumpPhase_lock)
            {
                return;
            }

            Console.WriteLine("_> AI playing a card for " + name);

            Deck uDeck = this.UsersDeck[name];
            Dictionary <string, Card> board = this.LastRound;
            string color = (board.Count() == 0) ? null : board[this.CurrentRoundOrder.ElementAt(0)].Color;

            Deck colorDeck = new Deck();
            Deck trumpDeck = new Deck();
            Deck restDeck  = new Deck();
            Card maxItem   = uDeck.Array.ElementAt(0);

            foreach (var item in uDeck.Array)
            {
                if (item.Color == color)
                {
                    if (this.GetCardValue(item) > this.GetCardValue(maxItem) || maxItem.Color != color)
                    {
                        maxItem = item;
                    }
                    colorDeck.Add(item);
                }
                else if (item.Color == this.TrumpInfos.RealColor)
                {
                    if (this.IsColorInDeck(uDeck, color) == 0 && (this.GetCardValue(item) > this.GetCardValue(maxItem) || maxItem.Color != this.TrumpInfos.RealColor))
                    {
                        maxItem = item;
                    }
                    trumpDeck.Add(item);
                }
                else
                {
                    if (this.IsColorInDeck(uDeck, color) == 0 && this.IsColorInDeck(uDeck, this.TrumpInfos.RealColor) == 0 && this.GetCardValue(item) > this.GetCardValue(maxItem))
                    {
                        maxItem = item;
                    }
                    restDeck.Add(item);
                }
            }

            Thread.Sleep(this.AILatency);

            Console.WriteLine("_> " + maxItem.Value + ":" + maxItem.Color + " will be play for " + name);
            Referee.Instance.EntryPoint(JsonConvert.SerializeObject(new Packet(name, PacketType.GAME, new Gamecall(GameAction.C_PLAY_CARD, maxItem))));
        }
Пример #17
0
        public void TableauAddToDrawFrom()
        {
            // Arrange
            var options = new DeckOptions {
                Tableau = new TableauOptions
                {
                    Enabled      = true,
                    InitialSize  = 3,
                    MaintainSize = true,
                },
                Hands = new HandOptions {
                    InitialHandSize = 2
                }
            };
            var deck = new Deck <string>(options);

            deck.Add("This")
            .Add("is")
            .Add("a", Location.Tableau)
            .Add("deck")
            .Add("with")
            .Add("the")
            .Add("tableau");
            // Act & Assert
            Assert.AreEqual(1, deck.Tableau.Count);
            Assert.AreEqual(6, deck.DrawPile.Count);

            deck.Tableau.DrawUp();
            Assert.AreEqual(3, deck.Tableau.Count);
            Assert.AreEqual(4, deck.DrawPile.Count);
            var wasLast = deck.Tableau.Last();

            deck.Tableau.Play(deck.Tableau.ElementAt(1));
            Assert.AreEqual(3, deck.Tableau.Count);
            Assert.AreEqual(3, deck.DrawPile.Count);
            Assert.AreEqual(wasLast, deck.Tableau.ElementAt(1));

            var hand = deck.Deal(1, 1).First();

            Assert.AreEqual(3, deck.Tableau.Count);
            Assert.AreEqual(2, deck.DrawPile.Count);
            Assert.AreEqual(1, deck.Hands.Count);
            Assert.AreEqual(1, hand.Count);

            deck.Tableau.DrawInto(deck.Tableau.ElementAt(1), hand);
            Assert.AreEqual(3, deck.Tableau.Count);
            Assert.AreEqual(1, deck.DrawPile.Count);
            Assert.AreEqual(1, deck.Hands.Count);
            Assert.AreEqual(2, hand.Count);
        }
        public void RemoveCardNotExistTest()
        {
            int         count       = 0;
            Deck <Card> DeckOfCards = new Deck <Card>();
            Card        KingClubs   = new Card(Suit.Clubs, Face.King);

            DeckOfCards.Add(KingClubs);
            DeckOfCards.Remove(new Card(Suit.Diamonds, Face.Queen));
            foreach (Card item in DeckOfCards)
            {
                count++;
            }
            Assert.Equal(1, count);
        }
Пример #19
0
        public void CanRemoveCardThatExistsFromDeck()
        {
            //Arrange
            Deck <Cards> deck   = new Deck <Cards>();
            Cards        myCard = new Cards(1, 1);

            deck.Add(myCard);

            //Act
            deck.Remove();

            //Assert
            Assert.Empty(deck);
        }
Пример #20
0
        public void CanRemoveCardFromDeck()
        {
            //Arrange
            Card card1 = new Card()
            {
                Suit = Suit.Clubs, Value = Value.Ace
            };
            Card card2 = new Card()
            {
                Suit = Suit.Hearts, Value = Value.King
            };
            Card card3 = new Card()
            {
                Suit = Suit.Spades, Value = Value.Five
            };
            Card card4 = new Card()
            {
                Suit = Suit.Diamonds, Value = Value.Seven
            };
            Card card5 = new Card()
            {
                Suit = Suit.Diamonds, Value = Value.Queen
            };

            Deck <Card> deck = new Deck <Card>();

            deck.Add(card1);
            deck.Add(card2);
            deck.Add(card3);
            deck.Add(card4);
            deck.Add(card5);

            deck.Remove(card1);

            //Assert
            Assert.Equal(card2, deck.cards[0]);
        }
Пример #21
0
    Deck <SpotData> GenerateSpots()
    {
        // deck of spots
        Deck <SpotData> spots = new Deck <SpotData>();

        // start at corner
        float x = transform.position.x - width / 2f;
        float z = transform.position.z - length / 2f;

        // start with a half-step offset to center coordinates
        float dx = width / 6f;
        float dz = length / 6f;

        SpotData   curData = new SpotData();
        Vector3    curVec  = Vector3.zero;
        Quaternion curRot  = Quaternion.identity;

        // iterate through a grid
        for (int i = 0; i < 3; ++i)
        {
            for (int j = 0; j < 3; ++j)
            {
                // current spot is corner + offsets
                curVec.x = x + dx;
                curVec.z = z + dz;

                curVec.y = 0f;

                // skip the center
                if (!(i == 1 && j == 1))
                {
                    curData.pos = curVec;
                    SpotRotations(ref curData, i, j);
                    spots.Add(curData);
                }

                // increase x offset
                dx += width / 3f;
            }
            // reset x offset, increase z offset
            dx  = width / 6f;
            dz += length / 3f;
        }
        // shuffle
        spots.Shuffle();

        // yay
        return(spots);
    }
Пример #22
0
        public void TestAddToDeck()
        {
            Cards card1 = new Cards
            {
                Value  = (Value)1,
                Suites = (Suites)100
            };

            Cards card2 = new Cards
            {
                Value  = (Value)3,
                Suites = (Suites)100
            };

            Cards card3 = new Cards
            {
                Value  = (Value)10,
                Suites = (Suites)100
            };

            Cards card4 = new Cards
            {
                Value  = (Value)1,
                Suites = (Suites)101
            };

            Cards card5 = new Cards
            {
                Value  = (Value)3,
                Suites = (Suites)101
            };

            Cards card6 = new Cards
            {
                Value  = (Value)10,
                Suites = (Suites)101
            };

            Deck <Cards> TestDeck = new Deck <Cards>();

            TestDeck.Add(card1);
            string testString = "";

            foreach (var item in TestDeck)
            {
                testString = $"{item.Suites} : {item.Value}";
            }
            Assert.Equal("Hearts : One", testString);
        }
Пример #23
0
        public void RemoveRemovesACard()
        {
            //Arrange
            Deck <Card> myDeck = new Deck <Card>();
            Card        myCard = new Card {
                Suit = Suit.Spades, Value = Value.Ace
            };

            myDeck.Add(myCard);

            myDeck.Remove(0);

            //Assert
            Assert.Equal(0, myDeck.count);
        }
Пример #24
0
        public void AddCardsToDeck(IEnumerable <Character> characters)
        {
            if (Deck.Count == 8)
            {
                return;
            }

            foreach (var @char in characters)
            {
                if (!Deck.ContainsKey(@char.LogicGameObjectData.Name.Value))
                {
                    Deck.Add(@char.LogicGameObjectData.Name.Value, @char);
                }
            }
        }
    public static Deck CreateDeck()
    {
        Deck newDeck = new Deck();

        for (int s = 0; s < 4; s++)
        {
            for (int i = 0; i < 13; i++)
            {
                newDeck.Add(new Card {
                    Value = i, Suit = (Suit)s
                });
            }
        }
        return(newDeck);
    }
Пример #26
0
        public Deck GetSelectedCards()
        {
            Deck deck = new Deck();

            foreach (CardLabel cardLabel in this.Controls)
            {
                if (!cardLabel.Selected)
                {
                    continue;
                }
                deck.Add(cardLabel.Card);
            }

            return(deck);
        }
Пример #27
0
        public void ShuffleFailsWithoutOnceAllowed()
        {
            // Arrange
            var options = new DeckOptions()
            {
                DrawPile = new DrawPileOptions {
                    MaximumShuffleCount = 0
                }
            };
            var deck = new Deck <string>(options);

            // Act
            deck.Add("This");
            deck.DrawPile.Shuffle();
        }
Пример #28
0
        public void ShuffleWithRetreival()
        {
            // Arrange
            var options = new DeckOptions()
            {
                Table = new TableOptions {
                    Enabled = true
                }
            };
            var deck = new Deck <string>(options);

            // Act
            deck.Add("This");
            deck.Add("is", Location.DiscardPile);
            deck.Add("a", Location.Table);
            deck.Add("sample");
            deck.Add("deck.", Location.DiscardPile);
            deck.DrawPile.Shuffle();
            // Assert
            Assert.AreEqual(4, deck.DrawPile.Count);
            Assert.AreEqual(1, deck.Table.Count);
            Assert.AreEqual(0, deck.DiscardPile.Count);
            Assert.AreEqual(5, deck.Count);
        }
 private void buttonAddToDeck_Click(object sender, EventArgs e)
 {
     if (listBoxCollection.SelectedItems.Count > 0)
     {
         listBoxDeck.Items.Add((string)listBoxCollection.SelectedItem);
         ICard selectedCard = CardCollection
                              .Where(card => card.Name == (string)listBoxCollection.SelectedItem)
                              .FirstOrDefault();
         Deck.Add(selectedCard);
     }
     else
     {
         MessageBox.Show("Please select a card to add to your deck.", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
Пример #30
0
 private void InitiateDeck()
 {
     // Add all class derived from the abstract class Card to the Deck.
     foreach (Type type in
              AppDomain.CurrentDomain.GetAssemblies()
              .SelectMany(assembly => assembly.GetTypes())
              .Where(type => type.IsSubclassOf(typeof(Card))))
     {
         var card = (Card)Activator.CreateInstance(type);
         if (card.Year == 1)
         {
             Deck.Add(card);
         }
     }
 }
Пример #31
0
 private void MoveCard(int pos, Deck deck1, Deck deck2)
 {
     Card cardToMove = deck1[pos];
     deck1.RemoveAt(pos);
     deck2.Add(cardToMove);
 }
Пример #32
0
        /// <summary>
        /// Discards a number of cards and picks up a new ones
        /// </summary>
        /// <param name="cardsToPickup">The number of cards to swap</param>
        /// <param name="deck">The deck to pick a card up from</param>
        /// <param name="discardPile">The deck to discard a card to</param>
        public void PickupCard(int cardsToPickup, ref Deck deck, ref Deck discardPile)
        {
            for (int i = 0; i < cardsToPickup; i++)
            {
                Console.WriteLine(Name + " is swapping out a card");
                Console.WriteLine("Hand started out as:");
                Console.WriteLine(Hand);

                Card cardToDiscard = Hand.Cards[Hand.Cards.Count - (i + 1)];
                Hand.Cards.Remove(cardToDiscard);
                discardPile.Add(cardToDiscard);

                DealHand(ref deck, ref discardPile);
                Console.WriteLine("Hand finished as:");
                Console.WriteLine(Hand);
            }
        }
Пример #33
0
        private void PrepareGameStartupParam()
        {
            var cardDb = GameApp.Service<CardDatabase>();

            Deck deck1 = new Deck();
            deck1.Add(cardDb.GetModel("hatate"));
            deck1.Add(cardDb.GetModel("hatate"));
            deck1.Add(cardDb.GetModel("hatate"));
            deck1.Add(cardDb.GetModel("koakuma"));
            deck1.Add(cardDb.GetModel("koakuma"));
            deck1.Add(cardDb.GetModel("koakuma"));
            deck1.Add(cardDb.GetModel("mokou"));
            deck1.Add(cardDb.GetModel("mokou"));
            deck1.Add(cardDb.GetModel("mokou"));
            deck1.Add(cardDb.GetModel("remilia"));
            deck1.Add(cardDb.GetModel("remilia"));
            deck1.Add(cardDb.GetModel("remilia"));
            deck1.Add(cardDb.GetModel("yuyuko"));
            deck1.Add(cardDb.GetModel("yuyuko"));
            deck1.Add(cardDb.GetModel("yuyuko"));
            deck1.Add(cardDb.GetModel("reimu"));
            deck1.Add(cardDb.GetModel("reimu"));
            deck1.Add(cardDb.GetModel("reimu"));
            deck1.Add(cardDb.GetModel("suika"));
            deck1.Add(cardDb.GetModel("suika"));
            deck1.Add(cardDb.GetModel("suika"));
            deck1.Add(cardDb.GetModel("youmu"));
            deck1.Add(cardDb.GetModel("youmu"));
            deck1.Add(cardDb.GetModel("youmu"));
            deck1.Add(cardDb.GetModel("kaguya"));
            deck1.Add(cardDb.GetModel("kaguya"));
            deck1.Add(cardDb.GetModel("kaguya"));
            deck1.Add(cardDb.GetModel("alice_2"));
            deck1.Add(cardDb.GetModel("alice_2"));
            deck1.Add(cardDb.GetModel("alice_2"));
            deck1.Assists.Add(cardDb.GetModel("eirin"));
            deck1.Assists.Add(cardDb.GetModel("patchouli"));

            Deck deck2 = new Deck();
            deck2.Add(cardDb.GetModel("lunar"));
            deck2.Add(cardDb.GetModel("lunar"));
            deck2.Add(cardDb.GetModel("lunar"));
            deck2.Add(cardDb.GetModel("komachi"));
            deck2.Add(cardDb.GetModel("komachi"));
            deck2.Add(cardDb.GetModel("komachi"));
            deck2.Add(cardDb.GetModel("sakuya"));
            deck2.Add(cardDb.GetModel("sakuya"));
            deck2.Add(cardDb.GetModel("sakuya"));
            deck2.Add(cardDb.GetModel("meirin"));
            deck2.Add(cardDb.GetModel("meirin"));
            deck2.Add(cardDb.GetModel("meirin"));
            deck2.Add(cardDb.GetModel("sanae"));
            deck2.Add(cardDb.GetModel("sanae"));
            deck2.Add(cardDb.GetModel("sanae"));
            deck2.Add(cardDb.GetModel("kanako"));
            deck2.Add(cardDb.GetModel("kanako"));
            deck2.Add(cardDb.GetModel("kanako"));
            deck2.Add(cardDb.GetModel("cirno"));
            deck2.Add(cardDb.GetModel("cirno"));
            deck2.Add(cardDb.GetModel("cirno"));
            deck2.Add(cardDb.GetModel("keine"));
            deck2.Add(cardDb.GetModel("keine"));
            deck2.Add(cardDb.GetModel("keine"));
            deck2.Add(cardDb.GetModel("nightbug"));
            deck2.Add(cardDb.GetModel("nightbug"));
            deck2.Add(cardDb.GetModel("nightbug"));
            //deck2.Add(cardDb.GetModel("marisa"));
            //deck2.Add(cardDb.GetModel("marisa"));
            //deck2.Add(cardDb.GetModel("marisa"));
            deck2.Add(cardDb.GetModel("alice_2"));
            deck2.Add(cardDb.GetModel("alice_2"));
            deck2.Add(cardDb.GetModel("alice_2"));
            deck2.Assists.Add(cardDb.GetModel("yakumo"));
            deck2.Assists.Add(cardDb.GetModel("tenshi"));

            param = new GameStartupParameters();
            param.PlayerDecks.Add(deck1);
            param.PlayerDecks.Add(deck2);
            param.PlayerIds.Add("真凉");
            param.PlayerIds.Add("爱衣");
        }