Example #1
0
        private void RunAlgorithmButton_Click(object sender, EventArgs e)
        {
            Button button = RunAlgorithmButton;

            if (button.Tag == null || button.Tag.ToString() == "play")
            {
                ExecTimer.Start();
                button.Image = Properties.Resources.pause;
                button.Tag   = "pause";
            }
            else if (button.Tag.ToString() == "pause")
            {
                ExecTimer.Stop();
                button.Image = Properties.Resources.play;
                button.Tag   = "play";
            }
            else if (button.Tag.ToString() == "restart")
            {
                ExecTimer.Stop();
                button.Image = Properties.Resources.play;
                StateBuffer.Seek(0, SeekOrigin.Begin);
                currentState = (State)fileFormat.Deserialize(StateBuffer);
                UpdateTable();
                InputUpdate();
                CurrentStepLabel.Text = $"Шаг: {currentState.Step}/{currentState.TotalSteps}";
                HighlightCurrentStep();
                button.Tag             = "play";
                CurrentStateLabel.Text = "Нажмите \"Запуск\", чтобы начать исполнение.";
            }
        }
Example #2
0
        public void LoadAppFile(string filename)
        {
            if (currentState == null)
            {
                try
                {
                    using (FileStream fs = new FileStream(filename, FileMode.Open))
                    {
                        BinaryFormatter format = new BinaryFormatter();
                        currentState = (State)format.Deserialize(fs);
                    }
                }
                catch (Exception)
                {
                    MessageBox.Show("Не удалось загрузить файл.");
                    EmptyLaunch();
                }
            }
            else
            {
                currentState.LoadFromFile(filename);
            }
            int step = currentState.Step;

            Predict();
            StateBuffer.Seek(0, SeekOrigin.Begin);
            for (int i = 0; i < step; i++)
            {
                fileFormat.Deserialize(StateBuffer);
            }
            NextStep();
            CurrentStateLabel.Text = "Нажмите \"Запуск\", чтобы начать исполнение.";
        }
Example #3
0
        private void JSONSaveDialog_Select(object sender, System.ComponentModel.CancelEventArgs e)
        {
            SaveFileDialog             ofd  = sender as SaveFileDialog;
            DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(List <State>));
            List <State> states             = new List <State>();

            StateBuffer.Seek(0, SeekOrigin.Begin);
            for (int i = 0; i < currentState.TotalSteps + 1; i++)
            {
                State fullState = fileFormat.Deserialize(StateBuffer) as State;
                if (i != 0)
                {
                    fullState.Instructions = null;
                    fullState.StartData    = null;
                }
                states.Add(fullState);
            }
            try
            {
                using (FileStream fs = new FileStream(ofd.FileName, FileMode.Create))
                    json.WriteObject(fs, states);
            }
            catch (Exception)
            {
                MessageBox.Show("Не удалось сохранить файл.");
            }
        }
Example #4
0
 private void NextStepButton_Click(object sender, EventArgs e)
 {
     StateBuffer.Seek(0, SeekOrigin.Begin);
     for (int i = 0; i < currentState.Step + 1; i++)
     {
         fileFormat.Deserialize(StateBuffer);
     }
     NextStep();
 }