Beispiel #1
0
 protected GameManager(DominoList dominos, params Player[] players)
 {
     _playerList.Clear();
     _playerList.AddPlayers(players);
     PublicTrain = new PublicTrain();
     _dominoList = dominos;
 }
Beispiel #2
0
        /// <summary>
        /// Loop over the players and play each.
        /// One iteration is a complete turn.
        /// </summary>
        public void TakeTurn()
        {
            Console.Clear();

            Console.WriteLine("\nPublic train: " + PublicTrain.ToString());

            foreach (Player player in _playerList.Where(s => !s.Lost))
            {
                Console.WriteLine("\nPlayer: " + player.Name);
                Console.WriteLine("Private train: " + player.IsTrainPrivate);
                Console.WriteLine("Dominoes: " + player.ToString());
                Console.WriteLine("Train: " + player.PrintTrain());

                try
                {
                    if (!player.Won)
                    {
                        player.Play();
                    }
                    else
                    {
                        throw new PlayerWonException(player);
                    }
                }
                catch (PlayerLostException p)
                {
                    // This player can no longer be played.
                    p.Player.Lost = true;
                }
            }

            Console.WriteLine("------------------------------------------");
            Console.WriteLine("\nPublic train: " + PublicTrain.ToString());
            foreach (Player player in _playerList.Where(s => !s.Lost))
            {
                Console.WriteLine("\nPlayer: " + player.Name);
                Console.WriteLine("Private train: " + player.IsTrainPrivate);
                Console.WriteLine("Dominoes: " + player.ToString());
                Console.WriteLine("Train: " + player.PrintTrain());
            }

            Console.WriteLine("\n\nEnter to continue...");

            while (Console.ReadKey().Key != ConsoleKey.Enter)
            {
                ;
            }
        }