in Games/Maze/GamePage.xaml.cs [366:431]
private void BuildMaze()
{
_solutionTimer.Stop();
_cellCreationTimer.Stop();
_openCellTimer.Stop();
_breadCrumbs.Clear();
ClearBreadCrumbs();
int remainingHeight = (int)(this.ActualHeight - Toolbar.ActualHeight) - (int)(MazeBorder.Margin.Bottom + MazeBorder.Margin.Top);
_cellSize = remainingHeight / _numRows;
_numCols = (int)((this.ActualWidth - (MazeBorder.Margin.Left + MazeBorder.Margin.Right)) / _cellSize);
_maze = _mazeCreator.Create(_numRows, _numCols);
_isMazeSolved = false;
_curRow = _curCol = 0;
if (_curButton != null)
{
_curButton.Content = null;
_curButton = null;
}
if (_targetButton != null)
{
_targetButton.Content = null;
_targetButton = null;
}
MazeGrid.Children.Clear();
MazeGrid.RowDefinitions.Clear();
MazeGrid.ColumnDefinitions.Clear();
MazeTargetsGrid.Children.Clear();
MazeTargetsGrid.RowDefinitions.Clear();
MazeTargetsGrid.ColumnDefinitions.Clear();
for (int i = 0; i < _numRows; i++)
{
MazeGrid.RowDefinitions.Add(new RowDefinition());
MazeTargetsGrid.RowDefinitions.Add(new RowDefinition());
}
for (int i = 0; i < _numCols; i++)
{
MazeGrid.ColumnDefinitions.Add(new ColumnDefinition());
MazeTargetsGrid.ColumnDefinitions.Add(new ColumnDefinition());
}
MazeGrid.Width = _cellSize * _numCols;
MazeTargetsGrid.Width = _cellSize * _numCols;
_mazeCells.Clear();
for (int i = 0; i < _numRows; i++)
{
for (int j = 0; j < _numCols; j++)
{
_mazeCells.Add(new Point(j, i));
AddTargetToMaze(i, j);
}
}
_mazeCells = ShuffleMazeCells(_mazeCells);
_currentMazeCell = 0;
_cellCreationTimer.Start();
}