RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Srv: irc.moteurprog.com
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 Programmer un démineur en c

Forum : C
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ C

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET NON RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGES : [1] [2] [3]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM C

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
midnightweb
Nouveau membre
Inscrit : 08/06/2009
Messages : 11
Message
#163686
Posté le 08/06/09 à 19:22
Bonjour,

Je dois programmer un démineur en C sans bibliothèque graphique.
Jusque là ça marche mais je bloque sur la fonction de dévoilement des cases vides.
Lorsqu'on choisit une case, s'il y a des mines autour, le programme affiche le nombre de mines
S'il y a une mines le programme affiche perdu
Mais q'il n'y a ni mines ni mines autour, il affiche seulement "0". Ce qui ne fait pas avancer le jeu.
Je voudrais que dans ce cas, le jeu dévoile les cases vides autour, et en frontière, le nb de mines.

Merci à ceux qui pourront me donner des mines
(J'ai essayer de boucler mais le programme tourne sans fin)


#include <stdio.h> #include <stdlib.h> #include <time.h> char JEU[10][10];//grille de jeu int i,j;//i les lignes, j les colonnes char MINES[10][10];//la grille avec les mines int N;//Nombre de mines autour //////////////////////////////////////// // FONCTION AFFICHER LA GRILLE DE JEU // //////////////////////////////////////// void AfficheJeu() { printf(" | 1 2 3 4 5 6 7 8 9 10n"); printf("___|______________________________n"); for(i=0;i<10;i++) { if(i<9) printf(" %d | ",i+1); else printf("%d | ",i+1); for(j=0;j<10;j++) { printf("%c ",JEU[i][j]); } printf("n"); } } ///////////////////////////////////////////// // FONCTION CALCULER LE NB DE MINES AUTOUR // ///////////////////////////////////////////// int NbMinesAutour() { N=0; if(MINES[i][j]=='M') { printf("Vous avez perdu !!!nn"); printf(" | 1 2 3 4 5 6 7 8 9 10n"); printf("___|______________________________n"); for(i=0;i<10;i++) { if(i<9) printf(" %d | ",i+1); else printf("%d | ",i+1); for(j=0;j<10;j++) printf("%c ",MINES[i][j]); printf("n"); } } else { if (i==0) { if (j==0) { if(MINES[i][j+1]=='M') N++; if(MINES[i+1][j]=='M') N++; if(MINES[i+1][j+1]=='M') N++; } else { if(j==10) { if(MINES[i][j-1]=='M') N++; if(MINES[i+1][j-1]=='M') N++; if(MINES[i+1][j]='M') N++; } else { if(MINES[i][j-1]=='M') N++; if(MINES[i][j+1]=='M') N++; if(MINES[i+1][j-1]=='M') N++; if(MINES[i+1][j]=='M') N++; if(MINES[i+1][j+1]=='M') N++; } } } else { if (i==10) { if (j==0) { if(MINES[i-1][j]=='M') N++; if(MINES[i-1][j+1]=='M') N++; if(MINES[i][j+1]=='M') N++; } else { if(j==10) { if(MINES[i-1][j-1]=='M') N++; if(MINES[i-1][j]=='M') N++; if(MINES[i][j-1]=='M') N++; } else { if(MINES[i-1][j-1]=='M') N++; if(MINES[i-1][j]=='M') N++; if(MINES[i-1][j+1]=='M') N++; if(MINES[i][j-1]=='M') N++; if(MINES[i][j+1]=='M') N++; } } } else { if(MINES[i-1][j-1]=='M') N++; if(MINES[i-1][j]=='M') N++; if(MINES[i-1][j+1]=='M') N++; if(MINES[i][j-1]=='M') N++; if(MINES[i][j+1]=='M') N++; if(MINES[i+1][j-1]=='M') N++; if(MINES[i+1][j]=='M') N++; if(MINES[i+1][j+1]=='M') N++; } } return(N); } } int main() { int NbMines;//le nombre de mines choisi par le joueur char NbMinesTxt[2]; // nombre de mines aux alentours int CompteMines;//compteur de mines int choix;//le choix effectué par le joueur pour découvrir ou placer un drapeau int c;//le compteur de la boucle srand(time(NULL)); //Afficher le début du jeu printf(" ________________________________n"); printf("| |n"); printf("| Jeu du demineur |n"); printf("|________________________________|nn"); //initialisation des deux grilles for(i=0;i<10;i++) { for(j=0;j<10;j++) { JEU[i][j]=' ';//' 'implique case cachée MINES[i][j]='0'; } } //demander à l'utilisateur de choisir un nombre de mines do { printf("nCombien de mines voulez-vous ?nn"); scanf("%d",&NbMines); } while(NbMines>=30); printf("D'accord, vous avez choisi de jouer avec %d minesnn",NbMines); ////////////////////////////// // Initialisation des mines // ////////////////////////////// for (CompteMines=0;CompteMines<NbMines;CompteMines++) { i=rand()%10;//on choisit la ligne de manière aléatoire j=rand()%10;//on choisit la colonne de manière aléatoire if(MINES[i][j]=='0')//On vérifie que la case est libre { MINES[i][j]='M';//on place un M pour indiquer qu'il y a une mine } else { NbMines++;//Sinon, il y a déjà un M et il faut faire un tour de plus } } //Pour vérifier on affiche la grille des mines printf("Voici la grille des mines :n"); for(i=0;i<10;i++) { for(j=0;j<10;j++) { printf("%c ",MINES[i][j]); } printf("n"); } //////////////////////////// // Démarrage de la partie // //////////////////////////// //On affiche le jeu au joueur printf("nnVoici votre grille : A vous de jouer !nn"); printf(" | 1 2 3 4 5 6 7 8 9 10n"); printf("___|______________________________n"); for(i=0;i<10;i++) { if(i<9) printf(" %d | ",i+1); else printf("%d | ",i+1); for(j=0;j<10;j++) { JEU[i][j]='-';//'-'implique case cachée printf("%c ",JEU[i][j]); } printf("n"); } //On demande au joueur de choisir une case //la case est définie par sa ligne i et sa colonne j for(c=0;c<(100-NbMines);c++) { printf("nnVeuillez entrer la case choisie (numero de ligne [espace] numero de colonne):t"); scanf("%d %d",&i,&j); printf("Vous avez choisi la case (%d,%d). Que voulez-vous faire ?n",i,j); i=i-1; j=j-1; // Demander au joueur ce qu'il veut faire printf("t1. Decouvrir une casen"); printf("t2. Placer un drapeau"); do { printf("ttVotre choix : "); scanf("%d",&choix); } while (choix<0 || choix>2); // Choix : dévoiler une case ou placer un drapeau switch (choix) { case 1 : //fonction devoile mines autour NbMinesAutour(); if (N!=0)//Il y a des mines autour { printf("%dnn",N); sprintf(NbMinesTxt,"%d",N); JEU[i][j]=NbMinesTxt[0]; } else//Il n'y a pas de mines autour { JEU[i][j]='0'; } break; case 2 : JEU[i][j]='D'; break; } //AFFICHER LA GRILLE AfficheJeu(); } printf("nnttBravo vous avez gagné !"); system("pause"); return 0; }

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

midnightweb
Nouveau membre
Inscrit : 08/06/2009
Messages : 11
Message
#163687
Posté le 08/06/09 à 19:23
me donner des pistes (pardon Smiley)

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

rainbow
Superviseur :
- C & C++
Chef de projet(s) :
- IA savane
- Team MoteurProg

Avatar de rainbow
Inscrit : 26/05/2006
Messages : 1476
Message
#163689
Posté le 08/06/09 à 19:44
Pourrais-tu un peu plus nous simplifier la tache en disant à quel endroit de ton programme cela ne marche pas ? Car là tu nous donnes beaucoup de lignes de code et je n'ai pas le temps d'analyser ton truc en détail.

Sinon moi ce que je ferai dans ce cas c'est une fonction de récurrence. Tu appelles une fonction qui te testes le nombre de mines autour et qui à chaque fois que la valeur est 0 s'appelle pour chaque case d'à côté ?

Tu vois le truc ?

De plus fractionne beaucoup plus ton code !!! Ton main ne devrait pas être si grand que ça! Utilise plus de fonctions ! Ça sera plus claire et plus modulable qu'avec tout à la bourrin dans une fonction ;) (InitGrid(), StartGame()...)
__________________________
............ Curtis: RTS 3D ..............
......Image
........... TeamMoteurProg...........

How to ask Questions ou Comment poser une question
TPE Rayons X et Scoliose

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE

midnightweb
Nouveau membre
Inscrit : 08/06/2009
Messages : 11
Message
#163690
Posté le 08/06/09 à 19:49
Merci pour les conseils,
je revoie mon code et j'indiquerai où ça bugge

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

rainbow
Superviseur :
- C & C++
Chef de projet(s) :
- IA savane
- Team MoteurProg

Avatar de rainbow
Inscrit : 26/05/2006
Messages : 1476
Message
#163691
Posté le 08/06/09 à 19:53
très bien Smiley
__________________________
............ Curtis: RTS 3D ..............
......Image
........... TeamMoteurProg...........

How to ask Questions ou Comment poser une question
TPE Rayons X et Scoliose

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE

midnightweb
Nouveau membre
Inscrit : 08/06/2009
Messages : 11
Message
#163693
Posté le 08/06/09 à 20:36
Voilà j'ai nettoyé mon code

#include <stdio.h> #include <stdlib.h> #include <time.h> char JEU[10][10];//grille de jeu int i,j;//i les lignes, j les colonnes char MINES[10][10];//la grille avec les mines int N;//Nombre de mines autour int NbMines;//le nombre de mines choisi par le joueur int choix;//le choix effectué par le joueur pour découvrir ou placer un drapeau ////////////////////////////// // FONCTION INITIALISATION /// ////////////////////////////// void Init() { for(i=0;i<10;i++) { for(j=0;j<10;j++) { JEU[i][j]='-';//' 'implique case cachée MINES[i][j]='0'; } } } /////////////////////////////// // FONCTION PLACER LES MINES // /////////////////////////////// void PlaceMines() { int CompteMines;//compteur de mines for (CompteMines=0;CompteMines<NbMines;CompteMines++) { i=rand()%10;//on choisit la ligne de manière aléatoire j=rand()%10;//on choisit la colonne de manière aléatoire if(MINES[i][j]=='0')//On vérifie que la case est libre { MINES[i][j]='M';//on place un M pour indiquer qu'il y a une mine } else { NbMines++;//Sinon, il y a déjà un M et il faut faire un tour de plus } } } //////////////////////////////////////// // FONCTION AFFICHER LA GRILLE DE JEU // //////////////////////////////////////// void AfficheJeu() { printf("nn"); printf(" | 1 2 3 4 5 6 7 8 9 10n"); printf("___|______________________________n"); for(i=0;i<10;i++) { if(i<9) printf(" %d | ",i+1); else printf("%d | ",i+1); for(j=0;j<10;j++) { printf("%c ",JEU[i][j]); } printf("n"); } } ///////////////////////////////////////////// // FONCTION CALCULER LE NB DE MINES AUTOUR // ///////////////////////////////////////////// int NbMinesAutour() { N=0; if(MINES[i][j]=='M') { printf("Vous avez perdu !!!nn"); printf(" | 1 2 3 4 5 6 7 8 9 10n"); printf("___|______________________________n"); for(i=0;i<10;i++) { if(i<9) printf(" %d | ",i+1); else printf("%d | ",i+1); for(j=0;j<10;j++) printf("%c ",MINES[i][j]); printf("n"); } } else { if (i==0) { if (j==0) { if(MINES[i][j+1]=='M') N++; if(MINES[i+1][j]=='M') N++; if(MINES[i+1][j+1]=='M') N++; } else { if(j==10) { if(MINES[i][j-1]=='M') N++; if(MINES[i+1][j-1]=='M') N++; if(MINES[i+1][j]='M') N++; } else { if(MINES[i][j-1]=='M') N++; if(MINES[i][j+1]=='M') N++; if(MINES[i+1][j-1]=='M') N++; if(MINES[i+1][j]=='M') N++; if(MINES[i+1][j+1]=='M') N++; } } } else { if (i==10) { if (j==0) { if(MINES[i-1][j]=='M') N++; if(MINES[i-1][j+1]=='M') N++; if(MINES[i][j+1]=='M') N++; } else { if(j==10) { if(MINES[i-1][j-1]=='M') N++; if(MINES[i-1][j]=='M') N++; if(MINES[i][j-1]=='M') N++; } else { if(MINES[i-1][j-1]=='M') N++; if(MINES[i-1][j]=='M') N++; if(MINES[i-1][j+1]=='M') N++; if(MINES[i][j-1]=='M') N++; if(MINES[i][j+1]=='M') N++; } } } else { if(MINES[i-1][j-1]=='M') N++; if(MINES[i-1][j]=='M') N++; if(MINES[i-1][j+1]=='M') N++; if(MINES[i][j-1]=='M') N++; if(MINES[i][j+1]=='M') N++; if(MINES[i+1][j-1]=='M') N++; if(MINES[i+1][j]=='M') N++; if(MINES[i+1][j+1]=='M') N++; } } return(N); } } ////////////////////////////////////////////////////////// // FONCTION JOUER dévoiler une case ou placer un drapeau// ////////////////////////////////////////////////////////// void Jouer() { char NbMinesTxt[2]; // nombre de mines aux alentours switch (choix) { case 1 : //fonction devoile mines autour NbMinesAutour(); if (N!=0)//Il y a des mines autour { printf("%dnn",N); sprintf(NbMinesTxt,"%d",N); JEU[i][j]=NbMinesTxt[0]; } else//Il n'y a pas de mines autour { JEU[i][j]='0'; } break; case 2 : JEU[i][j]='D'; break; } } /////////////////////////////////////////////////////////////// // FONCTION CHOISIR On demande au joueur de choisir une case // /////////////////////////////////////////////////////////////// void Choisir() { printf("nnVeuillez entrer la case choisie (numero de ligne [espace] numero de colonne):t"); scanf("%d %d",&i,&j); printf("Vous avez choisi la case (%d,%d). Que voulez-vous faire ?n",i,j); i=i-1; j=j-1; printf("t1. Decouvrir une casen");// Demander au joueur ce qu'il veut faire printf("t2. Placer un drapeau"); do { printf("ttVotre choix : "); scanf("%d",&choix); } while (choix<0 || choix>2); } //////////////////////////////////////////////////////////////////////////////// int main() { int c;//compteur srand(time(NULL)); //Afficher le début du jeu printf(" ________________________________n"); printf("| |n"); printf("| Jeu du demineur |n"); printf("|________________________________|nn"); Init(); do { printf("nCombien de mines voulez-vous ?nn"); scanf("%d",&NbMines); } while(NbMines>=30); printf("D'accord, vous avez choisi de jouer avec %d minesnn",NbMines); PlaceMines(); printf("Voici la grille des mines pour controle:n"); for(i=0;i<10;i++) { printf("ttt"); for(j=0;j<10;j++) { printf("%c ",MINES[i][j]); } printf("n"); } printf("nnVoici votre grille : A vous de jouer !nn"); AfficheJeu(); for(c=0;c<(100-NbMines);c++) { Choisir(); Jouer(); AfficheJeu(); } printf("nnttBravo vous avez gagné !"); system("pause"); return 0; }

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

midnightweb
Nouveau membre
Inscrit : 08/06/2009
Messages : 11
Message
#163695
Posté le 08/06/09 à 20:42
Je pense que le problème est soit dans la fonction NbMinesAutour sit dans la fonction Jouer.
Je voudrais que lorsqu'il y a un '0', tous les '0' autour s'affichent
Je me doute que je dois boucler mais toutes mes tentatives ont échoué.
Quant à la récursivité de la fonction, j'ai essayé aussi mais je ne dois pas l'appeler au bon endroit
Merci pour votre aide Je pense que le problème est soit dans la fonction NbMinesAutour sit dans la fonction Jouer.
Je voudrais que lorsqu'il y a un '0', tous les '0' autour s'affichent
Je me doute que je dois boucler mais toutes mes tentatives ont échoué.
Quant à la récursivité de la fonction, j'ai essayé aussi mais je ne dois pas l'appeler au bon endroit
Merci pour votre aide

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

midnightweb
Nouveau membre
Inscrit : 08/06/2009
Messages : 11
Message
#163701
Posté le 08/06/09 à 21:54
Voici ma dernière tentative :
Mais ça buggue toujours dans la fonction Jouer !
Peut-être que demain je ferai mieux Smiley


#include <stdio.h> #include <stdlib.h> #include <time.h> char JEU[10][10];//grille de jeu int i,j;//i les lignes, j les colonnes char MINES[10][10];//la grille avec les mines int N;//Nombre de mines autour int NbMines;//le nombre de mines choisi par le joueur int choix;//le choix effectué par le joueur pour découvrir ou placer un drapeau ////////////////////////////// // FONCTION INITIALISATION /// ////////////////////////////// void Init() { for(i=0;i<10;i++) { for(j=0;j<10;j++) { JEU[i][j]='-';//' 'implique case cachée MINES[i][j]='0'; } } } /////////////////////////////// // FONCTION PLACER LES MINES // /////////////////////////////// void PlaceMines() { int CompteMines;//compteur de mines for (CompteMines=0;CompteMines<NbMines;CompteMines++) { i=rand()%10;//on choisit la ligne de manière aléatoire j=rand()%10;//on choisit la colonne de manière aléatoire if(MINES[i][j]=='0')//On vérifie que la case est libre { MINES[i][j]='M';//on place un M pour indiquer qu'il y a une mine } else { NbMines++;//Sinon, il y a déjà un M et il faut faire un tour de plus } } } //////////////////////////////////////// // FONCTION AFFICHER LA GRILLE DE JEU // //////////////////////////////////////// void AfficheJeu() { printf("nn"); printf(" | 1 2 3 4 5 6 7 8 9 10n"); printf("___|______________________________n"); for(i=0;i<10;i++) { if(i<9) printf(" %d | ",i+1); else printf("%d | ",i+1); for(j=0;j<10;j++) { printf("%c ",JEU[i][j]); } printf("n"); } } ///////////////////////////////////////////// // FONCTION CALCULER LE NB DE MINES AUTOUR // ///////////////////////////////////////////// int NbMinesAutour() { N=0; if(MINES[i][j]=='M') { printf("Vous avez perdu !!!nn"); printf(" | 1 2 3 4 5 6 7 8 9 10n"); printf("___|______________________________n"); for(i=0;i<10;i++) { if(i<9) printf(" %d | ",i+1); else printf("%d | ",i+1); for(j=0;j<10;j++) printf("%c ",MINES[i][j]); printf("n"); } } else { if (i==0) { if (j==0) { if(MINES[i][j+1]=='M') N++; if(MINES[i+1][j]=='M') N++; if(MINES[i+1][j+1]=='M') N++; } else { if(j==10) { if(MINES[i][j-1]=='M') N++; if(MINES[i+1][j-1]=='M') N++; if(MINES[i+1][j]='M') N++; } else { if(MINES[i][j-1]=='M') N++; if(MINES[i][j+1]=='M') N++; if(MINES[i+1][j-1]=='M') N++; if(MINES[i+1][j]=='M') N++; if(MINES[i+1][j+1]=='M') N++; } } } else { if (i==10) { if (j==0) { if(MINES[i-1][j]=='M') N++; if(MINES[i-1][j+1]=='M') N++; if(MINES[i][j+1]=='M') N++; } else { if(j==10) { if(MINES[i-1][j-1]=='M') N++; if(MINES[i-1][j]=='M') N++; if(MINES[i][j-1]=='M') N++; } else { if(MINES[i-1][j-1]=='M') N++; if(MINES[i-1][j]=='M') N++; if(MINES[i-1][j+1]=='M') N++; if(MINES[i][j-1]=='M') N++; if(MINES[i][j+1]=='M') N++; } } } else { if(MINES[i-1][j-1]=='M') N++; if(MINES[i-1][j]=='M') N++; if(MINES[i-1][j+1]=='M') N++; if(MINES[i][j-1]=='M') N++; if(MINES[i][j+1]=='M') N++; if(MINES[i+1][j-1]=='M') N++; if(MINES[i+1][j]=='M') N++; if(MINES[i+1][j+1]=='M') N++; } } return(N); } } ////////////////////////////////////////////////////////// // FONCTION JOUER dévoiler une case ou placer un drapeau// ////////////////////////////////////////////////////////// void Jouer() { char NbMinesTxt[2]; // nombre de mines aux alentours switch (choix) { case 1 : NbMinesAutour(); if (N!=0)//Il y a des mines autour { printf("%dnn",N); sprintf(NbMinesTxt,"%d",N); JEU[i][j]=NbMinesTxt[0]; } else//Il n'y a pas de mines autour { JEU[i][j]='0'; for(i=i-1;i<i+2;i++) { for(j=j-1;j<j+2;j++) NbMinesAutour(); } } break; case 2 : JEU[i][j]='D'; break; } } /////////////////////////////////////////////////////////////// // FONCTION CHOISIR On demande au joueur de choisir une case // /////////////////////////////////////////////////////////////// void Choisir() { printf("nnVeuillez entrer la case choisie (numero de ligne [espace] numero de colonne):t"); scanf("%d %d",&i,&j); printf("Vous avez choisi la case (%d,%d). Que voulez-vous faire ?n",i,j); i=i-1; j=j-1; printf("t1. Decouvrir une casen"); printf("t2. Placer un drapeau"); do { printf("ttVotre choix : "); scanf("%d",&choix); } while (choix<0 || choix>2); } //////////////////////////////////////////////////////////////////////////////// int main() { int c;//compteur srand(time(NULL)); //Afficher le début du jeu printf(" ________________________________n"); printf("| |n"); printf("| Jeu du demineur |n"); printf("|________________________________|nn"); Init(); do { printf("nCombien de mines voulez-vous ?nn"); scanf("%d",&NbMines); } while(NbMines>=30); printf("D'accord, vous avez choisi de jouer avec %d minesnn",NbMines); PlaceMines(); printf("Voici la grille des mines pour controle:n"); for(i=0;i<10;i++) { printf("ttt"); for(j=0;j<10;j++) { printf("%c ",MINES[i][j]); } printf("n"); } printf("nnVoici votre grille : A vous de jouer !nn"); AfficheJeu(); for(c=0;c<(100-NbMines);c++) { Choisir(); Jouer(); AfficheJeu(); } printf("nnttBravo vous avez gagné !"); system("pause"); return 0; }

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Spirit
Superviseur :
- C & C++
Modérateur :
- PHP
- Javascript
- MySQL
Avatar de Spirit
Inscrit : 07/04/2004
Messages : 2167
Message
#163710
Posté le 09/06/09 à 00:16
je viens de mater le code, c'est très très moche les variables globales pour tout ! et c'est juste interdit d'en utiliser dans 2 fonctions différentes pour boucler !
et c'est sûrement la cause de ta boucle infinie... (edit : c'est la cause de la boucle infinie dans Jouer )

mais une idée comme ça, ce que je ferais personnellement en fait
tu as une fonction qui compte le nombre de mines autour d'une case choisie

tu sais quelle case le joueur choisit
si y'a 0 mines sur cette case =>
tu lances la fonction pour découvrir les mines sur les 8 cases autour
==> récursivité !

il faut commencer par tout recoder en passant par des variables locales uniquement, les seules variables globales dont tu as besoin sont MINES, JEU et NbMines (et encore, mais plus simple pour commencer)
__________________________
Spirit - modérateur casu ^-^'

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

midnightweb
Nouveau membre
Inscrit : 08/06/2009
Messages : 11
Message
#163714
Posté le 09/06/09 à 07:13
Ok, je me remets au boulot Smiley

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM C



    PAGES : [1] [2] [3]



.: Site Web développé par Yann Pingot et l'équipe MPWG avec www.evolvia-web.com :.