Example #1
0
        public void Run()
        {
            Players = new List <Domain.PlayerType> {
                PlayerType.Lucifer
                , PlayerType.TicForTac
                , PlayerType.Tester
                , PlayerType.MassiveRetaliation
                , PlayerType.RandomMan
                , PlayerType.Jesus
                , PlayerType.Quant
            };

            var gameData = new List <GameData>();

            for (int i = 0; i < Players.Count; i++)
            {
                for (int j = i + 1; j < Players.Count; j++)
                {
                    var game = new Game(_playerFactory.GetPlayer(Players[i]), _playerFactory.GetPlayer(Players[j]));
                    gameData.Add(game.Play());
                }
            }
            var playersScore = new Dictionary <string, int>();

            foreach (var game in gameData)
            {
                if (game.Player1Name == "RandomMan" || game.Player2Name == "RandomMan")
                {
                    Console.WriteLine(string.Format(" {0}:{1} - {2}:{3}"
                                                    , game.Player1Name, game.Player1Score
                                                    , game.Player2Name, game.Player2Score));
                }

                var name = game.Player1Name;
                if (!playersScore.ContainsKey(name))
                {
                    playersScore.Add(name, game.Player1Score);
                }
                else
                {
                    int score = playersScore[name];
                    playersScore[name] = score + game.Player1Score;
                }

                name = game.Player2Name;
                if (!playersScore.ContainsKey(name))
                {
                    playersScore.Add(name, game.Player2Score);
                }
                else
                {
                    int score = playersScore[name];
                    playersScore[name] = score + game.Player2Score;
                }
            }
            Console.WriteLine(" ================================ ");
            foreach (var playerScore in playersScore)
            {
                Console.WriteLine(string.Format(" {0}:{1}  "
                                                , playerScore.Key, playerScore.Value));
            }
        }