Un puzzle de logique, pas de hasard
Le Démineur (Windows, 1990) tient sur une grille de 12 × 12 cases dont
24 dissimulent une mine. Chaque case révélée affiche le nombre de mines
présentes dans son voisinage immédiat, et c'est ce simple compteur qui
transforme le jeu en pur exercice de déduction. Aucune dépendance, quelques
kilo-octets de JavaScript et un <canvas> : le prétexte idéal
pour travailler proprement une logique sur grille et un algorithme de
propagation.
Le premier coup est toujours sûr
Rien de plus frustrant qu'une partie perdue au tout premier clic. Je l'évite par conception : les mines ne sont pas placées à l'avance. Elles sont tirées au sort après ce premier clic, en excluant la case touchée et ses huit voisines. Le joueur ouvre ainsi toujours sur une zone dégagée, ce qui garantit une partie décidable dès le départ. C'est une contrainte simple à énoncer, mais qui impose de différer la génération de l'état du jeu — un réflexe que j'applique partout : ne figer une donnée qu'au moment où l'on connaît réellement les règles qui la gouvernent.
Compter les voisins
Une fois les mines placées, je précalcule pour chaque case son nombre de mines adjacentes en parcourant ses huit voisines, avec un traitement soigneux des bords où le voisinage est tronqué. Ce comptage n'est fait qu'une seule fois : l'information est stockée dans un tableau indexé par case, et le rendu se contente ensuite de la lire. Séparer le calcul de l'affichage garde la boucle de dessin triviale et prévisible.
La révélation en cascade
Cliquer sur une case sans aucune mine adjacente ne révèle pas qu'elle seule : un flood-fill se propage de proche en proche et ouvre d'un coup toute la zone vide, en s'arrêtant net sur la bordure de chiffres qui l'entoure. Je l'implémente avec une pile explicite plutôt qu'une récursion, pour ne jamais risquer de saturer la pile d'appels sur une grande zone. Chaque case dépilée est marquée révélée, et ses voisines ne sont empilées que si elle-même est vide — un parcours de graphe classique, borné et sans doublon.
La rigueur invisible qui fait un bon produit
Premier coup garanti, cascade qui ne déborde jamais, compteur de mines fiable : aucun de ces détails n'est spectaculaire, et c'est précisément le sujet. Un logiciel de qualité, ce sont surtout ces cas limites traités correctement, une fois, au bon endroit. C'est l'attention que je porte à un projet client critique : anticiper les bords, différer ce qui doit l'être et livrer un comportement identique pour tout le monde, sans surprise.