Quantidade de minas vizinhas no Campo Minado

Crie uma função que recebe uma representação em array de um tabuleiro de Campo Minado e retorna outro tabuleiro em que o valor de cada célula é a quantidade de minas vizinhas.

Exemplos

A entrada pode ser assim:

[
  [0, 1, 0, 0],
  [0, 0, 1, 0],
  [0, 1, 0, 1],
  [1, 1, 0, 0]
]

O 0 representa um espaço vazio . O 1 representa uma mina.

Você terá que substituir cada mina por um 9 e cada espaço vazio pelo número de minas adjacentes; a saída será assim:

[
  [1, 9, 2, 1],
  [2, 3, 9, 2],
  [3, 9, 4, 9],
  [9, 9, 3, 1]
]

Observações

  • Como os números 0-8 são usados na saída para determinar a quantidade de minas adjacentes, o número 9 será usado para identificar as minas.
  • Uma página da Wikipedia que explica como o Campo Minado funciona está disponível na aba Resources.