Démineur (genre de jeu vidéo)
Le Démineur (Minesweeper) est un jeu vidéo de réflexion dont le but est de localiser des mines cachées dans une grille représentant un champ de mines virtuel, avec pour seule indication le nombre de mines dans les zones adjacentes.
Pour les articles homonymes, voir Démineur.
Environnement | Linux et Microsoft Windows |
---|---|
Type | réflexion |
De nombreuses versions gratuites du Démineur existent, mais la plus connue est celle fournie par défaut avec le système d'exploitation Microsoft Windows. Cette version particulière, à défaut d'inventer le concept, l'a popularisé, et la désignation « Démineur » identifie souvent cette version précise et non le principe général du jeu.
Les graphismes du jeu sous Windows n'ont guère évolué entre la version sur Windows 3.0 jusqu’à Windows XP ; néanmoins, on constate que sous Windows Vista et Windows 7, les graphismes ont été améliorés.
À partir de Windows 8, le Démineur n'est plus fourni avec Windows. Il passe sous la forme d'une application Xbox appelée « Microsoft Minesweeper » téléchargeable sur le Windows Store. Le jeu acquiert dès lors de nouveaux graphismes (un mode moderne et un autre mode « jardin »), un mode aventure et des récompenses à gagner avec un compte Xbox Live.
Par défaut, le jeu se joue avec la souris d'ordinateur, mais peut également aujourd'hui se jouer sur un écran tactile.
Histoire
Le démineur trouvera son origine durant les années 1960 et 1970 en tant que l'un des premiers jeux sur ordinateur à une époque ou les ordinateurs se trouvaient dans des laboratoires ou dans de grandes entreprises. Le démineur s'inspire notamment du jeu de Jerimac Ratltiff "Cube"[1].
Le démineur ainsi que son genre deviendra populaire durant les années 1980 avec les titres Mined-Out ou Yomp[1].
Système de jeu
Généralités
Le champ de mines du Démineur est représenté par une grille, qui peut avoir différentes formes : deux ou trois dimensions, pavage rectangulaire ou non, etc.
Chaque case de la grille peut soit cacher une mine, soit être vide. Le but du jeu est de découvrir toutes les cases libres sans faire exploser les mines, c'est-à-dire sans cliquer sur les cases qui les dissimulent.
Lorsque le joueur clique sur une case libre comportant au moins une mine dans l'une de ses cases avoisinantes, un chiffre apparaît, indiquant ce nombre de mines. Si en revanche toutes les cases adjacentes sont vides, une case vide est affichée et la même opération est répétée sur ces cases, et ce jusqu'à ce que la zone vide soit entièrement délimitée par des chiffres. En comparant les différentes informations récoltées, le joueur peut ainsi progresser dans le déminage du terrain. S'il se trompe et clique sur une mine, il a perdu.
On peut signaler les cases contenant des mines présumées par un drapeau en cliquant sur le bouton droit de la souris — mais ce n'est aucunement obligatoire. Il faut faire attention à ne pas signaler une case saine par un drapeau, car cela peut induire en erreur ; ce n'est toutefois pas aussi pénalisant que de découvrir une mine.
Dans le démineur de Windows, il est possible de cliquer simultanément avec les boutons gauche et droit de la souris sur une case. Cette manipulation est à faire sur une case ayant un numéro (donc avec une ou plusieurs mines à proximité) et lorsque le joueur a préalablement déminé le nombre requis de mines alentour. Dans ce cas là, toutes les autres cases adjacentes dépourvues de drapeau seront découvertes, permettant ainsi de gagner du temps.
Le jeu est chronométré, ce qui permet de conserver les meilleurs scores.
Jusqu'à Windows XP, le démineur de Windows contenait également un smiley prenant différentes humeurs selon la situation : souriant en temps normal, triste lorsque le joueur a perdu, portant des lunettes de soleil lorsqu'il a gagné et nerveux lorsque le bouton de la souris est enfoncé. Un clic sur ce smiley permettait de commencer une nouvelle partie[2].
Logique ou hasard ?
Si le jeu du Démineur est un problème NP-complet[3], il invite cependant le joueur à combiner plusieurs tactiques, selon le degré de probabilité. On peut avoir des certitudes absolues selon le nombre d'informations qui s'entrecoupent ; mais on peut aussi n'en avoir absolument aucune, notamment lors des premiers coups où l'on est obligé de procéder à l'aveuglette ; enfin, on peut, sans avoir de certitude absolue, calculer de fortes probabilités. Il s'agit donc alternativement d'un jeu de hasard et d'un casse-tête.
Certaines variantes cherchent à diminuer la part du hasard. Les plus simples offrent une option dans laquelle certaines cases connues du joueur, typiquement les coins, sont toujours sûres. Les plus sophistiquées jouent elles-mêmes en cas de situation où l'on ne peut pas trancher. Une variante particulière[Laquelle ?] a poussé ce dernier procédé dans ses limites : en demandant au joueur de jouer une case ou bien de déclarer explicitement qu'il croit ne pas pouvoir décider, elle rend chaque coup possible dans un espace mathématique étendu !
Mesure de difficulté
La difficulté d'une grille de Démineur peut être mesurée avec un indice : le 3BV (abréviation de Bechtel's Board Benchmark Value).
Variantes
Le Démineur existait avant Windows, et a été exploité une fois bien connu du grand public sur de nombreuses plateformes (Macintosh, Linux…). Il existe également comme extension des navigateurs de la famille Mozilla. Dans la version Mozilla, il existe également un pavage hexagonal :
Des variantes plus exotiques existent qui proposent des variations de la structure du jeu avec par exemple des plateaux de jeu non plans, plusieurs mines par case, l'intégration d'une levée des indécidables ou bien du déroulement du jeu avec par exemple des parties en temps limité. Certains programmes offrent aussi des facilités pour le jeu à plusieurs joueurs, comme la certification des résultats en vue de l'établissement de classements, et des statistiques sur de nombreux aspects du jeu, comme sa difficulté théorique compte tenu de la distribution des mines.
- Jeu de Démineur en 3D.
- Clone du Démineur non rectangulaire.
- Clone du Démineur fonctionnant sur le navigateur Firefox (version hexagonale).
- Clone triangulaire du Démineur.
- Clone du Démineur sur console système sous Ubuntu.
- Le joueur ne doit jamais deviner dans « Mines », une version libre de Simon Tatham sur Ubuntu/Linux.
- Variante avec plusieurs mines dans certaines cellules, sous Firefox.
Algorithmes
Dans cette section, nous allons considérer un tableau de démineur de largeur , de hauteur , et comportant mines.
Placement des mines
Pour pouvoir placer des mines aléatoirement, il faut avoir accès à un générateur de hasard. Puis on lui demande un nombre compris entre 1 et n, ce sera le numéro de la ligne, et un second nombre compris entre 1 et m, ce sera le numéro de colonne. Ensuite on regarde si la case ainsi choisie comporte déjà une mine, auquel cas on ne fait rien et sinon on y place une mine. On effectue ce schéma jusqu'à ce qu'on ait placé x mines.
L'algorithme mentionné ci-dessus peut poser des problèmes de temps de calcul si on a une grille assez pleine voire très pleine. Si par exemple on décide de jouer sur une grille de dimension 20×20 et qu'on veut y mettre 361 bombes. Quand on aura déjà placé 360 bombes et qu'on débutera l'algorithme pour placer la dernière, il y a de fortes chances (90 %) que la case tirée au hasard soit déjà occupée par une bombe et qu'on doive refaire le tirage au sort de nombreuses fois. Pour corriger ce problème on peut modifier un peu l'algorithme de placement de bombes pour les cas où il y a plus de bombes que de cases vides : on peut placer une bombe partout et ensuite tirer au hasard les emplacements des cases vides.
On peut également procéder comme au loto : numéroter les cases de 1 à 400 (pour le cas d'une grille 20×20) tirer au hasard une case et ensuite sortir cette case des possibilités pour ensuite tirer la case suivante parmi les 399 cases restantes. Cet algorithme nécessite une structure de données plus complexe mais la complexité algorithmique O(n) de chaque tirage au sort est indépendant du nombre de bombes déjà posées et vaut O(1).
Il est possible de choisir l'emplacement des mines après le premier coup, pour imposer que le premier coup (et les 8 cases autour) soient vides, de manière facile à programmer, pour ne pas frustrer le joueur.
Calcul du nombre de mines de chaque case
Il existe deux grands algorithmes (au sens où ce sont les plus utilisés) permettant le calcul des nombres des différentes cases du Démineur.
Par case
Le premier algorithme est dit naïf : c'est la méthode la plus évidente à comprendre et à mettre en place, mais ce n'est pas la plus optimisée.
Après le placement des mines, l'algorithme parcourt le tableau en entier, case par case. Pour chacune d'entre elles, il compte le nombre de mines dans le voisinage direct, et lui assigne ce nombre. Voici une implémentation simplifiée en pseudo-code :
explorer tableau par case
si case est vide
nombre := compter_mines(case.voisinage)
case.valeur = nombre
Nous aurons donc une complexité algorithmique de .
Par mine
Alors que le premier algorithme s'effectue dans un deuxième temps, celui-ci s'applique au moment-même du placement des mines sur le tableau.
L'algorithme fonctionne en considérant les mines et leur voisinage comme des ensembles. Lorsqu'une mine est incluse dans un de ses ensembles, le nombre qui lui est associé est incrémenté de un. Ainsi, en pseudo-code :
// Placement de la mine explorer mine.voisinage par case si case est vide incrémenter case.valeur
Cette approche du problème permet de réunir deux étapes en une seule. En termes de complexité algorithmique, cet algorithme est plus performant : , sachant que , car le tableau ne peut ni être recouvert de mines, ni contenir plus de mines que de cases (exception faite des variantes avec plusieurs mines par case).
Records
Les records du monde de vitesse de résolution du Démineur, dans les trois catégories de jeu (débutant, intermédiaire et expert), sont détenus par le polonais Kamil Murański avec les temps suivants :
- Débutant : 0,49 secondes
- Intermédiaire : 7,03 secondes
- Expert : 31,133 secondes[4]
Astuce
Dans la version Windows du Démineur, en tapant durant le jeu le mot-clé « xyzzy », puis en appuyant sur la touche « Entrée » et « Majuscule », le pixel du coin supérieur gauche de l'écran (écran Windows, et non pas la fenêtre de jeu) devient noir lorsque le curseur passe sur une mine, et blanc lorsqu'il passe sur une case libre.
Postérité
La version Windows du Démineur est l'une des entrées de l'ouvrage Les 1001 jeux vidéo auxquels il faut avoir joué dans sa vie[5].
Le jeu est parodié par l'équipe de CollegeHumor (en), dans un sketch prenant la forme d'une fausse bande-annonce pour un film intitulé Minesweeper: The Movie[6].
Notes et références
- « Histoire du démineur », sur demineur-ligne.com (consulté le )
- (en) Lissa Wiebers, « Navigating Minesweeper », SmartComputing, vol. 4, no 3, .
- (en) Chris Studholme, « Minesweeper as a Constraint Satisfaction Problem » [PDF], université de Toronto (informatique).
- (en) Kamil Murański Official, « Minesweeper Guinness World Record (23 July 2014) »,
- Tony Mott (trad. de l'anglais), Les 1001 jeux vidéo auxquels il faut avoir joué dans sa vie, Paris, Flammarion, , 960 p. (ISBN 978-2-08-126217-1).
- (en) [vidéo] Minesweeper: The Movie, sur collegehumor.com, 6 août 2007.
Voir aussi
Liens externes
- (en) Les mathématiques du Démineur, lien avec le problème P=NP, sur mat.bham.ac.uk
- Portail du logiciel
- Portail du jeu vidéo
- Portail de Microsoft