/// <summary> /// Checks for each tile that is not a mine, whether a mine is placed in any of the 8 tiles around it, and adds a count on the tile's view. /// </summary> private void AssignHints( ) { for (int i = 0; i < _model._gridSize.row; i++) { for (int j = 0; j < _model._gridSize.column; j++) { if (_view._gameGridTiles [i, j]._isMine) { continue; } int mineCount = 0; if (j - 1 >= 0 && _view._gameGridTiles [i, j - 1]._isMine) //left { mineCount++; } if (j + 1 < _view._gameGridTiles.GetLength(1) && _view._gameGridTiles [i, j + 1]._isMine) //right { mineCount++; } if (i - 1 >= 0) { if (_view._gameGridTiles [i - 1, j]._isMine) //up-center { mineCount++; } if (j - 1 >= 0 && _view._gameGridTiles [i - 1, j - 1]._isMine) //up-left { mineCount++; } if (j + 1 < _view._gameGridTiles.GetLength(1) && _view._gameGridTiles [i - 1, j + 1]._isMine) //up-right { mineCount++; } } if (i + 1 < _view._gameGridTiles.GetLength(0)) { if (_view._gameGridTiles [i + 1, j]._isMine) //down-center { mineCount++; } if (j - 1 >= 0 && _view._gameGridTiles [i + 1, j - 1]._isMine) //down-left { mineCount++; } if (j + 1 < _view._gameGridTiles.GetLength(1) && _view._gameGridTiles [i + 1, j + 1]._isMine) //down-right { mineCount++; } } GridCoordinates gc; gc.row = i; gc.column = j; if (mineCount > 0) { _view.AssignTileAsHint(gc, mineCount); } } } }