Bonjour,

je vous contacte car je débute en programmation et je suis les exercices en C d'un autre site et je coince sur le jeu du + ou du - avec ses amélioration. Mon projet compile bien, j'arrive à me déplacer entre les différents menu mais je n'arrive pas à sortir de ma fonction "difficultes", quand je lance le jeu, il tourne sans cesse. J'imagine qu'il y a une erreur au niveau de mes fins d'instructions mais je bloque vraiment.

Merci d'avance pour votre temps et votre aide !

voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu();
void findNbr(int MIN, int MAX, int nombreMystere);
void multijoueurs();
void difficultes(int level);
 
void menu(){
	system("cls");
	int answerMenu = 0;
	int nombreMystere = 0;
	nombreMystere = (rand() % (100 - 1 + 1)) + 1;
 
	printf("============ Menu ============ \n");
	printf("1. Partie rapide \n");
	printf("2. Nombre de joueurs \n");
	printf("3. Niveaux de difficultes \n");
	printf("============================== \n");
 
	scanf_s("%d", &answerMenu);
 
	if (answerMenu == 1){
		findNbr(1,100, nombreMystere);
	}
	else if (answerMenu == 2){
		multijoueurs();
	}
	else if (answerMenu == 3){
		difficultes(0);
	}
	else {
		menu();
	}
}
 
void difficultes(int level){
	system("cls");
	int hardLevel = 0;
	int nbr_mystere = 0;
 
	do{
		printf("choississez votre difficultes \n");
		printf("1 - 1 a 100 \n\n");
		printf("2 - 1 a 1000 \n\n");
		printf("3 - 1 a 10 000\n\n");
		printf("4 - Retour menu\n\n");
 
		// si il y a un joueur
		if (level == 0){
			do {
				scanf_s("%d \n", &hardLevel);
 
				if (hardLevel == 1){
					findNbr(1, 100, nbr_mystere);
				}
				else if (hardLevel == 2){
					findNbr(1, 1000, nbr_mystere);
				}
				else if (hardLevel == 3){
					findNbr(1, 10000, nbr_mystere);
				}
				else if (hardLevel == 4){
					menu();
				}
				else{
					printf("veuillez entrer une valeure correcte");
				}
			} while (hardLevel != 1 && hardLevel != 2 && hardLevel != 3 && hardLevel != 4);
		}
		// si il y a deux joueurs :
		else if (level == 1){
			do{
				scanf_s("%d \n", &hardLevel);
 
				if (hardLevel == 1){
					printf("Choisissez le nombre a deviner : \n");
					scanf_s("%d", &nbr_mystere);
					findNbr(1, 100,nbr_mystere);
				}
				else if (hardLevel == 2){
					scanf_s("%d", &nbr_mystere);
					findNbr(1, 1000, nbr_mystere);
				}
				else if (hardLevel == 3){
					scanf_s("%d", &nbr_mystere);
					findNbr(1, 10000, nbr_mystere);
				}
				else if (hardLevel == 4){
					menu();
				}
				else{
					printf("veuillez entrer une valeure correcte");
				}
		} while (hardLevel != 1 && hardLevel != 2 && hardLevel != 3 && hardLevel != 4);
 
		}
		else{
			printf("il y a un problème dans la matrix");
		}
	} while (level != 0 && level != 1);
}
 
void multijoueurs(){
	system("cls");
	int nbr_joueurs = 0;
 
	do {
		printf("Combien de joueurs ? \n");
		printf("1 - Un joueur \n");
		printf("2 - Deux joueurs \n");
		printf("3 - Retourner au menu \n");
 
		scanf_s("%d", &nbr_joueurs);
 
		if (nbr_joueurs == 1){
			difficultes(0); 
		}
		else if (nbr_joueurs == 2){
			difficultes(1);
		}
		else if (nbr_joueurs == 3){
			menu();
		}
		else{
			printf("test else nbrjoueurs \n");
		}
	} while (nbr_joueurs != 1 && nbr_joueurs != 2 && nbr_joueurs != 3);
 
}
 
 
void findNbr(int MIN, int MAX, int nombreMystere){ 
	system("cls");
 
	int nombrePlayer = 0;
 
	int compteur = 0;
	int continuerPartie = 1;
 
	srand(time(NULL));
 
	while (continuerPartie) {
 
		printf("%d \n\n", nombreMystere);
 
		do {
			printf("Entre un nombre : \n");
			scanf_s("%d", &nombrePlayer);
			compteur++;
			if (nombrePlayer < nombreMystere){
				printf("C'est plus, continue ! \n");
			}
			else if (nombrePlayer > nombreMystere){
				printf("C'est moins, continue ! \n");
			}
			else {
				printf("Bravo ! Tu as trouve en %d coup(s)! \n ", compteur);
			}
		} while (nombrePlayer != nombreMystere);
 
		printf("Entrez 1 pour continuer ou 0 pour arreter  : \n");
		scanf_s("%d", &continuerPartie);
		if (continuerPartie == 1){
			menu();
		}
		else
			exit(EXIT_SUCCESS);
	}
}
 
int main(){
 
	menu();
	return (0);
}