/// <summary> /// Fills the UI with new buttons representing the tiles for the game /// </summary> private void fillBoard() { window.UniGrid.Columns = 24; window.UniGrid.Rows = 24; int index = 0; for (int row = 0; row < 24; row++) { for (int column = 0; column < 24; column++) { MineButton mineButton = new MineButton(board.board[index], this, index); mineButtons.Add(mineButton); window.UniGrid.Children.Add(mineButton); index++; } } }
/// <summary> /// Reveals all the tiles in the board /// </summary> private void revealBoard() { // Create worker to reveal mines MineButton mb = null; BackgroundWorker worker = new BackgroundWorker(); worker.WorkerReportsProgress = true; worker.DoWork += (sender, e) => { for (int i = 0; i < mineButtons.Count; i++) { if (mineButtons[i].tile.isMine && mineButtons[i].tile.isActive == false) { mb = mineButtons[i]; Thread.Sleep(10); worker.ReportProgress(0); } } }; worker.ProgressChanged += (sender, e) => { if (mb.tile.isFlagged && mb.tile.isMine) { mb.setFlag(); mb.setTile(); } mb.setTile(); }; worker.RunWorkerCompleted += (sender, e) => { newGameButton.IsEnabled = true; }; worker.RunWorkerAsync(); }