Démineur

Démineur

Moyen

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·

Note

Les coordonnées X et Y sont souvent représentées par un Point, ce qui donne accès à des fonctions sur les points bien pratiques pour t'aider. Sinon, représenter ceci sous forme de tableau à deux dimensions peut aussi être utile. Dans un cas comme dans l'autre, définir des méthodes d'extension descriptives peut rendre la solution bien plus lisible et élégante.

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

Prêt à commencer Démineur ?

Inscris-toi sur Exercism pour apprendre et maîtriser Pharo avec 50 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.