Пример #1
0
        public void PlayGame()
        {
            CurrentLevelNumber = 1;
            _display.Welcome();
            var mazeData = _gameSettingLoader.GetMazeData();

            while (IsPlaying)
            {
                var maze  = _mazeFactory.CreateMaze(mazeData.LevelSettings[CurrentLevelNumber - 1]);
                var level = _levelFactory.CreateLevel(maze);
                level.PlayLevel();
                if (level.HasWon)
                {
                    _display.CongratulationsNewLevel(CurrentLevelNumber);
                    System.Threading.Thread.Sleep(TimeSpan.FromSeconds(1));
                    CurrentLevelNumber++;
                }
                else
                {
                    HandleLostLevel();
                }

                if (CurrentLevelNumber >= mazeData.MaxLevels)
                {
                    IsPlaying = false;
                }
            }

            Display.WonGame();
        }
Пример #2
0
        public virtual void CreateMaze(IMazeFactory factory)
        {
            maze = factory.CreateMaze();

            Room room1 = factory.CreateRoom1();
            Room room2 = factory.CreateRoom2();

            Portal portal1 = factory.CreatePortal(room1, new Vector3(0, 0, 2f));
            Portal portal2 = factory.CreatePortal(room2, new Vector3(2f, 0, 0));

            portal1.SetExit(portal2);
            portal2.SetExit(portal1);

            maze.AddRoom(room1);
            maze.AddRoom(room2);

            maze.Load();
        }
Пример #3
0
 public FileMazeGenerator(IMazeFactory mazeFactory)
 {
     _maze = mazeFactory.CreateMaze();
 }
Пример #4
0
 public DynamicMazeGenerator(IMazeFactory mazeFactory)
 {
     _maze = mazeFactory.CreateMaze();
 }