Example #1
0
        public void getPlayingStackAndStack_multipleCardsGrabbedAndGiven_MultipleCards()
        {
            //Arrange
            PlayingStackSingleton playingStackInstance = PlayingStackSingleton.GetInstance();
            int            amountBeforePlay            = playingStackInstance.GetStack().Count;
            StackSingleton stackInstance    = StackSingleton.GetInstance();
            int            amountBeforeGrab = stackInstance.GetStack().Count;
            User           user             = new User(1, "peter");
            User           user2            = new User(2, "steve");
            User           user3            = new User(3, "jack");

            //Act
            user.GrabCards(2);
            var card = user.GetCards()[0];

            user.PlayCard(card);

            user2.GrabCards(4);
            card = user2.GetCards()[0];
            user2.PlayCard(card);

            user3.GrabCards(4);
            card = user3.GetCards()[0];
            user3.PlayCard(card);

            //Assert
            int amountAfterPlay = playingStackInstance.GetStack().Count;
            int amountAfterGrab = stackInstance.GetStack().Count;

            Assert.AreEqual(amountBeforePlay + 3, amountAfterPlay);
            Assert.AreEqual(amountBeforeGrab - 10, amountAfterGrab);
        }
Example #2
0
        public void getPlayingStack_threeCardsGiven_threeCards()
        {
            //Arrange
            PlayingStackSingleton playingStackInstance = PlayingStackSingleton.GetInstance();
            int            amountBeforePlay            = playingStackInstance.GetStack().Count;
            StackSingleton stackInstance = StackSingleton.GetInstance();
            User           user          = new User(1, "peter");
            User           user2         = new User(2, "steve");
            User           user3         = new User(3, "jack");

            //Act
            user.GrabCards(2);
            string card = user.GetCards()[0];

            user.PlayCard(card);

            user2.GrabCards(2);
            card = user2.GetCards()[0];
            user2.PlayCard(card);

            user3.GrabCards(2);
            card = user3.GetCards()[0];
            user3.PlayCard(card);

            //Assert
            int amountAfterPlay = playingStackInstance.GetStack().Count;

            Assert.AreEqual(amountBeforePlay + 3, amountAfterPlay);
        }
Example #3
0
        public void getPlayingStack_noCardsGiven_noCards()
        {
            //Arrange
            PlayingStackSingleton playingStackInstance = PlayingStackSingleton.GetInstance();
            int amount = playingStackInstance.GetStack().Count;

            //Assert
            Assert.AreEqual(0, amount);
        }
        static void Main(string[] args)
        {
            StackSingleton        stackInstance        = StackSingleton.GetInstance();
            PlayingStackSingleton playingStackInstance = PlayingStackSingleton.GetInstance();

            List <User> users = new List <User>();

            Console.Write("How many players: ");
            int amountOfPlayers = Convert.ToInt32(Console.ReadLine());

            for (int i = 1; i <= amountOfPlayers; i++)
            {
                Console.Write("Name of player " + i + ": ");
                string userName = Console.ReadLine();
                users.Add(new User(i, userName));
            }

            Console.Write("How many rounds: ");
            int amountOfRounds = Convert.ToInt32(Console.ReadLine());

            Random r = new Random();

            for (int i = 0; i < amountOfRounds; i++)
            {
                int playerNumber = r.Next(1, amountOfPlayers + 1);
                Console.WriteLine("\n----------status---------- \n");
                playingStackInstance.PrintStaple();
                stackInstance.PrintStack();

                Console.WriteLine("----------round " + (i + 1) + "----------\n");
                foreach (User user in users)
                {
                    if (user.Id == playerNumber)
                    {
                        Console.Write(user.Name + " grab amount of cards: ");
                        int amountOfCards = Convert.ToInt32(Console.ReadLine());

                        user.GrabCards(amountOfCards);
                        user.PrintHand();

                        Console.Write(user.Name + " gives card: ");
                        string givenCard = Console.ReadLine();
                        user.PlayCard(givenCard);
                    }
                }
            }
            Console.WriteLine("\n----------end result----------\n");
            playingStackInstance.PrintStaple();
            stackInstance.PrintStack();

            foreach (User user in users)
            {
                user.PrintHand();
            }
            Console.ReadKey();
        }
Example #5
0
        public void getPlayingStack_oneWrongCardGiven_noCards()
        {
            //Arrange
            PlayingStackSingleton playingStackInstance = PlayingStackSingleton.GetInstance();
            int            amountBeforePlay            = playingStackInstance.GetStack().Count;
            StackSingleton stackInstance = StackSingleton.GetInstance();
            User           user          = new User(1, "peter");
            string         card          = "not possible";

            //Act
            user.PlayCard(card);

            //Assert
            int amountAfterPlay = playingStackInstance.GetStack().Count;

            Assert.AreEqual(amountBeforePlay, amountAfterPlay);
        }
Example #6
0
        public void getPlayingStack_oneCardGiven_oneCard()
        {
            //Arrange
            PlayingStackSingleton playingStackInstance = PlayingStackSingleton.GetInstance();
            int            amountBeforePlay            = playingStackInstance.GetStack().Count;
            StackSingleton stackInstance = StackSingleton.GetInstance();
            User           user          = new User(1, "peter");

            //Act
            user.GrabCards(2);
            string card = user.GetCards()[0];

            user.PlayCard(card);

            //Assert
            int amountAfterPlay = playingStackInstance.GetStack().Count;

            Assert.AreEqual(amountBeforePlay + 1, amountAfterPlay);
        }