Ejemplo n.º 1
0
        private void CreateGameGrid(GameBoard board)
        {
            grid.ColumnDefinitions.Clear();
            grid.Children.Clear();
            grid.RowDefinitions.Clear();


            this.board = board;

            this.buttonGrid = new GridButton[board.Height, board.Width];

            //Create rows, columns
            for (int i = 0; i < board.Width; i++)
            {
                grid.ColumnDefinitions.Add(new ColumnDefinition());
            }

            for (int i = 0; i < board.Height; i++)
            {
                grid.RowDefinitions.Add(new RowDefinition());
            }

            //Create buttons
            for (int r = 0; r < board.Height; r++)
            {
                for (int c = 0; c < board.Width; c++)
                {
                    var info = new ButtonInfo()
                    {
                        Column = c,
                        Row    = r
                    };

                    if (board.IsMine(r, c))
                    {
                        info.IsMine = true;
                    }
                    else
                    {
                        int adjacentMines = board.GetNumMines(r, c);
                        info.Value  = adjacentMines;
                        info.IsMine = false;
                    }

                    GridButton button = new GridButton();
                    button.SetValue(Grid.RowProperty, r);
                    button.SetValue(Grid.ColumnProperty, c);
                    button.InitializeButton(info);
                    grid.Children.Add(button);

                    buttonGrid[r, c] = button;
                }
            }

            //Initialize Game
            MinesLeft       = board.TotalMines;
            actualMinesLeft = board.TotalMines;
            triggeredMines  = 0;

            CellsLeft = board.Width * board.Height;

            //Set Handlers
            GridButton.SetHandlers(
                OnClick,
                Flag,
                AutoClick
                );

            InGame = true;
        }
Ejemplo n.º 2
0
 public void InitializeButton(ButtonInfo info)
 {
     this.info = info;
 }