Tous les défis
Moyen 0 résolus 0 % de réussite

Comptage des mines voisines au Démineur

Annoter un plateau rectangulaire.

Annoter un plateau rectangulaire. Une étoile (*) représente une mine et un point (.) une case sûre. Pour chaque case sûre, comptez les mines dans les huit cases adjacentes, y compris en diagonale. Remplacez-la par le nombre de mines de 1 à 8, ou laissez un point si le compte est zéro. Préservez chaque mine. Les cases en dehors du plateau n'existent pas.

Implémentez minesweeper_neighbor_counts(board).

Entrée

board : Les lignes du haut vers le bas ; les caractères vont de gauche à droite.

Sortie

Renvoyez les lignes annotées dans le même ordre et avec les mêmes dimensions.

Contraintes

1 ≤ lignes, colonnes ≤ 200. Chaque ligne a la même longueur non nulle et ne contient que * et . .

Exemples

Exemple 1
Entrée :
board = ["*..", "...", "..*"]

Sortie attendue :
expected = ["*1.", "121", ".1*"]
Entrée :
std::vector<std::string> board = {"*..", "...", "..*"};

Sortie attendue :
std::vector<std::string> expected = {"*1.", "121", ".1*"};
Entrée :
string[] board = new string[] {"*..", "...", "..*"};

Sortie attendue :
string[] expected = new string[] {"*1.", "121", ".1*"};

Explication

La case centrale touche les deux mines, donc son compte est 2. La case en haut à droite et celle en bas à gauche ne touchent aucune mine et restent des points. Les autres cases sûres touchent une mine.

Exemple 2
Entrée :
board = ["..."]

Sortie attendue :
expected = ["..."]
Entrée :
std::vector<std::string> board = {"..."};

Sortie attendue :
std::vector<std::string> expected = {"..."};
Entrée :
string[] board = new string[] {"..."};

Sortie attendue :
string[] expected = new string[] {"..."};

Explication

Ce plateau à une seule ligne ne contient aucune mine. Tous les comptes sont à zéro, donc chaque point reste un point.

Références

Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.

Apprenez des autres

Solutions de la communauté

Aucune solution publiée pour l'instant. Résolvez ce défi pour partager la première.