예제 #1
0
    public override void UndoPlayerMove(Card oldCardUp, Card cardDown, bool flipCardDown)
    {
        if (oldCardUp == null)
        {
            if (cards.Count == 0)
            {
                Card card = deck.GetCard();
                while (card != null)
                {
                    card.GetComponent <Animator>().Play("BackToFront");
                    card.SetDragDrop(true);
                    AddCard(card);
                    card = deck.GetCard();
                }
            }
            else
            {
                deck.AddCard(cards[cards.Count - 1].GetComponent <Card>());
            }
        }
        else
        {
            if (oldCardUp.cardDown != null)
            {
                oldCardUp.cardDown.cardUp = null;
            }

            oldCardUp.cardUp   = null;
            oldCardUp.cardDown = null;
            oldCardUp.stack.RemoveCard(oldCardUp);

            AddCard(oldCardUp);
        }
    }
예제 #2
0
 public void ClickOnCard(Card card)
 {
     if (card.state == CardState.InCollection)
     {
         if (Deck.Cards.Count < Deck.DeckSize)
         {
             if (AudioManager.instance != null)
             {
                 AudioManager.instance.CardClickPlay();
             }
             Deck.AddCard(card);
             GameObject temp = NGUITools.AddChild(UIDeck.gameObject, card.gameObject);
             temp.GetComponent <Card>().PutInDeck();
             temp.GetComponent <UIDragScrollView>().scrollView = DeckScrollView;
             UIDeck.Reposition();
             RemoveCardFromCollection(card);
         }
     }
     else
     {
         if (AudioManager.instance != null)
         {
             AudioManager.instance.CardClickPlay();
         }
         Deck.RemoveCard(card);
         AddCardCollection(card);
         Destroy(card.gameObject);
         UIDeck.Reposition();
     }
 }
예제 #3
0
        public void StartGameBehavior()
        {
            var deck1 = new Deck();

            deck1.AddCard(TestCards.SleepyPanda, count: 10);
            deck1.AddCard(TestCards.BigDragon, count: 2);

            var deck2 = new Deck();

            deck2.AddCard(TestCards.RabidDog, count: 10);
            deck2.AddCard(TestCards.BigDragon, count: 2);

            var eventQueue = new List <AEvent>
            {
                new PlayerActionPlayCardEvent(Player.Player1, deck1.Cards.First(), new Id <CardMount>(new CardMount(1))),
                new PlayerActionEndTurnEvent(),
                new PlayerDrawCardEvent(Player.Player2),
                new PlayerActionPlayCardEvent(Player.Player2, deck1.Cards.First(), new Id <CardMount>(new CardMount(1))),
                new PlayerActionEndTurnEvent(),
                new PlayerActionForfeitGame(Player.Player1),
            };

            var eventProvider = new TestEventProvider(eventQueue);

            var gameLoop = new GameLoop(eventProvider, deck1, deck2);

            // PlayGame() will trigger the beginning of game card draw events
            gameLoop.PlayGame();
        }
예제 #4
0
        public void AddCardTestMethod2()
        {
            var  card             = new TestCard(0, 0, "Test", new List <Effect>(), Protocol.RarityCode.Free);
            Deck deck             = new Deck(1, "Test", 30, new List <Card>());
            int  eventCallCounter = 0;

            deck.OnCardChanged += (eventDeck, targetCard, code) =>
            {
                Assert.AreEqual(code, Protocol.DataChangeCode.Add);
                eventCallCounter++;
            };
            Assert.AreEqual(deck.TotalCardCount, 0);
            Assert.IsTrue(deck.AddCard(card));
            Assert.AreEqual(eventCallCounter, 1);
            Assert.AreEqual(deck.TotalCardCount, 1);

            Assert.IsFalse(deck.AddCard(null));
            Assert.AreEqual(deck.TotalCardCount, 1);
            Assert.AreEqual(eventCallCounter, 1);

            Assert.IsTrue(deck.AddCard(card));
            Assert.AreEqual(deck.TotalCardCount, 2);
            Assert.AreEqual(eventCallCounter, 2);

            Assert.IsFalse(deck.AddCard(card));
            Assert.AreEqual(deck.TotalCardCount, 2);
            Assert.AreEqual(eventCallCounter, 2);
        }
