public PlayerDetails(IMinesFieldBoard minesFieldBoard, IRenderer renderer, int lives = 3)
 {
     minesField     = minesFieldBoard;
     render         = renderer;
     livesRemaining = lives;
     maxLives       = lives;
 }
示例#2
0
        public void Start(IMinesFieldBoard board, IPlayerDetails player)
        {
            board.Create(8, 8);

            while (player.Alive() && !player.Finished())
            {
                var input = Console.ReadKey();

                switch (input.Key)
                {
                case ConsoleKey.UpArrow:
                case ConsoleKey.W:
                {
                    player.MoveUp();
                    break;
                }

                case ConsoleKey.DownArrow:
                case ConsoleKey.S:
                {
                    player.MoveDown();
                    break;
                }

                case ConsoleKey.LeftArrow:
                case ConsoleKey.A:
                {
                    player.MoveLeft();
                    break;
                }

                case ConsoleKey.RightArrow:
                case ConsoleKey.D:
                {
                    player.MoveRight();
                    break;
                }

                case ConsoleKey.Enter:
                {
                    board.Create(8, 8);
                    player.Reset();
                    break;
                }

                case ConsoleKey.Escape:
                {
                    return;
                }
                }
            }

            End();
        }