示例#1
0
        private void OpenMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();

            dlg.Filter = "Maze Files (*.maze)|*.maze";

            if (dlg.ShowDialog() == DialogResult.OK)
            {
                _walls.Clear();
                mazeSpace.Enabled = false;

                var loaded = MazeUtilities.LoadObject <MazeAgent>(dlg.FileName);
                _agentPrimary                 = MazeUtilities.ConvertLoadedAgent(loaded);
                _agentSecondary               = MazeUtilities.ConvertLoadedAgent(loaded);
                _agentSecondary.Environment   = MazeUtilities.CopyEnvironment(loaded.Environment);
                _agentSecondary.StartPosition = _agentPrimary.StartPosition;

                AgentSubscribeEvents(_agentPrimary);
                AgentSubscribeEvents(_agentSecondary);

                SetFormValuesFromMaze();

                _needsRetrain     = true;
                mazeSpace.Enabled = true;
            }
        }
示例#2
0
        private void LoadAgent(string path)
        {
            var loaded = MazeUtilities.LoadObject <MazeAgent>(path);

            loaded.Environment.QualitySaveFrequency = 100;
            PrimaryAgent                 = MazeUtilities.ConvertLoadedAgent(loaded);
            SecondaryAgent               = MazeUtilities.ConvertLoadedAgent(loaded);
            SecondaryAgent.Environment   = MazeUtilities.CopyEnvironment(loaded.Environment);
            SecondaryAgent.StartPosition = PrimaryAgent.StartPosition;

            if (PrimaryAgent.LearningStyle == QLearning.Core.LearningStyles.QLearning)
            {
                SecondaryAgent.LearningStyle = QLearning.Core.LearningStyles.SARSA;
            }
            else
            {
                SecondaryAgent.LearningStyle = QLearning.Core.LearningStyles.QLearning;
            }

            OnPropertyChanged(nameof(SelectedLearningStyle));
            OnPropertyChanged(nameof(PrimaryAgent));
            OnPropertyChanged(nameof(SecondaryAgent));
            OnPropertyChanged(nameof(GoalPosition));
            OnPropertyChanged(nameof(MazeVm));
        }