Bonjour à tous je suis nouveau sur ce forum et j'arrive déjà, histoire de bien commencer, avec un problème.
Voilà je suis des cours par correspondance à la fac, parmi lesquelles un sur java et là je bloque sur un tp où on me demande ceci:



Saisie et validation des informations
Le programme devra permettre de saisir au clavier les informations suivantes et de les valider suivant les règles définies:

Informations du joueur.
Nom: Une chaine de caractère dont la longueur est comprise entre 3 et 256 caractères.
Prénom: Une chaine de caractère dont la longueur est comprise entre 3 et 256 caractères.
Âge: entier compris entre 10 et 90 inclusivement.
Les informations sur les parties de Sudoku jouées
Pour chaque partie de Sudoku, voici les informations demandées:
Niveau de difficulté (facile, moyen ou difficile)
Partie gagnée ou perdue?
Si gagné : temps de résolution de la grille.


Traitement et affichage des résultats
Le programme devra calculer les statistiques suivantes:

Calculer pour chaque niveau le nombre de parties non terminées, le nombre de parties gagnées, le temps de résolution moyen et le taux de réussite du joueur.
Le temps de résolution moyen constitue la moyenne de temps de résolution des parties gagnées par le joueur.
Le taux de réussite constitue le pourcentage du nombre de parties gagnées par rapport au nombre de parties totales.
Calculer les statistiques globales qui représentent les statistiques de tous les niveaux de jeu.



Bon jusque la ça va j'ai créé le programme en question, il est quasiment terminé mais j'ai encore des petits soucis.

Le programme répète la boucle où il est demandé si le joueur à gagné, ou pas.
À la fin quand le joueur doit choisir si sortir du programme et afficher les stats ou au contraire enregistrer d'autres parties et bien dans tout les cas il m'affiche les stats .

Ps: mon niveau est plus que basique , la dernière chose qu j'ai étudié ce sont les boucles et c'est pour cela que je n'ai pas pu utiliser les tableau ce qui m'aurait certainement facilité .

Voici mon programme:
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
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
import java.util.Scanner;
 
public class sudokupart1 {
 
 
 
 
 
	static Scanner sudoku = new Scanner (System.in); 
 
