Voilà le "Resultat++;" c'était pour essayer de modifier la valeur de la variable.
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?");
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(Resultat ==4)// si le joueur a gagné la partie alors
Resultat++;
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
}
else {
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
}
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);
}
}
je te renvoie une versiobn, un peu corrigée ici et là, mais pas encore parfaite.
désolé je peux pas fair eplus.
G
import java.util.Scanner;
public class test {
static Scanner sudoku = new Scanner (System.in);
public static void main(String[] args){
// initalisation variables
int Sudoku = 0;// niveau de jeu
String Resultat = null;// 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?");
Scanner Unscanner4 = new Scanner(System.in);//initialisation du scanner correspondant
System.out.print(" Tapez 4 pour oui ");
System.out.print(" Tapez 5 pour non ");
Resultat=Unscanner4.nextLine(); //extraction du contenu de la dernière ligne tapée par l'utilisateur
if(Resultat.equals('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
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
}
else {
tauxreussite_facile = nbrpartiefaciles_terminées-1/nbrpartie_faciles*100;//sinon calcul du taux de reussite en ajoutant un echec
}
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 ");
Resultat=Unscanner6.nextLine(); //extraction du contenu de la dernière ligne tapée par l'utilisateur
if(Resultat.equals('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
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
}
else {
tauxreussite_moyen = nbrpartiemoyennes_terminées-1/nbrpartie_moyennes*100;//sinon calcul du taux de reussite en ajoutant un echec
}
}
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 ");
Resultat=Unscanner8.nextLine();//extraction du contenu de la dernière ligne tapée par l'utilisateur
if(Resultat.equals('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
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
}
else {
tauxreussite_dificile = nbrpartiedificiles_terminées-1/nbrpartie_dificiles*100;//sinon calcul du taux de reussite en ajoutant un echec
}
}
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();
System.out.println(reponse);
//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);
}
}
}
T'inquiète pas, c'est plutôt à moi de m'excuser de t'avoir dérangé avec ça et je te remercie déjà de tout ce que tu as fait.
pas de pb.
Hésite pas si tu as d'autres question.
Mais si tu stoppe ton projet ce soir, çà sera sur un autre sans doute!
Bon courage.
Merci, en fait je vais te déranger encore une fois, car je voudrais essayer de terminer ce programme. Je suis en train d'appliquer la structure switch pour la condition du choix 4 s'il a gagné et 5 s'il a perdu, le problème c'est que je ne sais pas trop où mettre l'accolade de fin.
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(resultat ==4)// si le joueur a gagné la partie alors
resultat++;
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
if (resultat == 5) break;
}
else {
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
}
sinon j'ai fais comme ça:
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(resultat == 4)// si le joueur a gagné la partie alors
resultat++;
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 (resultat == 5)
break;
}
Non ca marchera pas tu as melanfe plein de chose.
Le switch se fait sur la variable resultat il faut donc que tu la lise avant.
Et ensuite tu as deux cas a gerer, 4 ou 5 et donc tu as des if inutiles
En resume ca doit avoir cette forme :
Poser question 4 ou 5
Lire reponse dans la variable reponse
Switch(réponse)
{ case 4 :
La tu fais tout le programme pour les parties reusdies
Case 5 : la tout le programme sur les partires perdues
Default : break
}
En gros c'est ca regarde des ecemples sur internet si besoin
Comme ça ?
if(Sudoku ==1){// si le niveau choisi est égale à 1 alors lancement de la boucle corespondante
int choix1 = 0;
nbrpartie_faciles++; // incrémentaion du nombre parties faciles
System.out.println("Avez-vous gagné la partie?");
Scanner Unscanner4 = new Scanner(System.in);//initialisation du scanner correspondant
System.out.print(" Tapez 4 pour oui ");
System.out.print(" Tapez 5 pour non ");
choix1 = Integer.parseInt(Unscanner4.nextLine()); //extraction du contenu de la dernière ligne tapée par l'utilisateur
switch (choix1)
{
case 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
case 5 :
default :
break;
}
Oui c'est mieux.
Dans le case 5, tu dois calculer le taux des parties perdues.
Pour ta boucle , prends bien des variables differentes a chaQue fois que tu fais une lecture, ca evitera peut etre des pb.
Sinon pour savoir par quelles boucles tu passes ( peut etre a tord), hesite pas dans ton code a mettre des petits affichages qui aide
Genre
System.out.println (" ici c'est la boucle du sudoku 1")
Etc
Ca s'affichera quand tu exeçute le prog et ca t'aidera a comprendre pourquoi des choses obt l'air de se repeter
Car pour une raison ignoree tu passes peut etre dans les 3 boucles des trous niveaux de difficultes a la suite a cause d'une variable ou d'un if mal gere...d'ou le besoin de comprendre ce qui se passe
Bonjour, je me suis permis d'apporter des modifications pour ton apprentissage.
Ce n'est pas encore parfait j'aurais fais autrement des choses mais ça suit ton squelette.
Mes remarques :
- des nombres qui ont des valeurs 0 ou 1 pour des conditions sont inutiles, on utilise des booléens
- pour éviter de taper plusieurs fois la meme chose, on utilise des méthodes : on écrit une seule fois le code dedans, et on appelle plusieurs fois la méthode. Tu ne dois pas connaître mais regarde c'est extrêmement utilisé ...
- tu as 3 niveaux avec des variables a chaque fois : mieux vaut utiliser un tableau et chaque case correspond à un niveau : dans mon code, la case 0 c est niveau facile, 1 moyen, 2 difficile.
- pour les variables, on utilise pas d'accent et elles comment toujours par une minuscule
- pas besoin d'utiliser plein de Scanner
Voilà le code :
Oui tu as raison j'ai essayé en mettant un numéro dans la question sur le temps et en effet il me les affiches toutes.
Il faut que je trouve le moyen d'empêcher ça.
Petite nouveauté alors j'ai mis le switch à chaque cas, maintenant il ne me répète plus chaque question, mais il s'arrête après avoir répondu à la première et ne m'affiche plus rien.
ah mon avis tu as un problème comme je l ai dis avec :les scanners (next, nextLine, nextInt), les breaks ...
tu ferais mieux plutôt de regarder le fond et la base du programme avant de lui ajouter des nouveautés car quand on construit une maison sur des fondations en carton on sait ce qu'il arrive ...
Voilà, j'ai enlevé les scanner inutiles, par contre on m'a conseillé de faire des fonction, le problème c'est que je ne sais pas trop comment faire.
Sinon voilà mon code:
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 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){
System.out.print(" Entrez votre nom : ");
afficheur1 = sudoku.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){
System.out.print(" Entrez votre Prénom : ");
afficheur2 = sudoku.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){
System.out.print(" Entrez votre âge :");
afficheur3 = sudoku.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
int choix1 = 0;
nbrpartie_faciles++; // incrémentaion du nombre parties faciles
System.out.println("Avez-vous gagné la partie?");
System.out.print(" Tapez 4 pour oui ");
System.out.print(" Tapez 5 pour non ");
choix1 = Integer.parseInt(sudoku.nextLine()); //extraction du contenu de la dernière ligne tapée par l'utilisateur
switch (choix1)
{
case 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
System.out.println("En combien de temps vous avez remplie la grille?");
System.out.println("Donnez la réponse en minutes1");
String afficheur5 = sudoku.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
case 5 :
tauxreussite_facile = nbrpartiefaciles_terminées-1/nbrpartie_faciles*100;//sinon calcul du taux de reussite en ajoutant un echec
default :
break;
}
if(Sudoku ==2){// si le niveau choisi est égale à 2 alors lancement de la boucle corespondante
nbrpartie_moyennes++;
int choix2 = 0;
System.out.println("Avez-vous gagné la partie?");
System.out.print(" Tapez 4 pour oui ");
System.out.print(" Tapez 5 pour non ");
choix2 = Integer.parseInt(sudoku.nextLine()); //extraction du contenu de la dernière ligne tapée par l'utilisateur
switch (choix2)
{
case 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
System.out.println("En combien de temps vous avez remplie la grille?");
System.out.println("Donnez la réponse en minutes2");
String afficheur7 = sudoku.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
case 5:
tauxreussite_moyen = nbrpartiemoyennes_terminées-1/nbrpartie_moyennes*100;//sinon calcul du taux de reussite en ajoutant un echec
default :
break;
}
if(Sudoku ==3){// si le niveau choisi est égale à 3 alors lancement de la boucle corespondante
int choix3 = 0;
nbrpartie_dificiles++;// incrémentaion du nombre parties dificiles
System.out.println("Avez-vous gagné la partie?");
System.out.print(" Tapez 4 pour oui ");
System.out.print(" Tapez 5 pour non ");
choix3 = Integer.parseInt (sudoku.nextLine());//extraction du contenu de la dernière ligne tapée par l'utilisateur
switch (choix3)
{
case 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
System.out.println("En combien de temps vous avez remplie la grille?");
System.out.println("Donnez la réponse en minutes3");
String afficheur9 = sudoku.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
case 5 :
tauxreussite_dificile = nbrpartiedificiles_terminées-1/nbrpartie_dificiles*100;//sinon calcul du taux de reussite en ajoutant un echec
default :
break;
}
System.out.println("Voulez-vous insérer d'autres parties? (O/N)"); //extraction de la reponse
reponse = sudoku.nextLine();
sudoku.close();
} //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: "+(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: "+(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: "+(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));
}
}
}
}
}
par contre maintenant ça me dit :
Bonjour, veuillez suivre les informations qui s'afficheront sur votre écran
Entrez votre nom : ggg
Entrez votre Prénom : ggg
Entrez votre âge :20
Veuillez choisir un niveau de jeu:
-----------------------------------
Entrez 1 pour Sudoku Debutant
Entrez 2 pour Sudoku Intermediaire
Entrez 3 pour Sudoku Expert
-----------------------------------
1
Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at sudokupart1.main(sudokupart1.java:164)
Avez-vous gagné la partie?
Tapez 4 pour oui Tapez 5 pour non
méthode=fonction j'en ai fais plusieurs a la fin de mon code tu pourrais regarder c est utile
le message d erreur dit que tu as juste fais enter sans rien tapé et que donc c est pas un nombre, logique.
doit y avoir un next inutile qui traine
et il y a vraiment trop de variables, utilise les tableaux, c'est super simple a apprendre et après tu peux aller plus vite
( j ai encore gagné 50 lignes mais j ai pas montré comment car tu dois d abord bien savoir utiliser tableaux et fonctions)
Voilà une version revue, je suis en train de régler le dernier problème qui fait que le programme
me sort les stats alors que je veux insérer d'autres parties.
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 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){ //tant que la condition n'est pas egale à 1
System.out.print(" Entrez votre nom : ");
afficheur1 = sudoku.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){ //tant que la condition n'est pas egale à 1
System.out.print(" Entrez votre Prénom : ");
afficheur2 = sudoku.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; // initalisation variable
while (condition_age == 0){ //tant que la condition n'est pas egale à 1
System.out.print(" Entrez votre âge :");
afficheur3 = sudoku.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
int choix1 = 0;
nbrpartie_faciles++; // incrémentaion du nombre parties faciles
System.out.println("Avez-vous gagné la partie?");
System.out.print(" Tapez 4 pour oui ");
System.out.print(" Tapez 5 pour non ");
choix1 = sudoku.nextInt(); //extraction du contenu de la dernière ligne tapée par l'utilisateur
sudoku.nextLine();
switch (choix1)
{
case 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
System.out.println("En combien de temps vous avez remplie la grille?");
System.out.println("Donnez la réponse en minutes");
String afficheur5 = sudoku.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;
case 5 :
tauxreussite_facile = nbrpartiefaciles_terminées-1/nbrpartie_faciles*100;//sinon calcul du taux de reussite en ajoutant un echec
default :
break;
}
}
if(Sudoku ==2){// si le niveau choisi est égale à 2 alors lancement de la boucle corespondante
nbrpartie_moyennes++;
int choix2 = 0;
System.out.println("Avez-vous gagné la partie?");
System.out.print(" Tapez 4 pour oui ");
sudoku.nextLine();
System.out.print(" Tapez 5 pour non ");
choix2 = sudoku.nextInt(); //extraction du contenu de la dernière ligne tapée par l'utilisateur
sudoku.nextLine();
switch (choix2)
{
case 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
System.out.println("En combien de temps vous avez remplie la grille?");
System.out.println("Donnez la réponse en minutes");
sudoku.nextLine();
String afficheur7 = sudoku.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
break;
case 5:
tauxreussite_moyen = nbrpartiemoyennes_terminées-1/nbrpartie_moyennes*100;//sinon calcul du taux de reussite en ajoutant un echec
default :
break;
}
}
if(Sudoku ==3){// si le niveau choisi est égale à 3 alors lancement de la boucle corespondante
int choix3 = 0;
nbrpartie_dificiles++;// incrémentaion du nombre parties dificiles
System.out.println("Avez-vous gagné la partie?");
System.out.print(" Tapez 4 pour oui ");
System.out.print(" Tapez 5 pour non ");
choix3 = sudoku.nextInt();//extraction du contenu de la dernière ligne tapée par l'utilisateur
sudoku.nextLine();
switch (choix3)
{
case 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
System.out.println("En combien de temps vous avez remplie la grille?");
System.out.println("Donnez la réponse en minutes3");
String afficheur9 = sudoku.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
break;
case 5 :// si le joueur a perdu
tauxreussite_dificile = nbrpartiedificiles_terminées-1/nbrpartie_dificiles*100;//sinon calcul du taux de reussite en ajoutant un echec
default :
break;
}
}
System.out.println("Voulez-vous insérer d'autres parties? (O/N)");
reponse = sudoku.nextLine(); // extraction dernière ligne
}
sudoku.close(); // fermeture du scanner
// affichage des résultats et 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: "+(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: "+(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: "+(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));
}
}
Voilà le programme, normalement il n'y a plus de bug.
Je vous remercie infiniment pour votre aide et les différents conseils que vous m'avez donnés.
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 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){ //tant que la condition n'est pas egale à 1
System.out.print(" Entrez votre nom : ");
afficheur1 = sudoku.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){ //tant que la condition n'est pas egale à 1
System.out.print(" Entrez votre Prénom : ");
afficheur2 = sudoku.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; // initalisation variable
while (condition_age == 0){ //tant que la condition n'est pas egale à 1
System.out.print(" Entrez votre âge :");
afficheur3 = sudoku.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.toLowerCase().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
int choix1 = 0;
nbrpartie_faciles++; // incrémentaion du nombre parties faciles
System.out.println("Avez-vous gagné la partie?");
System.out.print(" Tapez 4 pour oui ");
System.out.print(" Tapez 5 pour non ");
choix1 = sudoku.nextInt(); //extraction du contenu de la dernière ligne tapée par l'utilisateur
sudoku.nextLine();
switch (choix1)
{
case 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
System.out.println("En combien de temps vous avez remplie la grille?");
System.out.println("Donnez la réponse en minutes");
String afficheur5 = sudoku.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;
case 5 :
tauxreussite_facile = nbrpartiefaciles_terminées-1/nbrpartie_faciles*100;//sinon calcul du taux de reussite en ajoutant un echec
default :
break;
}
}
if(Sudoku ==2){// si le niveau choisi est égale à 2 alors lancement de la boucle corespondante
nbrpartie_moyennes++;
int choix2 = 0;
System.out.println("Avez-vous gagné la partie?");
System.out.print(" Tapez 4 pour oui ");
sudoku.nextLine();
System.out.print(" Tapez 5 pour non ");
choix2 = sudoku.nextInt(); //extraction du contenu de la dernière ligne tapée par l'utilisateur
sudoku.nextLine();
switch (choix2)
{
case 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
System.out.println("En combien de temps vous avez remplie la grille?");
System.out.println("Donnez la réponse en minutes");
sudoku.nextLine();
String afficheur7 = sudoku.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
break;
case 5:
tauxreussite_moyen = nbrpartiemoyennes_terminées-1/nbrpartie_moyennes*100;//sinon calcul du taux de reussite en ajoutant un echec
default :
break;
}
}
if(Sudoku ==3){// si le niveau choisi est égale à 3 alors lancement de la boucle corespondante
int choix3 = 0;
nbrpartie_dificiles++;// incrémentaion du nombre parties dificiles
System.out.println("Avez-vous gagné la partie?");
System.out.print(" Tapez 4 pour oui ");
System.out.print(" Tapez 5 pour non ");
choix3 = sudoku.nextInt();//extraction du contenu de la dernière ligne tapée par l'utilisateur
sudoku.nextLine();
switch (choix3)
{
case 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
System.out.println("En combien de temps vous avez remplie la grille?");
System.out.println("Donnez la réponse en minutes");
String afficheur9 = sudoku.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
break;
case 5 :// si le joueur a perdu
tauxreussite_dificile = nbrpartiedificiles_terminées-1/nbrpartie_dificiles*100;//sinon calcul du taux de reussite en ajoutant un echec
default :
break;
}
}
System.out.println("Voulez-vous insérer d'autres parties? (O/N)");
reponse = sudoku.nextLine(); // extraction dernière ligne
}
sudoku.close(); // fermeture du scanner
// affichage des résultats et 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: "+(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: "+(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: "+(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));
}
}
Après une dernière correction:
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 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){ //tant que la condition n'est pas egale à 1
System.out.print(" Entrez votre nom : ");
afficheur1 = sudoku.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){ //tant que la condition n'est pas egale à 1
System.out.print(" Entrez votre Prénom : ");
afficheur2 = sudoku.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; // initalisation variable
while (condition_age == 0){ //tant que la condition n'est pas egale à 1
System.out.print(" Entrez votre âge :");
afficheur3 = sudoku.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.toLowerCase().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
int choix1 = 0;
nbrpartie_faciles++; // incrémentaion du nombre parties faciles
System.out.println("Avez-vous gagné la partie?");
System.out.print(" Tapez 4 pour oui ");
System.out.print(" Tapez 5 pour non ");
choix1 = sudoku.nextInt(); //extraction du contenu de la dernière ligne tapée par l'utilisateur
sudoku.nextLine();
switch (choix1)
{
case 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
System.out.println("En combien de temps vous avez remplie la grille?");
System.out.println("Donnez la réponse en minutes");
String afficheur5 = sudoku.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;
case 5 :
tauxreussite_facile = nbrpartiefaciles_terminées-1/nbrpartie_faciles*100;// calcul du taux de reussite en ajoutant un echec
default :
break;
}
}
if(Sudoku ==2){// si le niveau choisi est égale à 2 alors lancement de la boucle corespondante
int choix2 = 0;
nbrpartie_moyennes++;
System.out.println("Avez-vous gagné la partie?");
System.out.print(" Tapez 4 pour oui ");
System.out.print(" Tapez 5 pour non ");
choix2 = sudoku.nextInt(); //extraction du contenu de la dernière ligne tapée par l'utilisateur
sudoku.nextLine();
switch (choix2)
{
case 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
System.out.println("En combien de temps vous avez remplie la grille?");
System.out.println("Donnez la réponse en minutes");
String afficheur7 = sudoku.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
break;
case 5:
tauxreussite_moyen = nbrpartiemoyennes_terminées-1/nbrpartie_moyennes*100;// calcul du taux de reussite en ajoutant un echec
default :
break;
}
}
if(Sudoku ==3){// si le niveau choisi est égale à 3 alors lancement de la boucle corespondante
int choix3 = 0;
nbrpartie_dificiles++;// incrémentaion du nombre parties dificiles
System.out.println("Avez-vous gagné la partie?");
System.out.print(" Tapez 4 pour oui ");
System.out.print(" Tapez 5 pour non ");
choix3 = sudoku.nextInt();//extraction du contenu de la dernière ligne tapée par l'utilisateur
sudoku.nextLine();
switch (choix3)
{
case 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
System.out.println("En combien de temps vous avez remplie la grille?");
System.out.println("Donnez la réponse en minutes");
String afficheur9 = sudoku.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
break;
case 5 :
tauxreussite_dificile = nbrpartiedificiles_terminées-1/nbrpartie_dificiles*100;//sinon calcul du taux de reussite en ajoutant un echec
default :
break;
}
}
System.out.println("Voulez-vous insérer d'autres parties? (O/N)");
reponse = sudoku.nextLine(); // extraction dernière ligne
}
sudoku.close(); // fermeture du scanner
// affichage des résultats et 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: "+(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: "+(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: "+(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));
}
}
à chaque fois je dis que c'est terminé mais ça ne l'est pas, il y a encore des erreurs mais dans les calculs.
c est difficle de lire comme ça, utilises vraiment des tableaux trop difficile à lire là, si tu veux prends juste le code que je t ai donné au dessus et ajoute tes modifications
mais stp fais un effort, il est pas souhaitable que des variables conditions soient des int, les booléens servent à ça.
On initialise pas une String à null, au pire a "", tu as des utilisations bizarres du scanner (genre un nextline en plein milieu alors qu on demande rien ...)
et pour info, int tauxreussite_facile = nbrpartiefaciles_terminées/nbrpartie_faciles*100;// cette initialisation est inutile, autant mettre 100 directement c'est nettement plus clair ...
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :