Пример #1
0
        /// <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++;
                }
            }
        }
Пример #2
0
        /// <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();
        }