URL: https://linuxfr.org/forums/programmation-c--2/posts/programmer-un-d%C3%A9mineur-en-c Title: Programmer un démineur en C Authors: midnightweb Date: 2009年06月09日T01:38:34+02:00 Tags: Score: 1 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. Et là ça buggue : j'ai des '0' à l'infini. Je pense que le souci est dans la fonction 'Jouer' #include #include #include 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() { £spaces£ £/spaces£for(i=0;i<10;i++) £spaces£ £/spaces£{ £spaces£ £/spaces£for(j=0;j<10;j++) £spaces£ £/spaces£{ £spaces£ £/spaces£JEU[i][j]='-';//' 'implique case cachée £spaces£ £/spaces£MINES[i][j]='0'; £spaces£ £/spaces£} £spaces£ £/spaces£} } /////////////////////////////// // FONCTION PLACER LES MINES // /////////////////////////////// void PlaceMines() { £spaces£ £/spaces£int CompteMines;//compteur de mines £spaces£ £/spaces£for (CompteMines=0;CompteMines2); } //////////////////////////////////////////////////////////////////////////////// int main() { £spaces£ £/spaces£int c;//compteur £spaces£ £/spaces£srand(time(NULL)); £spaces£ £/spaces£ £spaces£ £/spaces£//Afficher le début du jeu £spaces£ £/spaces£printf(" ________________________________\n"); £spaces£ £/spaces£printf("| |\n"); £spaces£ £/spaces£printf("| Jeu du demineur |\n"); £spaces£ £/spaces£printf("|________________________________|\n\n"); £spaces£ £/spaces£ £spaces£ £/spaces£Init(); £spaces£ £/spaces£do £spaces£ £/spaces£{ £spaces£ £/spaces£printf("\nCombien de mines voulez-vous ?\n\n"); £spaces£ £/spaces£scanf("%d",&NbMines); £spaces£ £/spaces£} £spaces£ £/spaces£while(NbMines>=30); £spaces£ £/spaces£printf("D'accord, vous avez choisi de jouer avec %d mines\n\n",NbMines); £spaces£ £/spaces£PlaceMines(); £spaces£ £/spaces£printf("Voici la grille des mines pour controle:\n"); £spaces£ £/spaces£for(i=0;i<10;i++) £spaces£ £/spaces£{ £spaces£ £/spaces£printf("\t\t\t"); £spaces£ £/spaces£for(j=0;j<10;j++) £spaces£ £/spaces£{ £spaces£ £/spaces£printf("%c ",MINES[i][j]); £spaces£ £/spaces£} £spaces£ £/spaces£printf("\n"); £spaces£ £/spaces£} £spaces£ £/spaces£ £spaces£ £/spaces£printf("\n\nVoici votre grille : A vous de jouer !\n\n"); £spaces£ £/spaces£AfficheJeu(); £spaces£ £/spaces£ £spaces£ £/spaces£for(c=0;c<(100-nbmines);c++) £spaces£ £/spaces£{ £spaces£ £/spaces£Choisir(); £spaces£ £/spaces£Jouer(); £spaces£ £/spaces£AfficheJeu(); £spaces£ £/spaces£} £spaces£ £/spaces£printf("\n\n\t\tBravo vous avez gagné !"); £spaces£ £/spaces£ £spaces£ £/spaces£system("pause"); £spaces£ £/spaces£return 0; }

AltStyle によって変換されたページ (->オリジナル) /