Exemple #1
0
        private void StartVisualizationButton_Click(object sender, RoutedEventArgs e)
        {
            Action visualizationCompleted = () => {
                ChangeFrameworkElementState(true, resetVisualizationButton, diskCountInputTextBox, pegCountInputTextBox);
                ChangeFrameworkElementState(false, abortVisualizationButton);
            };

            if (puzzleVisualizer.currentState == 0)
            {
                puzzleVisualizer = new PuzzleVisualizer(canvas, diskCount, pegCount);
                puzzleVisualizer?.Start(solution, 200, visualizationCompleted);
            }
            ChangeFrameworkElementState(true, abortVisualizationButton);
            ChangeFrameworkElementState(false, startSolveButton, startVisualizationButton, resetVisualizationButton, diskCountInputTextBox, pegCountInputTextBox);
        }
Exemple #2
0
 private void PuzzleParametersChanged(object sender, TextChangedEventArgs e)
 {
     try
     {
         diskCount = byte.Parse(diskCountInputTextBox.Text);
         pegCount  = byte.Parse(pegCountInputTextBox.Text);
         if (pegCount < 3 || diskCount < 3 || diskCount > 15)
         {
             throw new FormatException();
         }
     }
     catch (FormatException)
     {
         Console.WriteLine("Couldn't get disk and peg count!");
         return;
     }
     canStartSolving        = true;
     puzzleVisualizer       = new PuzzleVisualizer(canvas, diskCount, pegCount);
     FSmoveCountLabel.Text  = $"Frame Stewart: - moves";
     BFSmoveCountLabel.Text = $"BFS: - moves";
     elapsedTimeLabel.Text  = $"Elapsed time:   -";
     ChangeFrameworkElementState(true, startSolveButton);
     ChangeFrameworkElementState(false, abortSolveButton, startVisualizationButton, abortVisualizationButton, resetVisualizationButton);
 }
Exemple #3
0
 private void ResetVisualizationButton_Click(object sender, RoutedEventArgs e)
 {
     puzzleVisualizer = new PuzzleVisualizer(canvas, diskCount, pegCount);
     ChangeFrameworkElementState(true, startVisualizationButton);
     ChangeFrameworkElementState(false, resetVisualizationButton);
 }