💣 Jeu du démineur

Pourquoi "encore" un autre jeu de démineur.

Je me suis amusé à trouver un algorithme qui permet de résoudre les parties simples. Il n'y avait donc plus qu'à le mettre en "forme".

Pour ceux qui ne connaissent pas, c'est un jeu où il faut découvrir l'emplacement de mines dans des cellules en fonction d'indications qui sont placées dans les cellules adjacentes.

Dans l'exemple ci-dessous, sur une toute petite grille (5x5), les cellules qui peuvent contenir des mines sont en bleu, celles qui sont vides sont en blanc.

exemple de démineur

Il y a un "1" dans la cellule x. Ça veut dire qu'il y a une seule mine dans une des cellules adjacentes à la cellule x.
La majorité des cellules autour de la cellule x sont vides, en blanc.
Il n'y a qu'une cellule dangereuse, en bleu, autour de la cellule x et c'est la cellule A.
On peut en déduire que la cellule A contient une mine de façon certaine car la cellule x contient un "1" et aucune autre cellule autre que A est adjacente à la cellule x.
Donc on peut placer un drapeau sur la cellule A. Ce drapeau indique qu'il y a une mine ! Pour poser un drapeau on peut faire un clic droit ou bien, sur les mobiles ou les tablettes un click "long" en laissant le doigt appuyé plus de 0,5 secondes.

Le même raisonnement peut être appliqué aux cellules y et B.
Il y a de façon certaine une mine dans la cellule B, on y pose un drapeau.

Il y a un 2 dans la cellule z et les cellules A et B contiennent des mines donc il ne peut pas y avoir de mine dans la cellule C.
On peut alors cliquer rapidement sur la cellule C pour dégager l'espace et la vider.

Enfin on peut aussi cliquer rapidement sur la cellule D pour la vider.

Finalement, on sait qu'il n'y a pas de mine dans les cellules D et C, toutes les autres cellules en bleu contiennent des mines.

Quand vous avez positionné tous les drapeaux et que vous avez vidé toutes les cases qui devaient l'être, alors, vous avez gagné 😀.

Point de vue technique

L'algorithme est assez simple, mais un peu volumineux. Il ne fonctionne que pour les parties faciles et il est placé en tant que "web worker".

Sur les petits écrans, La difficulté était de distinguer les "swipes" c'est à dire les balayages de l'écran pour voir le reste de la grille quand cette dernière dépasse la taille de l'écran.

Le calcul de la taille suggérée pour l'écran et le clic "long" étaient amusants à mettre au point !


Vous pouvez accéder à ce jeu en cliquant sur le lien ci-dessous.

Le jeu est gratuit. Une fois dans le jeu, vous pouvez l'installer dans votre appareil en allant dans le menu de votre navigateur puis en cliquant sur "installer" ou "ajouter en page d'accueil"

💣 démineur koolsol 💥


📝 Les Articles.

Le symbole "🔧" (clé plate) indique les articles techniques.