Démineur

Démineur

Difficile

Introduction

Le démineur est un jeu populaire où le joueur doit trouver les mines à l'aide d'indices numériques qui indiquent combien de mines sont directement adjacentes (horizontalement, verticalement, en diagonale) à une case.

Instructions

Ta tâche consiste à ajouter le décompte des mines aux cases vides d'un plateau de Minesweeper terminé. Le plateau lui-même est un rectangle composé de cases, qui sont soit vides (' '), soit des mines ('*').

Pour chaque case vide, compte le nombre de mines adjacentes (horizontalement, verticalement, en diagonale). Si la case vide n'a aucune mine adjacente, laisse-la vide. Sinon, remplace-la par le nombre de mines adjacentes.

Par exemple, tu peux recevoir un plateau de 5 x 4 comme celui-ci (les cases vides sont ici représentées par le caractère « · » pour l'affichage à l'écran) :

·*·*·
··*··
··*··
·····

Ton code doit le transformer en ceci :

1*3*1
13*31
·2*2·
·111·

Instructions spécifiques au parcours

Format du champ de mines

Le champ de mines est représenté par une string, avec un caractère de nouvelle ligne à la fin de chaque rangée.

Par exemple : " \n * \n \n"

Mémoire réservée

Le tampon de la string d'entrée utilise les octets 64 à 319 de la mémoire linéaire.

La string d'entrée peut être modifiée sur place si on le souhaite.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
WebAssembly Exercism

Prêt à commencer Démineur ?

Inscris-toi sur Exercism pour apprendre et maîtriser WebAssembly avec 87 exercices, et un vrai mentorat humain, le tout gratuitement.

Analyse approfondie de Démineur !

On explore les boucles `for` imbriquées, l'utilisation astucieuse de min/max pour simplifier la vérification des bornes, les _pipelines_ fonctionnels et le recours à des matrices à deux dimensions.