예제 #5
0
        public void AddCard_CardCountIncreasesWhenSameCardIsAdded_Int()
        {
            Deck deck = new Deck("test deck");

            deck.Save();

            Card card = new Card("name", "1B", "black", "creature", "description", "test set", 1, 1, "picture.com", 1);

            card.Save();

            deck.AddCard(card);
            deck.AddCard(card);

            MySqlConnection conn = DB.Connection();

            conn.Open();
            MySqlCommand cmd = conn.CreateCommand() as MySqlCommand;

            cmd.CommandText = @"SELECT count FROM cards_in_deck WHERE deckId = @DeckId AND cardId = @CardId;";
            MySqlParameter deckId = new MySqlParameter("@DeckId", deck.Id);
            MySqlParameter cardId = new MySqlParameter("@CardId", card.Id);

            cmd.Parameters.Add(deckId);
            cmd.Parameters.Add(cardId);

            MySqlDataReader rdr    = cmd.ExecuteReader() as MySqlDataReader;
            int             result = 0;

            while (rdr.Read())
            {
                result = rdr.GetInt32(0);
            }
            Assert.AreEqual(2, result);
        }
예제 #6
0
    public void Draw(int numOfCards)
    {
        int i = numOfCards;

        while (i > 0)
        {
            if (drawPile.IsEmpty())
            {
                // Special case where the draw pile and discard pile are both empty and therefore remaining draws cannot occur.
                if (discardPile.IsEmpty())
                {
                    return;
                }
                // Draw pile is empty; copy all card references from discard pile to draw pile and shuffle the draw pile, then clear out the discard pile.
                drawPile.deck.AddRange(discardPile.deck);
                drawPile.Shuffle();
                discardPile.deck.Clear();
            }

            // Actually add the card from the draw pile to your hand if it's not at max size, else it goes straight to discard.
            AbstractCard drawnCard = drawPile.PopTopCard();
            drawnCard.OnDraw(this);     // Trigger on-draw modifier for the card, supplying the current character.
            if (hand.Count < 10)
            {
                hand.Add(drawnCard);
            }
            else
            {
                discardPile.AddCard(drawnCard);
            }
            i--;        // Repeat process <numOfCards> times.
        }
        return;
    }
예제 #7
0
        public void TestAddCards()
        {
            var deck = new Deck(2);

            Assert.Equal(true, deck.AddCard(new Card("7", Suit.DIAMONDS, 0, 0)));
            Assert.Equal(true, deck.AddCard(new Card("8", Suit.DIAMONDS, 0, 1)));
            Assert.Equal(false, deck.AddCard(new Card("9", Suit.DIAMONDS, 0, 1)));
        }
예제 #8
0
        public void AddCardToDeckTest(Mock <IRandomNumberGenerator> mockRandomNumberGenerator)
        {
            var deck = new Deck(mockRandomNumberGenerator.Object);

            deck.AddCard(Mock.Of <ICard>());
            deck.AddCard(Mock.Of <ICard>());
            deck.AddCard(Mock.Of <ICard>());
            Assert.True(deck.CardsRemaining == 3);
        }
예제 #9
0
        //Test Desk, Card
        public void TestMethod1()
        {
            Deck desk  = new Deck();
            Card card1 = new Card()
            {
                Word = "word1", FirstMeaning = "Meaning1"
            };

            Thread.Sleep(500);
            Card card2 = new Card()
            {
                Word = "word2", FirstMeaning = "Meaning2"
            };

            Thread.Sleep(500);
            Card card3 = new Card()
            {
                Word = "word3", FirstMeaning = "Meaning3"
            };

            Thread.Sleep(500);
            Card card4 = new Card()
            {
                Word = "word4", FirstMeaning = "Meaning4"
            };

            Thread.Sleep(500);
            Card card5 = new Card()
            {
                Word = "word5", FirstMeaning = "Meaning5"
            };

            desk.AddCard(card1);
            desk.AddCard(card2);
            desk.AddCard(card3);
            desk.AddCard(card4);
            desk.AddCard(card5);

            Card tempCard;

            tempCard = desk.GetNextReviewCard();
            Feedback feedback = new Feedback(4);

            desk.UpdateReviewDate(tempCard, feedback);
            for (int i = 0; i < 3; i++)
            {
                tempCard = desk.GetNextReviewCard();
                feedback = new Feedback(5);
                desk.UpdateReviewDate(tempCard, feedback);
            }
            feedback = new Feedback(3);
            desk.UpdateReviewDate(tempCard, feedback);
            desk.SaveDataToXMLFile("Store.xml");
            desk.LoadDataFromXMLFile("Store.xml");
            Assert.AreEqual(desk.GetNextReviewCard().Word, "word5");
        }
