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; }
public void InitializeButton(ButtonInfo info) { this.info = info; }