public void Init(IAlgorithmsProvider algorithmsProvider, IResourceLoader resourceLoader, ISettingsBuilder settingsBuilder, IAlgorithmSettingsInitialiser algorithmSettingsInitialiser, IValidateSettings validateSettings, IModelOptionsProvider modelOptionsProvider, ICurrentSettingsHolder currentSettingsHolder, ISceneLoader sceneLoader, IWallCarverOptionsProvider wallCarverOptionsProvider, IYesNoOptionsProvider yesNoOptionsProvider, IMazeNeedsGenerating mazeNeedsGenerating, IAgentOptionsProvider agentOptionsProvider) { _algorithmsProvider = algorithmsProvider; _resourceLoader = resourceLoader; _settingsBuilder = settingsBuilder; _algorithmSettingsInitialiser = algorithmSettingsInitialiser; _validateSettings = validateSettings; _modelOptionsProvider = modelOptionsProvider; _currentSettingsHolder = currentSettingsHolder; _sceneLoader = sceneLoader; _wallCarverOptionsProvider = wallCarverOptionsProvider; _yesNoOptionsProvider = yesNoOptionsProvider; _mazeNeedsGenerating = mazeNeedsGenerating; _agentOptionsProvider = agentOptionsProvider; }
/// <summary> /// Dispose after all of the operations are complete /// </summary> public void Dispose() { _fileReader = null; _gameSettings = null; _validateSettings = null; _grid = null; _observer = null; }
public Game(IFileRead fileRead, IValidateSettings validateSettings, IReadSettingsModel settings) { _fileReader = fileRead; _gameSettings = settings; _validateSettings = validateSettings; _turtleStartPoint = _gameSettings.StartPoint; _grid = new Grid(_gameSettings.Size.Y, _gameSettings.Size.X); _observer = new Observer(_grid); Initialize(); }
/// <summary> /// Factory pattern implementation /// </summary> private Game() { _fileReader = FileRead.Instance(); _gameSettings = _fileReader.GetGameSettings(); _validateSettings = new ValidateSettings(_gameSettings); _turtleStartPoint = _gameSettings.StartPoint; _grid = new Grid(_gameSettings.Size.Y, _gameSettings.Size.X); _observer = new Observer(_grid); Initialize(); }
/// <summary> /// Validates module settings IValidateSettings /// </summary> /// <param name="module"></param> internal void ValidateModuleSettings(IValidateSettings module) { string moduleName = ((ModuleBase)module).Name; IValidateSettings temp = (IValidateSettings)module; foreach (var key in temp.CheckRequiredSettings()) { if (!Settings.Contains(key)) { this.Robot.Print("Warning!! Required setting not found for module:" + moduleName + ", " + key); this.Robot.Print("Missing:" + key); return; } } var available = temp.GetAvailableSettings(); if (available.Length > 0) { this.Robot.Print("AvailableSettings: {0} - {1}", moduleName, string.Join(", ", available)); } }