예제 #10
0
        public void ShuffleDeckTest(Mock <IRandomNumberGenerator> mockRandomNumberGenerator)
        {
            mockRandomNumberGenerator.Setup(x => x.Generate(1));
            var deck = new Deck(mockRandomNumberGenerator.Object);

            deck.AddCard(Mock.Of <ICard>());
            deck.AddCard(Mock.Of <ICard>());
            deck.Shuffle();
            mockRandomNumberGenerator.Verify(x => x.Generate(2), Times.Exactly(2));
        }
예제 #11
0
        public void TestRemoveCard()
        {
            var deck = new Deck(2);

            Assert.Equal(true, deck.AddCard(new Card("7", Suit.DIAMONDS, 0, 0)));
            Assert.Equal(true, deck.AddCard(new Card("8", Suit.DIAMONDS, 0, 1)));
            Assert.Equal(true, deck.RemoveCard(deck.GetCardById(0)));
            Assert.Equal(null, deck.GetCardById(0));
            Assert.NotEqual(null, deck.GetCardById(1));
        }
예제 #12
0
    public void GameStart()
    {
        List <AbilityConnection> abilities = new List <AbilityConnection>();

        playerDeck.AddCard(CardFactory.CreateMinion("Alohai", "Some badass", 4, abilities, Enums.Rarity.COMMON, 400, 600));
        playerDeck.AddCard(CardFactory.CreateMinion("Dimerant", "Another Badass", 7, abilities, Enums.Rarity.UNCOMMON, 300, 500));
        playerDeck.AddCard(CardFactory.CreateMinion("Quinteef the Stricken", "Waow", 3, abilities, Enums.Rarity.COMMON, 100, 50));
        playerDeck.AddCard(CardFactory.CreateMinion("Klunikan", "Who r u", 4, abilities, Enums.Rarity.EPIC, 400, 1000));
        playerDeck.AddCard(CardFactory.CreateMinion("Duniken", "yeet", 1, abilities, Enums.Rarity.COMMON, 10, 20));
        playerDeck.AddCard(CardFactory.CreateMinion("Joey", "Some ordinary dude", 8, abilities, Enums.Rarity.LEGENDARY, 1000, 1000));
        playerDeck.AddCard(CardFactory.CreateMinion("Kuisee", "Hi", 4, abilities, Enums.Rarity.RARE, 400, 600));
        playerDeck.AddCard(CardFactory.CreateMinion("Yesss", "Snek", 5, abilities, Enums.Rarity.COMMON, 400, 600));
        playerDeck.AddCard(CardFactory.CreateMinion("Alohai2", "Some badass2", 6, abilities, Enums.Rarity.RARE, 300, 700));

        enemyDeck.AddCard(CardFactory.CreateMinion("Alohai", "Some badass", 4, abilities, Enums.Rarity.COMMON, 400, 600));
        enemyDeck.AddCard(CardFactory.CreateMinion("Dimerant", "Another Badass", 7, abilities, Enums.Rarity.UNCOMMON, 300, 500));
        enemyDeck.AddCard(CardFactory.CreateMinion("Quinteef the Stricken", "Waow", 3, abilities, Enums.Rarity.COMMON, 100, 50));
        enemyDeck.AddCard(CardFactory.CreateMinion("Klunikan", "Who r u", 4, abilities, Enums.Rarity.EPIC, 400, 1000));
        enemyDeck.AddCard(CardFactory.CreateMinion("Duniken", "yeet", 1, abilities, Enums.Rarity.COMMON, 10, 20));
        enemyDeck.AddCard(CardFactory.CreateMinion("Joey", "Some ordinary dude", 8, abilities, Enums.Rarity.LEGENDARY, 1000, 1000));
        enemyDeck.AddCard(CardFactory.CreateMinion("Kuisee", "Hi", 4, abilities, Enums.Rarity.RARE, 400, 600));
        enemyDeck.AddCard(CardFactory.CreateMinion("Yesss", "Snek", 5, abilities, Enums.Rarity.COMMON, 400, 600));
        enemyDeck.AddCard(CardFactory.CreateMinion("Alohai2", "Some badass2", 6, abilities, Enums.Rarity.RARE, 300, 700));

        playerDeck.Shuffle();
        enemyDeck.Shuffle();

        DealCards(5);
    }
