示例#1
0
        public void needsTwoPlayersToPlay()
        {
            Game g = new Game();

            g.Add("x");
            Assert.IsFalse(g.IsPlayable());
            g.Add("y");
            Assert.IsTrue(g.IsPlayable());
        }
        private static void MakeGame(List <string> players, int seed)
        {
            Config configGame = new Config(players);
            bool   newGame    = false;

            do
            {
                Game aGame = new Game(configGame);

                if (!aGame.IsPlayable())
                {
                    Console.WriteLine("Can't start Game");
                    return;
                }

                do
                {
                    aGame.StartTurnText();
                    if (!aGame.AskIfPlayerWantToLeaveGame())
                    {
                        aGame.TryRoll();
                        if (!aGame.AskForJokerUse())
                        {
                            aGame.Answer(false);
                        }
                    }
                    else if (!aGame.IsPlayable())
                    {
                        Console.WriteLine("Game Can't be played anymore");
                        break;
                    }

                    aGame.SelectNextPlayer();
                } while (!aGame.IsGameOver);

                aGame.DisplayLeaderboard();

                Console.WriteLine("\n\n");
                InputUtilities.AskQuestion("Do you want to play a new game ?", new Dictionary <string, Action>
                {
                    { "yes", () => newGame = true },
                    { "no", () => newGame = false }
                });
                Console.WriteLine("\n\n");
            } while (newGame);
        }
示例#3
0
        public void RefactoringTests()
        {
            var output = new StringBuilder();

            Console.SetOut(new StringWriter(output));

            Game aGame = new Game();

            Console.WriteLine(aGame.IsPlayable());
            aGame.Add("Chet");
            aGame.Add("Pat");
            aGame.Add("Sue");

            aGame.Roll(1);
            aGame.Roll(1);
            aGame.Roll(1);
            aGame.Roll(1);
            aGame.Roll(1);
            aGame.Roll(1);
            aGame.Roll(1);
            aGame.Roll(1);
            aGame.Roll(1);
            aGame.Roll(1);
            aGame.Roll(1);
            aGame.Roll(1);
            aGame.Roll(1);
            aGame.Roll(1);

            aGame.WasCorrectlyAnswered();
            aGame.WrongAnswer();

            aGame.Roll(2);

            aGame.Roll(6);

            aGame.WrongAnswer();

            aGame.Roll(2);

            aGame.Roll(2);


            aGame.WrongAnswer();

            aGame.WasCorrectlyAnswered();
            aGame.Roll(1);
            aGame.WasCorrectlyAnswered();

            var configuration = BuildConfiguration();

            this.Assent(output.ToString(), configuration);
        }
示例#4
0
        public static void Main(string[] args)
        {
            int count = 0;

            var aGame = new Game();

            aGame.Add("Chet");
            aGame.Add("Foo");
            aGame.Add("Paul");
            aGame.Add("Florian");
            aGame.Add("Yoann");

            var rand = new Random();

            //Check if the game is playable.
            if (!aGame.IsPlayable())
            {
                Console.WriteLine("Il faut minimum 2 joueurs et maximum 6 joueurs pour jouer");
                Console.ReadLine();
                Environment.Exit(0);
            }

            do
            {
                aGame.Roll(rand.Next(5) + 1);
                _notAWinner = true;

                if (aGame.UseJoker())
                {
                    if (rand.Next(9) > 7)
                    {
                        _notAWinner = aGame.WrongAnswer();
                    }
                    else
                    {
                        _notAWinner = aGame.WasCorrectlyAnswered();
                    }
                }

                if (!_notAWinner)
                {
                    Console.WriteLine("Un joueur vient de monter sur le podium.");
                    count++;
                }
            } while (count < 3);
            aGame.Statistiques();
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("Il y a maintenant 3 gagnants");
            Console.ResetColor();
            Console.ReadLine();
        }
示例#5
0
        public static void Main(string[] args)
        {
            Random random = new Random();

            Game game = new Game();

            game.AddPlayer("Chet");
            game.AddPlayer("Pat");
            game.AddPlayer("Sue");

            try
            {
                if (game.IsPlayable())
                {
                    Console.WriteLine("Start the game!\r\n");

                    bool isWinner = false;

                    do
                    {
                        game.SelectNexPlayer();

                        int roll = random.Next(5) + 1;
                        game.Roll(roll);

                        int turn = random.Next(9);
                        isWinner = game.Turn(turn);

                        WinnerShow(isWinner, game);
                    } while (!isWinner);
                }
                else
                {
                    Console.WriteLine("The game is not playable, because not enough players.");
                }
            }
            catch (Exception ex)
            {
                //Here we can define logger (Log4net or NLog) functionality.
                Console.WriteLine("The GameRunner throwed exception {0}", ex);
            }

            // Keep the console window open in debug mode.
            Console.WriteLine("-----------------------");
            Console.WriteLine("Press any key to exit.");
            Console.ReadKey();
        }