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); }
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); }
private void ResetVisualizationButton_Click(object sender, RoutedEventArgs e) { puzzleVisualizer = new PuzzleVisualizer(canvas, diskCount, pegCount); ChangeFrameworkElementState(true, startVisualizationButton); ChangeFrameworkElementState(false, resetVisualizationButton); }