예제 #13
0
 private void AddCardsFromTalonToDeck()
 {
     for (int i = 0; i < TalonPile.Count; i++)
     {
         deck.AddCard(TalonPile[i]);
     }
     TalonPile      = new Pile();
     TalonBox.Image = imageList2.Images[empCard];
     TalonClickQuantity--;
     DeckClickLabel.Text = deck.Count.ToString();
 }
예제 #14
0
        public void AddCardTestMethod4()
        {
            var  card = new TestCard(0, 0, "Test", new List <Effect>(), Protocol.RarityCode.Legendary);
            Deck deck = new Deck(1, "Test", 30, new List <Card>());

            Assert.AreEqual(deck.TotalCardCount, 0);
            Assert.IsTrue(deck.AddCard(card));
            Assert.AreEqual(deck.TotalCardCount, 1);
            Assert.IsFalse(deck.AddCard(card));
            Assert.AreEqual(deck.TotalCardCount, 1);
        }
예제 #15
0
        public void IsCompletedTestMethod1()
        {
            var  card = new TestCard(0, 0, "Test", new List <Effect>(), Protocol.RarityCode.Free);
            Deck deck = new Deck(1, "Test", 1, new List <Card>());

            Assert.AreEqual(false, deck.IsCompleted);
            Assert.IsTrue(deck.AddCard(card));
            Assert.AreEqual(true, deck.IsCompleted);
            Assert.IsFalse(deck.AddCard(card));
            Assert.AreEqual(true, deck.IsCompleted);
        }
예제 #16
0
        public void AddCardTestMethod3()
        {
            var  card = new TestCard(0, 0, "Test", new List <Effect>(), Protocol.RarityCode.Free);
            Deck deck = new Deck(1, "Test", 30, new List <Card>());

            for (int i = 0; i < 30; i++)
            {
                Assert.AreEqual(deck.TotalCardCount, i);
                Assert.IsTrue(deck.AddCard(new TestCard(i, 0, "Test", new List <Effect>(), Protocol.RarityCode.Free)));
            }
            Assert.IsFalse(deck.AddCard(new TestCard(30, 0, "Test", new List <Effect>(), Protocol.RarityCode.Free)));
            Assert.AreEqual(deck.TotalCardCount, 30);
        }
예제 #17
0
        public void CardCountTestMethod1()
        {
            var  card = new TestCard(0, 0, "Test", new List <Effect>(), Protocol.RarityCode.Free);
            Deck deck = new Deck(1, "Test", 30, new List <Card>());

            Assert.AreEqual(deck.CardCount(0), 0);
            Assert.IsTrue(deck.AddCard(card));
            Assert.AreEqual(deck.CardCount(0), 1);
            Assert.IsTrue(deck.AddCard(card));
            Assert.AreEqual(deck.CardCount(0), 2);
            Assert.IsFalse(deck.AddCard(card));
            Assert.AreEqual(deck.CardCount(0), 2);
        }
예제 #18
0
 /// Called at end of game. Shuffle's players cards into deck from BOARD, hand, and destroyed cards.
 public void ShuffleBackDeck(List <Card> destoyedCards)
 {
     for (int i = destoyedCards.Count - 1; i >= 0; i--)
     {
         deck.AddCard(destoyedCards[i]);
         destoyedCards.RemoveAt(i);
     }
     for (int i = hand.Count - 1; i >= 0; i--)
     {
         deck.AddCard(hand[i]);
         hand.RemoveAt(i);
     }
     //TODO shuffle cards on board back into player's deck! Forogot to do this during game jam, thats why you lose your slashes when you kill an enemy.
 }
    private void InitializeHardCodedLibrary()
    {
        Debug.Log("Initializing hard coded library.");

        Deck hardcodedDeck = new Deck(30, 60);

        hardcodedDeck.AddCard(0, 8);
        hardcodedDeck.AddCard(1, 8);
        hardcodedDeck.AddCard(2, 4);
        hardcodedDeck.AddCard(3, 4);
        hardcodedDeck.AddCard(4, 4);
        hardcodedDeck.AddCard(5, 4);
        hardcodedDeck.AddCard(6, 4);
        hardcodedDeck.AddCard(7, 4);

        int[] cardList;

        if (!hardcodedDeck.ExportDeckToArray(out cardList))
        {
            Debug.LogError("Can't export hardcoded deck.");
            Application.Quit();
            return;
        }

        hardCodedLibrary = new Library(cardList);
    }