	public static void main(String[] args){ 
 
	//initalisation variables 
	     int Sudoku = 0;// niveau de jeu 
	     int resultat = 0;// la condition, remplie ou pas 
	     int nbrpartie_faciles = 1;// nombre de parties faciles jouées 
	     int nbrpartie_moyennes = 1;// nombre de parties moyennes jouées 
	     int nbrpartie_dificiles = 1;// nombre de parties dificiles jouées 
	     int nbrpartiefaciles_terminées = 1;// nombre de parties faciles gagnées 
	     int nbrpartiemoyennes_terminées = 1;// nombre de parties moyennes gagnées 
	     int nbrpartiedificiles_terminées = 1;// nombre de parties dificiles gagnées 
	     int tauxreussite_facile = nbrpartiefaciles_terminées/nbrpartie_faciles*100;// taux de réussite des parties de niveau facile 
	     int tauxreussite_moyen = nbrpartiemoyennes_terminées/nbrpartie_moyennes*100;// taux de réussite des parties de niveau moyen 
	     int tauxreussite_dificile = nbrpartiedificiles_terminées/nbrpartie_dificiles*100;// taux de réussite des parties de niveau dificile 
	     int tempsreso_facile = 0;// temps de resolution d'une partie de niveau facile 
	     int tempsreso_moyen = 0;// temps de resolution d'une partie de niveau moyen 
	     int tempsreso_dificile = 0;// temps de resolution d'une partie de niveau dificile 
	     int tempsmoyreso_facile = tempsreso_facile/nbrpartiefaciles_terminées;//temps de resolution moyen d'une partie de niveau facile 
	     int tempsmoyreso_moyen = tempsreso_moyen/nbrpartiemoyennes_terminées;// temps de resolution moyen d'une partie de niveau moyen 
	     int tempsmoyreso_dificile = tempsreso_dificile/nbrpartiedificiles_terminées;// temps de resolution moyen d'une partie de niveau dificile 
	     int nbrpartieperdue = (nbrpartie_faciles+nbrpartie_moyennes+nbrpartie_dificiles)-(nbrpartiefaciles_terminées+nbrpartiemoyennes_terminées+nbrpartiedificiles_terminées);// nombre de parties perdues 
	     int nbrpartiegagnée = nbrpartiefaciles_terminées+nbrpartiemoyennes_terminées+nbrpartiedificiles_terminées;// nombre de parties gagnées 
	     int nbrpartiejouée = nbrpartie_faciles+nbrpartie_moyennes+nbrpartie_dificiles;// nombre de parties jouées 
	     int tempsresomoy = (tempsmoyreso_facile+tempsmoyreso_moyen+tempsmoyreso_dificile)/(nbrpartiefaciles_terminées+nbrpartiemoyennes_terminées+nbrpartiedificiles_terminées);// temps de resolution moyen 
	     String afficheur1 = null; 
	    	String afficheur2 = null; 
	    	String afficheur3 = null; 
 
	           //affichage message de bienvenue et enregistrement du nom, prénom, age 
 
	           System.out.println ("Bonjour, veuillez suivre les informations qui s'afficheront sur votre écran");//affichage message de bienvenue 
 
	          int condition_nom = 0; //initialisation variables pour la condition sur la limite de caractères
	          while (condition_nom == 0){ 
 
	                                 Scanner Unscanner1 = new Scanner(System.in);//initialisation du scanner correspondant 
 
	                                   System.out.print(" Entrez votre nom : "); 
 
	                                     afficheur1 = Unscanner1.nextLine();//extraction du contenu de la dernière ligne tapée par l'utilisateur 
 
 
	                                     if(afficheur1.length()<3){ // si le nom comporte moin de 3 caractères
 
	                                         System.out.println("Vous devez inserez un nom compris entre 3 et 256 caractères"); 
 
	                                         condition_nom = 0; // variable à zero tant que la condition n'est pas remplie
 
	                                         } 
	                                   else if (afficheur1.length()>256){ // si le nom comporte plus de 256 caractères
 
	                                         System.out.println("Vous devez inserez un nom compris entre 3 et 256 caractères"); 
 
	                                         condition_nom = 0; // variable à zero tant que la condition n'est pas remplie
	                                                                                                        } 
	                                 else {condition_nom = 1;} // quand la condition est remplie passage à 1 et sortie de la boucle
	                                          }   
 
 
 
	                              int condition_nom1 = 0;//initialisation variables pour la condition sur la limite de caractères 
 
	                              while (condition_nom1 == 0){ 
 
	                                                Scanner Unscanner2 = new Scanner(System.in); //initialisation du scanner correspondant 
 
	                                                  System.out.print(" Entrez votre Prénom : "); 
 
	                                                    afficheur2 = Unscanner2.nextLine(); //extraction du contenu de la dernière ligne tapée par l'utilisateur 
 
 
	                                                    if(afficheur2.length()<3){ // si le prénom comporte moin de 3 caractères
 
	                                                        System.out.println("Vous devez inserez un nom compris entre 3 et 256 caractères"); 
 
	                                                        condition_nom1 = 0; // variable à zero tant que la condition n'est pas remplie
 
	                                                        } 
	                                                  else if (afficheur2.length()>256){ // si le prénom comporte plus de 256 caractères
 
	                                                        System.out.println("Vous devez inserez un nom compris entre 3 et 256 caractères"); 
 
	                                                        condition_nom1 = 0; // variable à zero tant que la condition n'est pas remplie
 
	                                                                        } 
	                                                else {condition_nom1 = 1;} // quand la condition est remplie passage à 1 et sortie de la boucle
	                                                      }   
 
 
	                                          int condition_age = 0; 
 
	                                          while (condition_age == 0){ 
 
	                                                            Scanner Unscanner3 = new Scanner(System.in);//initialisation du scanner correspondant 
 
	                                                              System.out.print(" Entrez votre âge :"); 
 
	                                                                 afficheur3 = Unscanner3.nextLine();//extraction du contenu de la dernière ligne tapée par l'utilisateur     
 
 
	                                                                 if(Integer.parseInt(afficheur3) < 10){ // si le nombre est inferieur à 10
	                                                                     System.out.println("Vous devez inserez un nombre compris entre 10 et 90"); 
	                                                                    condition_age = 0; // variable à zero tant que la condition n'est pas remplie
	                                                                     } 
	                                                                  else if (Integer.parseInt(afficheur3) > 90){ // si le nombre est superieur à 90
	                                                                     System.out.println("Vous devez inserez un nom compris entre 10 et 90"); 
	                                                                     condition_age = 0; // variable à zero tant que la condition n'est pas remplie
	                                                                                     } 
	                                                                   else {condition_age = 1;} // quand la condition est remplie passage à 1 et sortie de la boucle
	                                                                   }   
 
 
 
 
 
	                String reponse="O";                     
 
	               while (reponse.equals('O'));// quand la réponse égale à O alors lancement de la boucle 
	               { 
 
 
	                         System.out.println("Veuillez choisir un niveau de jeu:"); 
	                          System.out.println (" -----------------------------------");               
	                           System.out.println (" Entrez 1 pour Sudoku Debutant"); 
	                   System.out.println (" Entrez 2 pour Sudoku Intermediaire"); 
	                    System.out.println (" Entrez 3 pour Sudoku Expert"); 
	                     System.out.println (" -----------------------------------");   
 
	                Sudoku = sudoku.nextInt();// extraction de la réponse 
 
 
 
	             if(Sudoku ==1){// si le niveau choisi est égale à 1 alors lancement de la boucle corespondante 
 
	                            nbrpartie_faciles++; // incrémentaion du nombre parties faciles       
 
	                  System.out.println("Avez-vous gagné la partie?"); 
 
	                  int choix1 = 4;
 
	                  switch (choix1)
 
	                  {
 
	                    Scanner Unscanner4 = new Scanner(System.in);//initialisation du scanner correspondant 
 
	                      System.out.print(" Tapez 4 pour oui "); 
 
	                         System.out.print(" Tapez 5 pour non "); 
 
	                            Unscanner4.nextLine(); //extraction du contenu de la dernière ligne tapée par l'utilisateur 
 
	                        if(choix1 == 4)// si le joueur a gagné la partie alors 
 
 
 
                                nbrpartiefaciles_terminées++;// incrémentation du nombre de parties faciles gagnées                                     
 
                              tauxreussite_facile = nbrpartiefaciles_terminées/nbrpartie_faciles*100;// calcul du taux de réussite   
 
 
	                          tauxreussite_facile = nbrpartiefaciles_terminées-1/nbrpartie_faciles*100;//sinon calcul du taux de reussite en ajoutant un echec 
 
	                        System.out.println("En combien de temps vous avez remplie la grille?"); 
 
                         Scanner Unscanner5 = new Scanner(System.in);//initialisation du scanner correspondant 
 
                      System.out.println("Donnez la réponse en minutes"); 
 
                   String afficheur5 = Unscanner5.nextLine();//extraction du contenu de la dernière ligne tapée par l'utilisateur 
 
                     tempsreso_facile = (nbrpartiefaciles_terminées * tempsreso_facile) + Integer.parseInt(afficheur5) / ( nbrpartiefaciles_terminées); //calcul du temps de résolution 
                    break; 
 
	              if (choix1 == 5)
	            	  break;
	             }
	                  {
 
 
 
 
	               if(Sudoku ==2){// si le niveau choisi est égale à 2 alors lancement de la boucle corespondante 
 
	                              nbrpartie_moyennes++; 
 
 
	                    System.out.println("Avez-vous gagné la partie?"); 
 
	                      Scanner Unscanner6 = new Scanner(System.in);//initialisation du scanner correspondant 
 
	                        System.out.print(" Tapez 4 pour oui ");
 
	                           System.out.print(" Tapez 5 pour non "); 
 
	                             Unscanner6.nextLine(); //extraction du contenu de la dernière ligne tapée par l'utilisateur 
 
	                          if(resultat ==4)// si le joueur a gagné la partie alors 
 
                                  nbrpartiemoyennes_terminées++;// incrémentation du nombre de parties moyennes gagnées                                   
 
                                tauxreussite_moyen = nbrpartiemoyennes_terminées/nbrpartie_moyennes*100;// calcul du taux de réussite 
 
	               } 
 
		           else { 
 
		                        tauxreussite_moyen = nbrpartiemoyennes_terminées-1/nbrpartie_moyennes*100;//sinon calcul du taux de reussite en ajoutant un echec 
 
	                          System.out.println("En combien de temps vous avez remplie la grille?"); 
 
	                       Scanner Unscanner7 = new Scanner(System.in);//initialisation du scanner correspondant 
 
	                    System.out.println("Donnez la réponse en minutes"); 
 
	                 String afficheur7 = Unscanner7.nextLine();  //extraction du contenu de la dernière ligne tapée par l'utilisateur  
 
	                   tempsreso_moyen = (nbrpartiemoyennes_terminées * tempsreso_moyen) + Integer.parseInt(afficheur7) / ( nbrpartiemoyennes_terminées);//calcul du temps de résolution 
 
		             }
 
 
 
	               if(Sudoku ==3){// si le niveau choisi est égale à 3 alors lancement de la boucle corespondante 
 
	                              nbrpartie_dificiles++;// incrémentaion du nombre parties dificiles   
 
 
	                    System.out.println("Avez-vous gagné la partie?"); 
 
	                      Scanner Unscanner8 = new Scanner(System.in);//initialisation du scanner correspondant 
 
	                        System.out.print(" Tapez 4 pour oui ");   
 
	                           System.out.print(" Tapez 5 pour non "); 
 
	                             Unscanner8.nextLine();//extraction du contenu de la dernière ligne tapée par l'utilisateur
 
	                          if(resultat ==4)// si le joueur a gagné la partie alors
 
	                              nbrpartiedificiles_terminées++;// incrémentation du nombre de parties dificiles gagnées                                   
 
	                            tauxreussite_dificile = nbrpartiedificiles_terminées/nbrpartie_dificiles*100;// calcul du taux de réussite 
 
	               } 
 
		           else { 
 
		                        tauxreussite_dificile = nbrpartiedificiles_terminées-1/nbrpartie_dificiles*100;//sinon calcul du taux de reussite en ajoutant un echec
 
	                          System.out.println("En combien de temps vous avez remplie la grille?"); 
 
	                       Scanner Unscanner9 = new Scanner(System.in);//initialisation du scanner correspondant 
 
	                    System.out.println("Donnez la réponse en minutes"); 
 
	                 String afficheur9 = Unscanner9.nextLine();//extraction du contenu de la dernière ligne tapée par l'utilisateur 
 
	                   tempsreso_dificile= (nbrpartiedificiles_terminées * tempsreso_dificile) + Integer.parseInt(afficheur9) / ( nbrpartiedificiles_terminées);//calcul du temps de résolution 
 
 
	                 } 
 
 
 
	             System.out.println("Voulez-vous insérer d'autres parties? (O/N)"); //extraction de la reponse
 
	               Scanner Unscanner10 = new Scanner(System.in); //si la reponse est non alors sortie de la boucle 
 
	                 reponse = Unscanner10.nextLine();           
 
 
	           //et affichage des résultats des variables              
 
 
 
	               } 
 
	             System.out.println("*****************************Statistiques Sudoku*****************************"); 
 
	             System.out.println("-------Informations personnelles"); 
	             System.out.println("Nom:"+" "+afficheur1+"."); 
	             System.out.println("Prénom:"+""+afficheur2+"."); 
	             System.out.println("Âge:"+""+afficheur3+"ans."); 
 
 
	             System.out.println("---------------------------Statistiques détaillées--------------------------"); 
 
	             System.out.println("------Statistiques niveau facile "); 
	             System.out.println("Nombre de parties non terminées: "+String.valueOf(nbrpartie_faciles-nbrpartiefaciles_terminées)); 
	             System.out.println("Nombre de parties gagnées: "+nbrpartiefaciles_terminées+" "+"Temps de résolution moyen: "+tempsmoyreso_facile); 
	             System.out.println("Nombre total de parties jouées: "+nbrpartie_faciles); 
	             System.out.println("Taux de réussite du joueur : "+tauxreussite_facile); 
 
	             System.out.println("------Statistiques niveau moyen "); 
	             System.out.println("Nombre de parties non terminées: "+String.valueOf(nbrpartie_moyennes-nbrpartiemoyennes_terminées)); 
	             System.out.println("Nombre de parties gagnées: "+nbrpartiemoyennes_terminées+" "+"Temps de résolution moyen: "+tempsmoyreso_moyen); 
	             System.out.println("Nombre total de parties jouées: "+nbrpartie_moyennes); 
	             System.out.println("Taux de réussite du joueur : "+tauxreussite_moyen); 
 
	             System.out.println("------Statistiques niveau dificile "); 
	             System.out.println("Nombre de parties non terminées: "+String.valueOf(nbrpartie_dificiles-nbrpartiedificiles_terminées)); 
	             System.out.println("Nombre de parties gagnées: "+nbrpartiedificiles_terminées+" "+"Temps de résolution moyen: "+tempsmoyreso_dificile); 
	             System.out.println("Nombre total de parties jouées: "+nbrpartie_dificiles); 
	             System.out.println("Taux de réussite du joueur : "+tauxreussite_dificile); 
 
 
	             System.out.println("---------------------------Statistiques globales--------------------------"); 
 
	             System.out.println("Nombre de parties perdues: "+nbrpartieperdue); 
	             System.out.println("Nombre de parties gagnées: "+nbrpartiegagnée+" "+"Temps de résolution moyen: "+tempsresomoy); 
	             System.out.println("Nombre total de parties jouées: "+nbrpartiejouée); 
	             System.out.println("Taux de réussite du joueur : "+(nbrpartiegagnée)/(nbrpartiejouée)*100);
 
 
 
 
 
	            }