Bonjour,

J'étudie actuellement dans un cours de java. j'ai écris mon premier programme pour répondre aux exigences de l’énoncé ci-après.
Après relecture de mon programme je ne comprend pas pour il ne fonctionne pas.
Je demande donc votre aide pour m'expliquer pourquoi.

Merci d'avance.

Phil

Enoncé :

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.
Mon code :

Tp2.java
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
package tp2;
 
import java.util.Scanner;
 
public class Tp2 {
 
  static Scanner clavier = new Scanner(System.in); //clavier : nom générique pour tout le programme
 
    public static void main(String[] args) {
        // Création des variables pour les informations du joueur et des différents parties
        int niveau; 
        String nom = ""; 
        String prenom = ""; 
        String age = "";       
        int partie_facile = 0; // Nombre de parties faciles jouées
        int partie_moyen = 0; // Nombre de parties moyens jouées
        int partie_difficile = 0; //Nombre de parties difficiles jouées
        int partie_facile_terminee = 0; // Nombre de parties faciles gagnées
        int partie_moyen_terminee = 0; // Nombre de parties moyens gagnées
        int partie_difficile_terminee = 0; // Nombre de parties difficiles gagnées
        int temps_facile = 0; // Temps de résolution de la grille facile
        int temps_moyen = 0; // Temps de résolution de la grille moyen
        int temps_difficile = 0; // Temps de résolution de la grille difficile
        // Création de variables pour les statistiques
        int tmr_facile=temps_facile/partie_facile_terminee; // Temps moyen de résolution au niveau facile
        int tmr_moyen=temps_moyen/partie_moyen_terminee; // Temps moyen de résolution au niveau moyen
        int tmr_difficile=temps_difficile/partie_difficile_terminee; // Temps moyen de résolution au niveau difficile
        int partie_perdue=((partie_facile)+(partie_moyen)+(partie_difficile))-((partie_facile_terminee)+(partie_moyen_terminee)+(partie_difficile_terminee));
        // Nombre total de partie perdues
        int partie_gagnee=((partie_facile_terminee)+(partie_moyen_terminee)+(partie_difficile_terminee));
        // Nombre total de parties gagnées
        int trm_global=((tmr_facile)+(tmr_moyen)+(tmr_difficile))/3; // Temps de résolution moyen global
        int partie_jouee=((partie_facile)+(partie_moyen)+(partie_difficile)); // Nombre total de parties jouées
        int taux_global=((100*(partie_facile_terminee)/(partie_facile))+(100*(partie_moyen_terminee)/(partie_moyen))+(100*(partie_difficile_terminee)/(partie_difficile))/3);
        // Pourcentage de réussite global
 
 
        System.out.println("-------Informations personnelles");
            // AFFICHAGE NOM
            int condition_nom = 0; // variable pour la condition sur la limite du nombre de caractére
            while (condition_nom == 0) { // tant que la condition n'est pas égale à 1
 
               System.out.print("Nom : ");
               nom = clavier.nextLine();
 
                if (nom.length()<3) { // si le nom inséré a moins de 3 caractéres
                    System.out.println("Votre nom doit être compris entre 3 et 256 caractères");
 
                    condition_nom = 0; // = à 0 tant que la condition n,est pas remplie
                }
 
                else if (nom.length()>256) { // si la variable a plus de 256 caractére
                    System.out.println("Votre nom doit être compris entre 3 et 256 caractères");
 
                    condition_nom = 0; // = à 0 tant que la condition n,est pas remplie
                }
                else {
 
                    condition_nom = 1; // condition remplie et sortie de la boucle
 
                }
 
            }
            // AFFICHAGE PRÉNOM (mêmes explication que pour l'affichage du nom)
             int condition_prenom = 0;
             while (condition_prenom == 0) {
 
               System.out.print("Prénom : "); // Afficher : "prénom :"
               prenom = clavier.nextLine();
 
                if (prenom.length()<3) {
                    System.out.println("Votre prénom doit être compris entre 3 et 256 caractères"); // Si les caractères sont inférieurs à 3, aolrs afficher message
 
                    condition_prenom = 0;
                }
 
                else if (prenom.length()>256) {                   
                   System.out.println("Votre prenom doit être compris entre 3 et 256 caractères"); // Si les caractères sont supérieurs à 256, aolrs afficher message
 
                    condition_prenom = 0;
                }
                else {
 
                    condition_prenom = 1; // Condition réussite               
 
                }              
 
            }
                // AFFICHAGE DE L'ÂGE
                int condition_age = 0; // création de la variable âge
                while (condition_age == 0) { // tant que la condition n'est pas égale à 1
 
                    System.out.print("Âge : " + age);
                    age = clavier.nextLine();
 
                if (Integer.parseInt(age) <= 10) { // Si le nombre est inférieur ou égale à 10 
                    System.out.println("Votre âge doit être compris entre 10 et 90 ans");
 
                    condition_age = 0; // = à 0 tant que la codition n'est pas remplie
 
 
                }   
 
                else if (Integer.parseInt(age) >=90) { // si le nombre est supérieur à 90
                    System.out.println("Votre âge doit être compris entre 10 et 90 ans");
 
                    condition_age = 0; // = à 0 tant que la codition n'est pas remplie
                }
 
                else {
                    condition_age = 1; // condition remplie et sortie de la boucle
 
                }
            }
                System.out.println("-------");
                System.out.println("");// ligne créée pour un espace, pour faciliter la visibilité
                System.out.println("");// ligne créée pour un espace, pour faciliter la visibilité
 
 
 
            // CHOIX DU NIVEAU DE DIFFICULTÉ
            System.out.println("Veuillez choisir un nineau de jeu");
            System.out.println("-------");
            System.out.println("Entrer 1 pour le niveau facile");
            System.out.println("Entrer 2 pour le niveau moyen");
            System.out.println("Entrer 3 pour le niveau difficile");
            System.out.println("-------");
 
             niveau = clavier.nextInt();
 
        if(niveau == 1) { // Commande pour valider une partie gagnée ou perdue
            int choix1;
 
                partie_facile++; // Incrémentation de la partie facile
 
                System.out.println("Avez-vous gagné la partie?");
                System.out.println("Sélectionner 4 pour gagnée");
                System.out.println("Sélectionner 5 pour perdue");
                choix1 = clavier.nextInt();
 
 
        switch (choix1) // Choix du "switch" pour créer une boucle
        {
 
 
            case 4 :
 
                partie_facile_terminee++;
 
                System.out.print("Temps de résolution de la grille : ");
                temps_facile = clavier.nextInt();
 
                System.out.print("La grille a été réussite en " + temps_facile + " minutes");
 
                break;      
 
            case 5 :
 
                 System.out.println("Vous ferez mieux la prochaine fois");
 
                    break;
                }
        }
         if(niveau == 2) { // Commande pour valider une partie gagnée ou perdue
            int choix2;
 
                partie_moyen++; // Incrémentation de la partie moyen
 
                System.out.println("Avez-vous gagné la partie?");
                System.out.println("Sélectionner 4 pour gagnée");
                System.out.println("Sélectionner 5 pour perdue");
                choix2 = clavier.nextInt();
 
 
        switch (choix2) // Choix du "switch" pour créer une boucle
 
        {
 
            case 4 :
 
                partie_moyen_terminee++; // Incrémentation de la partie difficile
 
                System.out.print("Temps de résolution de la grille : ");
                temps_moyen = clavier.nextInt();
 
                System.out.print("La grille a été réussite en " + temps_moyen + " minutes");
 
                break;      
 
            case 5 :
 
                 System.out.println("Vous ferez mieux la prochaine fois");
 
                    break;
                }
            } 
 
 
 
        if(niveau == 3) { // Commande pour valider une partie gagnée ou perdue
            int choix3;
 
                partie_difficile++; // Incrémentation de la partie difficile
 
                System.out.println("Avez-vous gagné la partie?");
                System.out.println("Sélectionner 4 pour gagnée");
                System.out.println("Sélectionner 5 pour perdue");
                choix3 = clavier.nextInt();
 
 
        switch (choix3) // Choix du "switch" pour créer une boucle
 
        {
 
            case 4 :
 
                partie_difficile_terminee++; 
 
                System.out.print("Temps de résolution de la grille : ");
                temps_difficile = clavier.nextInt();
 
                System.out.print("La grille a été réussite en " + temps_difficile + " minutes");
 
                break;      
 
            case 5 :
 
                 System.out.println("Vous ferez mieux la prochaine fois");
 
                    break;
                }           
        } 
 
 
 
        // AFFICHAGE STATISTIQUES
        System.out.println("****************************Statistiques Sudoku****************************");
        System.out.println("");
 
        System.out.println("-----Informations personnelles");
        System.out.println("Nom : "+ nom + ".");
        System.out.println("Prénom : "+ prenom + ".");
        System.out.println("Âge : " + age + "ans.");
 
        System.out.println(""); //ligne créée pour un espace, pour faciliter la visibilité
 
        System.out.println("----------------------------Statistiques détaillées----------------------------");
        System.out.println(""); //ligne créée pour un espace, pour faciliter la visibilité
 
        System.out.println("-----Statistiques niveau facile");
        System.out.println("Nombre de parties non terminées : "+ ((partie_facile)-(partie_facile_terminee)));
        System.out.println("Nombre de parties gagnées : " + (partie_facile)+ " "+"Temps de résolution moyem : " + (tmr_facile));
        System.out.println("Nombre total de partie jouées : " + (partie_facile));
        System.out.println("Taux de réussite du joueur : " + 100*(partie_facile_terminee)/(partie_facile) +"%");
        System.out.println("-----");
 
        System.out.println(""); //ligne créée pour un espace, pour faciliter la visibilité
 
        System.out.println("-----Statistiques niveau moyen");
        System.out.println("Nombre de parties non terminées : "+ ((partie_moyen)-(partie_moyen_terminee)));
        System.out.println("Nombre de parties gagnées : " + (partie_moyen)+ " "+"Temps de résolution moyem : " + (tmr_moyen));
        System.out.println("Nombre total de partie jouées : " + (partie_moyen));
        System.out.println("Taux de réussite du joueur : " + 100*(partie_moyen_terminee)/(partie_moyen) +"%");
        System.out.println("-----");
 
        System.out.println(""); //ligne créée pour un espace, pour faciliter la visibilité
 
        System.out.println("-----Statistiques niveau difficile");
        System.out.println("Nombre de parties non terminées : "+ ((partie_difficile)-(partie_difficile_terminee)));
        System.out.println("Nombre de parties gagnées : " + (partie_difficile)+ " "+"Temps de résolution moyem : " + (tmr_difficile));
        System.out.println("Nombre total de partie jouées : " + (partie_difficile));
        System.out.println("Taux de réussite du joueur : " + 100*(partie_difficile_terminee)/(partie_difficile) +"%");
        System.out.println("-----");
 
        System.out.println(""); //ligne créée pour un espace, pour faciliter la visibilité
 
        System.out.println("----------------------------Statiatiques globales----------------------------");
        System.out.println("Nombre de parties perdues : " + (partie_perdue));
        System.out.println("Nombre de parties gagnées : " + (partie_gagnee) + " " + "Temps de résolution moyen : " + (trm_global));
        System.out.println("Nomnre total de parties jouées : " + (partie_jouee));
        System.out.println("Taux de réussite du joueur : " + (taux_global) +"%");
 
    }
}