예제 #1
0
        private void InitializeSettings()
        {
            // Get and set the player name
            var playerName = _handleInput.GetPlayerName();

            _loadPlayer.GetPlayerInstance().Name = playerName;

            // Get size of the maze matrix
            _sizeOfMaze = _handleInput.GetSizeOfMaze();
            _mazeIntegration.BuildMaze(_sizeOfMaze);

            // Set player on the entrance room
            _loadPlayer.GetPlayerInstance().CurrentRoom =
                _loadMaze.GetMazeMapInstance().mazeRooms.Where(r => r.IsEntrance).FirstOrDefault();
            _loadPlayer.GetPlayerInstance().HitPoints = _sizeOfMaze / 2;
        }
        public void BuildMaze(int size)
        {
            // We need to use the sqare number of size since we will have a 2D space.
            var matrixSize = size * size;

            _connectToMaze.GetMazeMapInstance().mazeRooms =
                _mazeBuilder.CreateRooms(matrixSize, _mazeBuilder.ComputeNumberOfTraps(matrixSize));
            _connectToMaze.GetMazeMapInstance().mazeSize = size;
        }
예제 #3
0
        public void Move(char direction)
        {
            var newRoomId = _mazeIntegration.GetRoom(_loadPlayer.GetPlayerInstance().CurrentRoom.Id, direction);

            if (newRoomId.HasValue)
            {
                _loadMaze.GetMazeMapInstance().mazeRooms.Where(r => r.Id == newRoomId).FirstOrDefault().IsVisited = true;
                _loadPlayer.GetPlayerInstance().CurrentRoom =
                    _loadMaze.GetMazeMapInstance().mazeRooms.Where(r => r.Id == newRoomId).FirstOrDefault();
                _loadPlayer.GetPlayerInstance().StepsMade++;
                CheckCurrentRoom();
                CheckSelf();
            }
            else
            {
                Console.WriteLine(Constants.PlayerConstants.InvalidDirection);
            }
        }