in Games/Maze/GamePage.xaml.cs [336:364]
private void OnSolveMaze(object sender, RoutedEventArgs e)
{
if (_cellCreationTimer.IsEnabled || _openCellTimer.IsEnabled || _interactionPaused)
{
return;
}
if (_isMazeSolved)
{
//Reset to resolve
ClearSolution();
AnimateMazeRunnerVisualToCell(0, 0, TravelSpeed.Jump, 0);
_mazeRunnerVisual.IsVisible = true;
_mazeRunnerVisual.Opacity = 1;
Border endBorder = MazeGrid.Children.Cast<FrameworkElement>().First(b => Grid.GetRow(b) == _numRows - 1 && Grid.GetColumn(b) == _numCols - 1) as Border;
Button endButton = endBorder.Child as Button;
endButton.Content = _mazeEnd;
_curRow = 0;
_curCol = 0;
Border curBorder = MazeGrid.Children.Cast<FrameworkElement>().First(b => Grid.GetRow(b) == _curRow && Grid.GetColumn(b) == _curCol) as Border;
_curButton = curBorder.Child as Button;
_isMazeSolved = false;
}
var solver = MazeCreator.Solver.Create();
_solution = solver.Solve(_maze, new Position(_curRow, _curCol), new Position(_numRows - 1, _numCols - 1));
_usedSolver = true;
_solutionCurIndex = 0;
_solutionTimer.Start();
}