Campo minado simples

Published by Joshua Señoron in

Dado um array 2D de minas, substitua o ponto de interrogação pelo número de minas que o cercam imediatamente. Isso inclui as diagonais, o que significa que ele pode estar cercado por no máximo 8 minas.

A chave é a seguinte:

  • Um espaço vazio: "-"
  • Uma mina: "#"
  • Número que mostra a quantidade de minas ao redor: "?"

Exemplos

minesweeper([
  ["-", "#", "-"],
  ["-", "?", "-"],
  ["-", "-", "-"]
]) ➞ [
  ["-", "#", "-"],
  ["-", "1", "-"],
  ["-", "-", "-"]
]

minesweeper([
  ["-", "#", "-"],
  ["#", "-", "?"],
  ["#", "#", "-"]
]) ➞ [
  ["-", "#", "-"],
  ["#", "-", "2"],
  ["#", "#", "-"]
]

minesweeper([
  ["-", "#", "#"],
  ["?", "#", ""],
  ["#", "?", "-"]
]) ➞ [
  ["-", "#", "#"],
  ["3", "#", ""],
  ["#", "2", "-"]
]

minesweeper([
  ["-", "-", "#"],
  ["?", "-", "-"],
  ["-", "-", "-"]
]) ➞ [
  ["-", "-", "#"],
  ["0", "-", "-"],
  ["-", "-", "-"]
]

Observações

  • Você receberá apenas grades 3x3.
  • O ponto de interrogação não está limitado ao centro (pode haver vários pontos de interrogação).