Esempio n. 1
0
        private void DealNewDeck()
        {
            var pile = CardsPack.GetNew52CardsPack();

            pile.Shuffle();
            mTable.StockPile = pile;
        }
        private void ShuffleCardsTestInternal(CardsPack cardsPack)
        {
            var cardsCount = cardsPack.Count();

            cardsPack.Shuffle();
            Assert.Equal(cardsCount, cardsPack.Count());
        }
Esempio n. 3
0
        public void DifferentSuitsCreateNeededCountCardsTest()
        {
            Int32 countHeartCard = 0, countDiamondCard = 0,
                  countClubCard = 0, countSpadeCard = 0;

            CardsPack.NewPack();
            IEnumerable <Card> cards = CardsPack.Cards;

            foreach (Card card in cards)
            {
                if (card.Suit == CardSuit.Heart)
                {
                    countHeartCard++;
                }
                if (card.Suit == CardSuit.Diamond)
                {
                    countDiamondCard++;
                }
                if (card.Suit == CardSuit.Club)
                {
                    countClubCard++;
                }
                if (card.Suit == CardSuit.Spade)
                {
                    countSpadeCard++;
                }
            }

            Assert.AreEqual(9, countHeartCard);
            Assert.AreEqual(9, countDiamondCard);
            Assert.AreEqual(9, countClubCard);
            Assert.AreEqual(9, countSpadeCard);
        }
Esempio n. 4
0
        public void NumberCreateNeededCountCardsTest()
        {
            Int32 countSix = 0, countSeven = 0, countEight = 0,
                  countNine = 0, countTen = 0, countJack = 0,
                  countLady = 0, countKing = 0, countAce = 0;

            CardsPack.NewPack();
            IEnumerable <Card> cards = CardsPack.Cards;

            foreach (Card card in cards)
            {
                if (card.Number == CardNumber.Six)
                {
                    countSix++;
                }
                if (card.Number == CardNumber.Seven)
                {
                    countSeven++;
                }
                if (card.Number == CardNumber.Eight)
                {
                    countEight++;
                }
                if (card.Number == CardNumber.Nine)
                {
                    countNine++;
                }
                if (card.Number == CardNumber.Ten)
                {
                    countTen++;
                }
                if (card.Number == CardNumber.Jack)
                {
                    countJack++;
                }
                if (card.Number == CardNumber.Lady)
                {
                    countLady++;
                }
                if (card.Number == CardNumber.King)
                {
                    countKing++;
                }
                if (card.Number == CardNumber.Ace)
                {
                    countAce++;
                }
            }

            Assert.AreEqual(4, countSix);
            Assert.AreEqual(4, countSeven);
            Assert.AreEqual(4, countEight);
            Assert.AreEqual(4, countNine);
            Assert.AreEqual(4, countTen);
            Assert.AreEqual(4, countJack);
            Assert.AreEqual(4, countLady);
            Assert.AreEqual(4, countKing);
            Assert.AreEqual(4, countAce);
        }
Esempio n. 5
0
 public void Start(int cardsCount, Player mover)
 {
     CardsPack    = new CardsPack(cardsCount);
     CurrentMover = mover;
     GameRounds   = new List <GameRound>()
     {
         new GameRound()
     };
 }
Esempio n. 6
0
        public void AShuffledPileIsFullBackface()
        {
            var pile = CardsPack.GetNew52CardsPack();

            pile.Shuffle();

            for (int i = 1; i < 53; i++)
            {
                Assert.AreEqual(52, pile.CardsCount);
                Assert.AreEqual(eCardSide.Back, pile.ReadCard(i).VisibleSide, "After shuffle, all cards should be Backface on top");
            }
        }
Esempio n. 7
0
        public void APileCanBeShuffled()
        {
            var pile = CardsPack.GetNew52CardsPack();

            pile.Shuffle();
            var randomCard = pile.ReadCard(1);

            Debug.Log("First Card is now a " + randomCard);

            Assert.AreEqual(52, pile.CardsCount, "A deck shuffle should not change the cards count");
            Assert.AreEqual(eCardSide.Back, randomCard.VisibleSide, "After shuffle, the cards should be Backface on top");
        }
Esempio n. 8
0
        /// <summary>
        /// Раздает игрокам карты
        /// </summary>
        private void DealCards()
        {
            var cardPerPlayer = CardsPack.Count() / GamePlayers.Count;

            foreach (var player in GamePlayers)
            {
                for (int i = 0; i < cardPerPlayer; i += cardPerPlayer)
                {
                    player.GiveCards(CardsPack.TakeMany(cardPerPlayer));
                }
            }
        }
Esempio n. 9
0
        /// <summary>
        /// Запускает игру
        /// </summary>
        public void Start()
        {
            if (IsStarted)
            {
                throw new TrueFalseGameException("Игра уже запущена");
            }

            CardsPack.Shuffle();
            DealCards();
            NextRound();
            SetNextMover();
            IsStarted = true;
        }
Esempio n. 10
0
        private bool ValidateFirstMove(FirstMove move)
        {
            if (!ValidateCardsCount(move.Cards))
            {
                return(false);
            }

            if (!CardsPack.IsRankContains(move.Rank))
            {
                return(false);
            }

            return(true);
        }