예제 #20
0
        public void RemoveCardInDeck()
        {
            Deck <Card> testDeck = new Deck <Card>();
            Card        cardOne  = new Card(Suit.Hearts, Value.Nine);
            Card        cardTwo  = new Card(Suit.Spades, Value.Ace);

            testDeck.AddCard(cardOne);
            testDeck.AddCard(cardTwo);

            testDeck.RemoveCard(testDeck.cards[0]);

            Assert.Equal(Suit.Spades, testDeck.cards[0].Suit);
            Assert.Equal(Value.Ace, testDeck.cards[0].Value);
        }
예제 #21
0
    public void AfterCardPlay(CardData card, CardData cardToOblivion = null)
    {
        if (card == null) // From SelectCardToOblivionEffect
        {
            card = lastCardPlayed;
        }

        waitForCardEffect = false;
        switch (card.CardPlayedOrigin)
        {
        case CardPlayedOrigin.HAND:
            hand.DiscardCard(card);
            if (card.DestroyAfterPlay || card == cardToOblivion)
            {
                library.RemoveCard(card);
                oblivionDeck.AddCard(card);
            }
            else
            {
                memoriesPile.AddCard(card.indexInDeck);
            }

            if (cardToOblivion != null && card != cardToOblivion)
            {
                hand.DiscardCard(cardToOblivion);
                library.RemoveCard(cardToOblivion);
                oblivionDeck.AddCard(cardToOblivion);
            }
            break;

        case CardPlayedOrigin.RENT:
            rent.RemoveCard();
            break;

        case CardPlayedOrigin.EVENTS:
            currentEventPile.CardPlayed();
            break;
        }

        card.ResetIndexes();

        if (LoseConditionsMet())
        {
            GameOverLose();
        }
        else if (WinConditionsMet())
        {
            GameOverWin();
        }
    }
예제 #22
0
        //Runs main Game Logic
        private void pictureBox4_Click(object sender, EventArgs e)
        {
            if (mDeck.GetNrOfCards() > 0 && mPcDeck.GetNrOfCards() > 0)
            {
                //draw a card from each deck
                Card mCard   = mDeck.DrawTopCard();
                Card mPcCard = mPcDeck.DrawTopCard();
                //Display the cards
                displayCard(mCard);
                displayPcCard(mPcCard);

                //if player has highest card then add the cards to players deck
                if (mCard.mValue > mPcCard.mValue)
                {
                    mDeck.AddCard(mCard);
                    mDeck.AddCard(mPcCard);
                    mDeck.Shuffle(new Random(new Random().Next()));

                    NrCardsYou.Text    = mDeck.GetNrOfCards().ToString();
                    NrCardsPC.Text     = mPcDeck.GetNrOfCards().ToString();
                    WinnerName.Text    = "Player Gets Cards";
                    WinnerName.Visible = true;
                }
                //if pc has highest card then add the cards to the pc deck
                else if (mCard.mValue < mPcCard.mValue)
                {
                    mPcDeck.AddCard(mCard);
                    mPcDeck.AddCard(mPcCard);
                    mPcDeck.Shuffle();
                    NrCardsYou.Text    = mDeck.GetNrOfCards().ToString();
                    NrCardsPC.Text     = mPcDeck.GetNrOfCards().ToString();
                    WinnerName.Text    = "PC Gets Cards";
                    WinnerName.Visible = true;
                }
                //draw so discard booth of the cards
                else
                {
                    WinnerName.Text    = "Draw";
                    WinnerName.Visible = true;
                    NrCardsYou.Text    = mDeck.GetNrOfCards().ToString();
                    NrCardsPC.Text     = mPcDeck.GetNrOfCards().ToString();
                }
            }
            else
            {
                //we have a winner so show the winner
                DisplayWinnerScreen();
            }
        }
        public void Test_DeckShouldNotAddCardWhenThereAreAlreadyTwoCopies()
        {
            //arrange
            CardStack deck   = new Deck();
            Card      dragon = new Dragon("Great Dragon", 40, ElementType.Normal);

            //act
            bool cardAdded;

            deck.AddCard(dragon);
            deck.AddCard(dragon);
            cardAdded = deck.AddCard(dragon);

            //assert
            Assert.IsFalse(cardAdded);
        }
