Algorithme du démineur

Fermé
eme01600 Messages postés 1 Date d'inscription vendredi 16 décembre 2016 Statut Membre Dernière intervention 16 décembre 2016 - Modifié par eme01600 le 16/12/2016 à 18:53
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 16 déc. 2016 à 18:58
Bonjour tout le monde,
Dans le cadre d'un tp informatique, le professeur nous a demandé de réaliser l'algorithme du démineur. J'aurais besoin de votre aide pour la réalisation de ce programme en c++ notamment à partir des questions 3-a) et 3-b).

Je vous met le sujet ci-dessous, merci d'avance de votre aide.




1. Principe du jeu :
L'objectif est de trouver les mines qui sont cachées aléatoirement par l'ordinateur dans les cases du tableau.
Si la case choisie contient une mine, la partie est perdue. Si la case choisie ne contient pas de mine alors apparaîtra un chiffre indiquant le nombre de mines qui se trouvent dans les 8 cases qui touchent directement la case sélectionnée.
Par exemple si le numéro découvert est un 2, cela indique qu'il y a 2 mines cachées parmi les 8 cases qui touchent directement celle choisie.
2. Définition des structures de données a. Définir 2 constantes DIMWX et DIMWY permettant de fixer les dimensions de la fenêtre d’exécution. b. Définir une structure case_grille comportant trois informations : un entier mines représentant le contenu de cette case (-1 si mine, 0..8 pour le nombre de mines dans les cases adjacentes), un booléen découverte permettant de savoir si cette case a déjà été choisie par l’utilisateur (cette valeur indiquera si la case doit être dévoilée à l’utilisateur lors de l’affichage) et un booléen drapeau permettant de repérer si un drapeau a été posé sur cette case. c. Définir la grille de jeu. Cette structure contient un tableau 2D de case_grille, les différents paramètres du jeu (DX et DY la taille de la grille, nb_mines le nombre de mines placées sur la grille), un booléen perdu qui marque la fin de la partie, un entier nb_cases_a_decouvrir représentant le nombre de cases restant à découvrir (hors mines) et les deux images à afficher (en dehors de l’entier déterminant le nombre de mines dans les cases adjacentes) mine et drapeau.

3. Construction de la grille de jeu a. Initialisation de la grille de jeu : écrivez un sous-programme permettant d’initialiser la grille de jeu. Pour chacune des cases de la grille du jeu, la valeur numérique sera initialisée à 0 et le booléen découvert à la valeur "false". b. Positionnement aléatoire des bombes sur la grille de jeu. Ecrivez un sous-programme permettant de positionner aléatoirement Mines bombes sur la grille de jeu. Attention, avant de placer une mine, on vérifiera que la case est "libre". c. Remplissage complet de la grille de jeu. Dans ce sous-programme, nous allons pour chacune des cases (hors mine) compter le nombre de mines dans toutes les cases adjacentes (attention aux cases du pourtour de la grille !!).

4. La partie de jeu se décompose de la manière suivante : choix d’une case (clic gauche avec la souris), ou pose d’un drapeau (clic droit avec la souris) puis affichage du résultat. a. Ecrivez un sous-programme qui découvre une case de la grille. b. Ecrivez un sous-programme qui affiche la grille de jeu. On pourra utiliser pour cela des fonctions annexes qui permettent de transformer des coordonnées de la fenêtre en coordonnées de la grille, et vice versa.

5. Écrivez le programme principal permettant de jouer au démineur.

1 réponse

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
16 déc. 2016 à 18:58
Nous ne feront pas votre exercice à votre place.
Merci de décrire précisément votre problème et en postant le code déjà réalisé.

Cliquez ici pour des conseils d'écriture des messages et ici concernant les devoirs scolaires ou PFE.

Pour poster votre code, merci de penser à la coloration syntaxique.
-2