Beispiel #1
0
        public static void Main(string[] args)
        {
            bool playAgain = true;

            while (playAgain)
            {
                playAgain = false;
                Console.WriteLine("Shall we play some Tennis?");
                Console.Write("How many sides: ");
                string numberOfPlayers = Console.ReadLine();

                int number = 0;
                if (!Int32.TryParse(numberOfPlayers, out number))
                {
                    Console.WriteLine("Sorry, the number of sides could not be understood. Please try again");
                    return;
                }

                if (number <= 0)
                {
                    Console.WriteLine("Sorry, the number of sides must be positive. Please try again");
                    return;
                }

                var matches = new List <IPlayMatch>();
                var sides   = new List <ISide>();
                var random  = new Random();

                for (int i = 0; i < number; i++)
                {
                    Console.Write("Team Name: ");
                    string name = Console.ReadLine();

                    ISide newSide = new PlayingSide();
                    newSide.TeamName          = name;
                    newSide.Strength          = random.Next(100);
                    newSide.ServingStrength   = random.Next(50);
                    newSide.ReturningStrength = random.Next(25);

                    sides.Add(newSide);
                    Console.Write(" added with strength: {0}, serving: {1}, returning: {2}\n", newSide.Strength,
                                  newSide.ServingStrength, newSide.ReturningStrength);

                    if (i == number - 1)
                    {
                        if (number % 2 == 1)
                        {
                            // let the last odd team play themselves
                            ISide anotherSide = new PlayingSide();
                            anotherSide.TeamName          = name;
                            anotherSide.Strength          = random.Next(100);
                            anotherSide.ServingStrength   = random.Next(50);
                            anotherSide.ReturningStrength = random.Next(25);
                        }
                    }
                }

                Console.Write("To Start Tournament Press <Enter>");
                Console.ReadLine();

                for (int i = 0; i < sides.Count; i = i + 2)
                {
                    matches.Add(new PlayMatch(new PlaySet(new PlayGame(new DetermineWinner(sides[i], sides[i + 1]))), sides[i], sides[i + 1]));
                }

                IPlayTournament playTournament = new PlayTournament(matches);

                ISide champion = playTournament.Play();
                IEnumerable <MatchScore> matchScores = playTournament.GetMatchScores();

                PrintMatchScores(matchScores);

                Console.WriteLine("----------------------------------------------------------------");
                Console.WriteLine("And the champion is....{0}, strength: {1}, serving: {2}, returning: {3}",
                                  champion.TeamName, champion.Strength, champion.ServingStrength,
                                  champion.ReturningStrength);

                Console.WriteLine("----------------------------------------------------------------");
                Console.WriteLine("----------------------------------------------------------------");
                Console.Write("Play Again? (Y or N): ");
                string again = Console.ReadLine();

                if (again == "Y" || again == "y")
                {
                    playAgain = true;
                }
            }
        }
Beispiel #2
0
        public static void Main(string[] args)
        {
            bool playAgain = true;

            while (playAgain)
            {
                playAgain = false;
                Console.WriteLine("Shall we play some Tennis?");
                Console.Write("How many sides: ");
                string numberOfPlayers = Console.ReadLine();

                int number = 0;
                if (!Int32.TryParse(numberOfPlayers, out number))
                {
                    Console.WriteLine("Sorry, the number of sides could not be understood. Please try again");
                    return;
                }

                if (number <= 0)
                {
                    Console.WriteLine("Sorry, the number of sides must be positive. Please try again");
                    return;
                }

                var matches = new List<IPlayMatch>();
                var sides = new List<ISide>();
                var random = new Random();

                for (int i = 0; i < number; i++)
                {
                    Console.Write("Team Name: ");
                    string name = Console.ReadLine();

                    ISide newSide = new PlayingSide();
                    newSide.TeamName = name;
                    newSide.Strength = random.Next(100);
                    newSide.ServingStrength = random.Next(50);
                    newSide.ReturningStrength = random.Next(25);

                    sides.Add(newSide);
                    Console.Write(" added with strength: {0}, serving: {1}, returning: {2}\n", newSide.Strength,
                                  newSide.ServingStrength, newSide.ReturningStrength);

                    if (i == number - 1)
                    {
                        if (number%2 == 1)
                        {
                            // let the last odd team play themselves
                            ISide anotherSide = new PlayingSide();
                            anotherSide.TeamName = name;
                            anotherSide.Strength = random.Next(100);
                            anotherSide.ServingStrength = random.Next(50);
                            anotherSide.ReturningStrength = random.Next(25);
                        }
                    }
                }

                Console.Write("To Start Tournament Press <Enter>");
                Console.ReadLine();

                for (int i = 0; i < sides.Count; i = i + 2)
                {
                    matches.Add(new PlayMatch(new PlaySet(new PlayGame(new DetermineWinner(sides[i], sides[i + 1]))), sides[i], sides[i + 1]));
                }

                IPlayTournament playTournament = new PlayTournament(matches);

                ISide champion = playTournament.Play();
                IEnumerable<MatchScore> matchScores = playTournament.GetMatchScores();

                PrintMatchScores(matchScores);

                Console.WriteLine("----------------------------------------------------------------");
                Console.WriteLine("And the champion is....{0}, strength: {1}, serving: {2}, returning: {3}",
                                  champion.TeamName, champion.Strength, champion.ServingStrength,
                                  champion.ReturningStrength);

                Console.WriteLine("----------------------------------------------------------------");
                Console.WriteLine("----------------------------------------------------------------");
                Console.Write("Play Again? (Y or N): ");
                string again = Console.ReadLine();

                if (again == "Y" || again == "y")
                {
                    playAgain = true;
                }
            }
        }