예제 #24
0
    public void MoveCardDecktoDeck(Deck moveDeck, int startCardIdx, int cardNum, float intervalTime, float moveTime, Action complete = null)
    {
        Observable.Interval(TimeSpan.FromSeconds(intervalTime))
        .Take(cardNum)
        .Subscribe(i =>
        {
            int idx = startCardIdx;
            moveDeck.AddCard(DeckList[idx]);

            DeckList[idx].transform.DOMove(moveDeck.GetPosition(), moveTime);

            CardAnimationSystem.GetInstance().ReverseAnimation(
                DeckList[idx],
                moveTime);

            DeckList.RemoveAt(idx);
        }, () =>
        {
            for (int i = 0; i < DeckList.Count; i++)
            {
                DeckList[i].SetSortingOrder(i);
            }

            if (complete != null)
            {
                complete();
            }
        });
    }
        private Deck InitializaDeck()
        {
            Deck deck = new Deck("Test Deck");

            Card card = deck.AddCard();

            card.SideA = "sideA - 你好";
            card.SideB = "sideB - 你好";
            card.Notes = "notes - 你好";
            card.Tags  = "tags";

            CardInstance sideAToB     = card.GetInstanceSideAToB();
            CardPlan     sideAToBPlan = sideAToB.Plan;

            sideAToBPlan.LastDays = 1;
            CardReview sideAToBValue = sideAToB.AddReview();

            sideAToBValue.DateTime = DateTimeOffset.Now;
            sideAToBValue.Value    = ReviewValues.Values.VALUE_1;

            CardInstance sideBToA     = card.GetInstanceSideBToA();
            CardPlan     sideBToAPlan = sideBToA.Plan;

            sideBToAPlan.LastDays = 1;
            CardReview sideBToAValue = sideBToA.AddReview();

            sideBToAValue.DateTime = DateTimeOffset.Now;
            sideBToAValue.Value    = ReviewValues.Values.VALUE_1;

            return(deck);
        }
예제 #26
0
        public void TestRemoveCard()
        {
            Player player = new Player("Adam", 1000);
            Deck   deck   = new Deck("talia", player);

            Card card  = new Card(3, "Kowal", 200, "To jest tekst karty");
            Card card2 = new Card(32, "Kowal2", 2020, "To jest tekst karty");

            deck.AddCard(card);
            deck.AddCard(card2);

            deck.RemoveCard(card2);

            Contains(deck.Cards, card);
            DoesNotContain(deck.Cards, card2);
        }
예제 #27
0
    public void AllMoveCardDecktoDeck(Deck moveDeck, float intervalTime, float moveTime, Action complete = null)
    {
        Observable.Interval(TimeSpan.FromSeconds(intervalTime))
        .Take(DeckList.Count)
        .Subscribe(_ =>
        {
            int i = (int)_;

            DeckList[i].SetSortingOrder(i);
            DeckList[i].ObjTransform.DOMove(moveDeck.GetPosition(), moveTime);

            CardAnimationSystem.GetInstance().ReverseAnimation(
                DeckList[i],
                moveTime);

            moveDeck.AddCard(DeckList[i]);
        },
                   () =>
        {
            DeckList.Clear();
            if (complete != null)
            {
                complete();
            }
        });
    }
예제 #28
0
 public void AddCardsToDeck(TMP_InputField amount)
 {
     for (int i = 0; i < int.Parse(amount.text); i++)
     {
         deck.AddCard();
     }
 }
예제 #29
0
        public static void Drawl()
        {
            Console.WriteLine("Lab 06: Card Game");

            Deck <Card> dealer = DealDeck(15);

            Console.WriteLine($"The number of cards in your deck {dealer.Count()}");
            Console.WriteLine("The cards in your deck are:");
            Console.ReadKey();
            ViewAllCards(dealer);
            Console.WriteLine("");
            Console.WriteLine($"Removing {dealer.IndividualCard(10).Rank} of {dealer.IndividualCard(10).Suits}");
            dealer.RemoveCard(10);
            Console.WriteLine("");
            Console.WriteLine("Press enter to see cards left");
            Console.ReadKey();
            Console.WriteLine("cards left:");
            Console.WriteLine("");
            ViewAllCards(dealer);
            Card card = new Card(Card.Suit.Clubs, Card.CardsNomenclature.Ace);

            dealer.AddCard(card);
            Console.WriteLine("");
            Console.WriteLine($"{card.Rank} of {card.Suits} was added to the deck");
            Console.WriteLine("");
            Console.WriteLine("List with added card");
            Console.WriteLine("");
            ViewAllCards(dealer);
            Console.WriteLine("");
            Console.WriteLine("Thank you for checking out my game");
            Console.WriteLine("Press enter to exit");
            Console.ReadKey();
        }
