in Games/Fifteen/GamePage.xaml.cs [141:188]
void ResetBoard()
{
PlayAgainText.Visibility = Visibility.Collapsed;
_gameOver = false;
_numMoves = 0;
MoveCountTextBlock.Text = _numMoves.ToString();
for (int i = 0; i < _boardSize; i++)
{
for (int j = 0; j < _boardSize; j++)
{
_buttons[i, j].Content = ((i * _boardSize) + j + 1).ToString();
}
}
_buttons[_boardSize - 1, _boardSize - 1].Content = "";
_blankRow = _boardSize - 1;
_blankCol = _boardSize - 1;
int shuffleCount = 500;
Random rnd = new Random();
while (shuffleCount > 0)
{
bool changeRow = rnd.Next(0, 2) == 0;
bool decrement = rnd.Next(0, 2) == 0;
int row = _blankRow;
int col = _blankCol;
if (changeRow)
{
row = decrement ? row - 1 : row + 1;
}
else
{
col = decrement ? col - 1 : col + 1;
}
if ((row < 0) || (row >= _boardSize) || (col < 0) || (col >= _boardSize))
{
continue;
}
if (SwapBlank(row, col))
{
shuffleCount--;
}
}
GazeInput.SetInteraction(GameGrid, Interaction.Enabled);
}