# Problem solving: Minesweeper

## Problem Statement

As stated on CodeSignal :

In the popular Minesweeper game you have a board with some mines and those cells that don’t contain a mine have a number in it that indicates the total number of mines in the neighboring cells. Starting off with some arrangement of mines we want to create a Minesweeper game setup.

## Input and output examples

#### For Input :

``````matrix = [[true, false, false],
[false, true, false],
[false, false, false]]
``````

#### Output :

``````minesweeper(matrix) = [[1, 2, 1],
[2, 1, 1],
[1, 1, 1]]
``````

## Solution:

``````std::vector<std::vector<int>> minesweeper(std::vector<std::vector<bool>> matrix) {
std::vector<std::vector<int>> res;
for (int y = 0; y < matrix.size(); y++ ){
std::vector<int> row;
for (int x = 0; x < matrix[y].size(); x++){
int count = 0;
for (int a = -1; a <= 1; a++){
for(int b = -1; b <= 1; b++){
int c = a + y, d = b + x;
if (c == y && d == x){
continue;
}
if (0 <= c && c < matrix.size() && 0 <= d && d < matrix.size()) {
count += matrix[c][d] ? 1 : 0;
}

}
}
row.push_back(count);
}
res.push_back(row);
}
return res;
}
``````