예제 #30
0
    public void DisplayNewCard()
    {
        if (deck.DeckCount == 0)
        {
            coveredDeckImage.color = new Color(1f, 1f, 1f, 1f);

            ClearRevealedCardsOnDisplay();
            for (int i = 0; i < discardedCards.Count; i++)
            {
                deck.AddCard(discardedCards.Pop());
            }
            //discardedCards.Clear();
            return;
        }

        if (visibleCards.Count >= 3)
        {
            ClearRevealedCardsOnDisplay();
        }

        CardData newCardData = deck.DrawCard();

        if (deck.DeckCount == 0)
        {
            coveredDeckImage.color = new Color(0f, 0f, 0f, 0f);
        }

        Card newCard = factory.SpawnCard(newCardData);

        newCard.transform.SetParent(transform);
        newCard.TurnFaceUp();
        visibleCards.Add(newCard);
    }
예제 #31
0
        public static Deck Read(string name, byte[] content)
        {
            using (var reader = new StreamReader(new MemoryStream(content)))
            {
                string line;
                var lineNumber = 0;

                var deck = new Deck();
                deck.Name = name;

                while ((line = reader.ReadLine()) != null)
                {
                    lineNumber++;
                    line = line.Trim();

                    if (line.Trim().Length == 0)
                        continue;

                    if (line.StartsWith("#"))
                    {
                        var match = DescriptionRegex.Match(line);
                        if (match.Success)
                        {
                            deck.Description = match.Groups[1].Value;
                            continue;
                        }

                        match = RatingRegex.Match(line);
                        int rating;
                        if (match.Success)
                        {
                            int.TryParse(match.Groups[1].Value, out rating);
                            deck.Rating = rating;
                            continue;
                        }

                        match = LimitedCodeRegex.Match(line);
                        int limitedCode;
                        if (match.Success)
                        {
                            int.TryParse(match.Groups[1].Value, out limitedCode);
                            deck.LimitedCode = limitedCode;
                            continue;
                        }

                        continue;
                    }

                    var row = ParseRow(line, lineNumber);

                    deck.AddCard(row.Card, row.Count);
                }
                return deck;
            }
        }
예제 #32
0
        static void Main(string[] args)
        {
            /* Making objects assigning ctor's the stuff */
            var myDeck = new Deck();
            IGame myGame = new LowGame(myDeck);
            var myPlayers = new List<IPlayer>();

            /* Filling deck with 1 of every card */
            for (var i = 1; i < 9; i++)             /* There are 8 different numbervalues */
            {
                for (var u = 1; u < 6; u++)         /* There are 5 different cardtypes */
                {
                    ICard myCard = new Card(i, u);  /* Making instans of every card */
                    myDeck.AddCard(myCard);         /* Adding card to deck */
                }
            }

            /* Making players, both weak and normal */
            myPlayers.Add(new WeakPlayer("Dennis"));
            myPlayers.Add(new WeakPlayer("Joachim"));
            myPlayers.Add(new Player("Bjørn"));
            //myPlayers.Add(new Player("Maria"));
            //myPlayers.Add(new Player("Tobias"));
            //myPlayers.Add(new WeakPlayer("Jacob"));

            /* Adding players to the game */
            foreach (var myPlayer in myPlayers)
            {
                myGame.AddPlayer(myPlayer);
            }

            /* Making console output pretty */
            System.Console.WriteLine("");

            /* Giving each player some cards */
            myGame.DealCards();

            /* Outputting players hands to console */
            foreach (var myPlayer in myPlayers)
            {
                myPlayer.ShowHand();
            }

            /* Determining who wins and outputting result */
            myGame.AnnounceWinner();
        }
예제 #33
0
        private static Deck CreateDeckFromCardList(List<Card> cards, IEnumerable<CardInfo> library)
        {
            var deck = new Deck();

              foreach (var card in cards)
              {
            var info = library.FirstOrDefault(x => x.Name.Equals(card.Name)) ??
              new CardInfo(card.Name, Rarity.C); // basic lands are not included in library

            deck.AddCard(info);
              }

              return deck;
        }