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(); }
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(); }
public FileMazeGenerator(IMazeFactory mazeFactory) { _maze = mazeFactory.CreateMaze(); }
public DynamicMazeGenerator(IMazeFactory mazeFactory) { _maze = mazeFactory.CreateMaze(); }