Esempio n. 11
0
        public void DeleteRangeCardsFromCardsPack()
        {
            List <Card> cards = new List <Card>()
            {
                new Card(CardSuit.Heart, CardNumber.Jack),
                new Card(CardSuit.Spade, CardNumber.Six),
                new Card(CardSuit.Diamond, CardNumber.Ace)
            };

            CardsPack.NewPack();

            CardsPack.DeleteRangeCards(cards);
            CardsPack.DeleteRangeCards(cards);

            Assert.AreEqual(33, CardsPack.CountCards);
        }
Esempio n. 12
0
        public void DeleteCardFromCardsPack()
        {
            Card cardForDelete = new Card(CardSuit.Heart, CardNumber.Jack);

            CardsPack.NewPack();

            Boolean statusDeletingExistCard =
                CardsPack.DeleteCard(cardForDelete);

            Boolean statusDeletingNotExistCard =
                CardsPack.DeleteCard(cardForDelete);

            Assert.AreEqual(true, statusDeletingExistCard);
            Assert.AreEqual(false, statusDeletingNotExistCard);
            Assert.AreEqual(35, CardsPack.CountCards);
        }
        private void TakeCardsTestInternal(CardsPack cardsPack)
        {
            var cardsCount = cardsPack.Count();
            var cards      = cardsPack.TakeMany(10);

            Assert.Equal(10, cards.Count);
            Assert.Equal(cardsCount - 10, cardsPack.Count());

            var card = cardsPack.TakeOne();

            Assert.NotNull(card);
            Assert.Equal(cardsCount - 11, cardsPack.Count());

            // Попытаемся взять больше чем есть
            Assert.Throws <TrueFalseGameException>(() => { cardsPack.TakeMany(100); });
        }
Esempio n. 14
0
        public Game(CardsPack cardsPack, IReadOnlyCollection <GameTablePlayer> players)
        {
            if (cardsPack == null)
            {
                throw new ArgumentNullException(nameof(cardsPack));
            }

            if (players == null)
            {
                throw new ArgumentNullException(nameof(players));
            }

            CardsPack = cardsPack;
            Rounds    = new List <GameRound>();
            SetPlayers(players);
        }
Esempio n. 15
0
        public void APileCanBePutUpsideDown()
        {
            var pile1 = CardsPack.GetNew32CardsPack();
            var pile2 = CardsPack.GetNew32CardsPack();

            pile2.PutUpsideDown();
            Assert.AreEqual(32, pile2.CardsCount);

            for (int i = 1; i < 33; i++)
            {
                var c1 = pile1.ReadCard(i);
                var c2 = pile2.ReadCard(33 - i);
                Assert.AreEqual(c1.Value, c2.Value);
                Assert.AreEqual(c1.Color, c2.Color);
                Assert.AreNotEqual(c1.VisibleSide, c2.VisibleSide);
            }
        }
Esempio n. 16
0
        public void WhatIsA_32CardsDeck()
        {
            var pile = CardsPack.GetNew32CardsPack();

            var aceOfSpades   = pile.ReadCard(1);
            var tenOfDiamonds = pile.ReadCard(13);
            var queenOfHearts = pile.ReadCard(23);
            var kingOfClubs   = pile.ReadCard(32);

            Assert.AreEqual(32, pile.CardsCount);

            Assert.AreEqual(eCardValue.Ace, aceOfSpades.Value, "The 1st card should be an Ace of Spades");
            Assert.AreEqual(eCardColor.Spades, aceOfSpades.Color, "The 1st card should be an Ace of Spades");
            Assert.AreEqual(eCardSide.Front, aceOfSpades.VisibleSide, "The 1st card should be an Ace of Spades");
            Assert.AreEqual(eCardValue.Ten, tenOfDiamonds.Value, "The 20th card should be an Seven of Diamonds");
            Assert.AreEqual(eCardColor.Diamonds, tenOfDiamonds.Color, "The 20th card should be an Seven of Diamonds");
            Assert.AreEqual(eCardSide.Front, tenOfDiamonds.VisibleSide, "The 20th card should be an Seven of Diamonds");
            Assert.AreEqual(eCardValue.Queen, queenOfHearts.Value, "The 38th card should be an Queen of Hearts");
            Assert.AreEqual(eCardColor.Hearts, queenOfHearts.Color, "The 38th card should be an Queen of Hearts");
            Assert.AreEqual(eCardSide.Front, queenOfHearts.VisibleSide, "The 38th card should be an Queen of Hearts");
            Assert.AreEqual(eCardValue.King, kingOfClubs.Value, "The 52nd card should be an King of Clubs");
            Assert.AreEqual(eCardColor.Clubs, kingOfClubs.Color, "The 52nd card should be an King of Clubs");
            Assert.AreEqual(eCardSide.Front, kingOfClubs.VisibleSide, "The 52nd card should be an King of Clubs");
        }
Esempio n. 17
0
        public void CreateCardsPackTest()
        {
            CardsPack.NewPack();

            Assert.AreEqual(36, CardsPack.CountCards);
        }