Inscription / Connexion Nouveau Sujet

1 2 3 +


Niveau logiciels
Partager :

Sauvegarde d'informations sur java

Posté par
Riley
03-02-15 à 14:58

Bonjour tout le monde, me revoici avec une autre problématique.
Alors, on me demande de faire ça:

              Problématique
Vous êtes mandaté par la directrice de l'école Saint-Pruneau à concevoir un programme java nommé tp2.java. Ce programme permettra de saisir des informations au clavier, faire un certain traitement sur ces données et afficher les résultats selon un certain formatage.

Saisie et validation des informations
  Le programme permet 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.
Les résultats devront être affichés selon le format présenté ci-après.




****************************Statistiques Sudoku*****************************

-------Informations personnelles
Nom: Lamarche
Prénom: Benjamin
Âge: 23 ans
-------



---------------------------Statistiques détaillées--------------------------

------Statistiques niveau facile
Nombre de parties non terminées: 1
Nombre de parties gagnées:10. Temps de résolution moyen: 13 minutes
Nombre total de parties jouées: 11
Taux de réussite du joueur : 90%
-------

------Statistiques niveau moyen
Nombre de parties non terminées: 3
Nombre de parties gagnées: 6. Temps de résolution moyen: 28 minutes
Nombre total de parties jouées: 9
Taux de réussite du joueur : 66%
-------

------Statistiques niveau difficile
Nombre de parties non terminées: 9
Nombre de parties gagnées: 9. Temps de résolution moyen: 72 minutes
Nombre total de parties jouées: 18
Taux de réussite du joueur : 50%
-------

---------------------------Statistiques globales----------------------------
Nombre de parties perdues: 13
Nombre de parties gagnèes:25. Temps de résolution moyen: 37 minutes
Nombre total de parties jouées: 38
Taux de réussite du joueur : 65%

Posté par
Riley
re : Sauvegarde d'informations sur java 03-02-15 à 14:59

Pour l'instant j'ai fait ça :


import java.util.Scanner;
public class sudokupart1 {

static Scanner unnom = new Scanner (System.in);
static Scanner sudoku = new Scanner (System.in);

public static void main(String[] args){



System.out.println ("Bonjour, veuillez suivre les informations qui s'afficheront sur votre écran");

    Scanner Unscanner1 = new Scanner(System.in);

        System.out.print(" Entrez votre nom : ");

        String Afficheur1 = Unscanner1.nextLine();
        
        
    
        Scanner Unscanner2 = new Scanner(System.in);
                                        
        System.out.print(" Entrez votre Prénom : ");
        
        String Afficheur2 = Unscanner2.nextLine();
        
        
        
        
        Scanner Unscanner3 = new Scanner(System.in);
        
        System.out.print(" Entrez votre âge :");
        
        String Afficheur3 = Unscanner3.nextLine();
        
        

                      System.out.println("Bienvenue" + " " + Afficheur2 + " " + "au concours de SUDOKU de l'Ecole Saint-Pruneau." );
                      System.out.println("Voici un récapitulatif de vos informations :" );
                      System.out.println( "Votre nom est" + " " + Afficheur1 + " " + "votre prénom est" + " " + Afficheur2 + " " + "et vous avez" + " " + Afficheur3 + " " + "ans.");
                    
                     int Compte = 0;
               int Sudoku = 0;
               String Lenom;
               String nompardefaut = Afficheur1;
              
               do{
             System.out.print ("Vous avez  : " + (3-Compte)+ " choix. Pour verification entrez votre nom de joueur ");
            
             Lenom = unnom.nextLine();
             Compte++;
             //if (Compte == 4)
             // break;

             }while ( !(Lenom.equals(nompardefaut)) && Compte <=3);



             if ( (Lenom.equals(nompardefaut)))
             {
              
             System.out.println (" Parfait, la verification de votre nom à été faite.");
            
             System.out.println (" -----------------------------------");          

                     System.out.println("Veuillez choisir un niveau de jeu:");
                  
                    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 (" -----------------------------------");
          
          

          

           if(Sudoku ==1)
           System.out.println (" Le choix de" + " " + Afficheur2 + " " + Afficheur1 + " " + "est Sudoku Debutant");
           if(Sudoku ==2)
           System.out.println (" Le choix de" + " " + Afficheur2 + " " + Afficheur1 + " " + "est Sudoku Intermediaire");
           if(Sudoku ==3)
           System.out.println (" Le choix de" + " " + Afficheur2 + " " + Afficheur1 + " " + "est Sudoku Expert");
}
}
}


                    

Posté par
Riley
re : Sauvegarde d'informations sur java 03-02-15 à 15:02

Je fais la partie sur les stats de jeu et je la met.

Posté par
Riley
re : Sauvegarde d'informations sur java 03-02-15 à 16:19

Voilà où j'en suis:

import java.util.Scanner;
public class Information{

static Scanner unnom = new Scanner (System.in);
static Scanner sudoku = new Scanner (System.in);

public static void main(String[] args){



System.out.println ("Bonjour, veuillez suivre les informations qui s'afficheront sur votre écran");

    Scanner Unscanner1 = new Scanner(System.in);

        System.out.print(" Entrez votre nom : ");

        String Afficheur1 = Unscanner1.nextLine();
        
        
    
        Scanner Unscanner2 = new Scanner(System.in);
                                        
        System.out.print(" Entrez votre Prénom : ");
        
        String Afficheur2 = Unscanner2.nextLine();
        
        
        
        
        Scanner Unscanner3 = new Scanner(System.in);
        
        System.out.print(" Entrez votre âge :");
        
        String Afficheur3 = Unscanner3.nextLine();
                            
                     int Compte = 0;
               int Sudoku = 0;
               int Resultat = 0;
              
               String Lenom;
               String nompardefaut = Afficheur1;
              
               do{
             System.out.print ("Vous avez  : " + (3-Compte)+ " choix. Pour verification entrez votre nom de joueur ");
            
             Lenom = unnom.nextLine();
             Compte++;
             //if (Compte == 4)
             // break;

             }while ( !(Lenom.equals(nompardefaut)) && Compte <=3);



             if ( (Lenom.equals(nompardefaut)))
             {
              
             System.out.println (" Parfait, la verification de votre nom à été faite.");
            
             System.out.println (" -----------------------------------");          

                     System.out.println("Veuillez choisir un niveau de jeu:");
                                      
                    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();
                     
         if(Sudoku ==1)
        
        
         System.out.println("Avez-vous gagné la partie?");
          
           Scanner Unscanner4 = new Scanner(System.in);

                   System.out.print(" Tapez 4 pour oui ");
                   
                   System.out.print(" Tapez 5 pour non ");

                 String Afficheur4 = Unscanner4.nextLine();              
                                      
           if(Resultat ==4)
           {
          
                System.out.println("En combien de temps vous avez remplie la grille?");
           Scanner Unscanner5 = new Scanner(System.in);
           System.out.println("Donnez la réponse en minutes");
           String Afficheur5 = Unscanner5.nextLine();
           }
          
           if(Sudoku ==2)
          
        
                    System.out.println("Avez-vous gagné la partie?");
          
           Scanner Unscanner6 = new Scanner(System.in);

                   System.out.print(" Tapez 4 pour oui ");
                   
                   System.out.print(" Tapez 5 pour non ");

                 String Afficheur6 = Unscanner6.nextLine();              
                                      
           if(Resultat ==4)
           {
                System.out.println("En combien de temps vous avez remplie la grille?");
           Scanner Unscanner7 = new Scanner(System.in);
           System.out.println("Donnez la réponse en minutes");
           String Afficheur7 = Unscanner7.nextLine();
           }
          
           if(Sudoku ==3)
          
           System.out.println("Avez-vous gagné la partie?");
          
           Scanner Unscanner8 = new Scanner(System.in);

                   System.out.print(" Tapez 4 pour oui ");
                   
                   System.out.print(" Tapez 5 pour non ");
  
                   String Afficheur8 = Unscanner8.nextLine();              
                                        
           if(Resultat ==4)
           {
                System.out.println("En combien de temps vous avez remplie la grille?");
           Scanner Unscanner9 = new Scanner(System.in);
           System.out.println("Donnez la réponse en minutes");
           String Afficheur9 = Unscanner9.nextLine();
           }
        
              
             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:");
             System.out.println("Nombre de parties gagnées:"+ "Temps de résolution moyen:");
             System.out.println("Nombre total de parties jouées:");
             System.out.println("Taux de réussite du joueur : ");
            
             System.out.println("------Statistiques niveau moyen ");
             System.out.println("Nombre de parties non terminées:");
             System.out.println("Nombre de parties gagnées:"+ "Temps de résolution moyen:");
             System.out.println("Nombre total de parties jouées:");
             System.out.println("Taux de réussite du joueur : ");
            
             System.out.println("------Statistiques niveau dificile ");
             System.out.println("Nombre de parties non terminées:");
             System.out.println("Nombre de parties gagnées:"+ "Temps de résolution moyen:");
             System.out.println("Nombre total de parties jouées:");
             System.out.println("Taux de réussite du joueur : ");
            
             System.out.println("---------------------------Statistiques globales--------------------------");
            
             System.out.println("Nombre de parties perdues:");
             System.out.println("Nombre de parties gagnées:"+ "Temps de résolution moyen:");
             System.out.println("Nombre total de parties jouées:");
             System.out.println("Taux de réussite du joueur : ");
            
            
            
            
             }
               else{
                 //break;
                 System.out.println ("Vous n'avez pas répondu correctement à la verification.");
            
              
             }


             }
            
}

Posté par
gggg1234
re : Sauvegarde d'informations sur java 03-02-15 à 16:19

Bonjour,

Je en connais pas ton niveau en JAVA.

Mais en terme de philosophie JAVA, pour rendre ton exo plus lisible (ou meiux structuré) tu pourrais pa rexemple créer une classe JAVA qui s'appellerait PARTIE
Elle contiendrait toutes les infos utile d'UNE partie

genre:

class PARTIE {
public string difficulté;
public int temps_resolution;
public boolean terminee;

}

et ensuite dans ton programme tu as juste à "gérer" un tableau de partie.
Sur lequel il est assez facile de faire les moyennes par partie, par diffcultés..Etc..car tu boucles sur ce tableau.


c'est peut etre pas demandé dans ton exo, mais c'est la vraie philosophie de java.


Autre exemple :
Au lieu d'écrire comme tu as fait:

if(Sudoku ==1)
           System.out.println (" Le choix de" + " " + Afficheur2 + " " + Afficheur1 + " " + "est Sudoku Debutant");
           if(Sudoku ==2)
           System.out.println (" Le choix de" + " " + Afficheur2 + " " + Afficheur1 + " " + "est Sudoku Intermediaire");
           if(Sudoku ==3)
           System.out.println (" Le choix de" + " " + Afficheur2 + " " + Afficheur1 + " " + "est Sudoku Expert");

tu pourrais faire une fonction

AFFICHER () {
System.out.println (" Le choix de" + " " + Afficheur2 + " " + Afficheur1 + " " + "est Sudoku Debutant");
}

ou un truc dans le genre qui évite de taper 3 fois la meme code.
CAr là, si tu veux modifier ton affichage, tu dois le modifier à trois endroits..etc...

Posté par
gggg1234
re : Sauvegarde d'informations sur java 03-02-15 à 16:22

idem pour la suite!
il est inutile de ecrire 3 fois le meme code pour denamdner les infos, si la partie est simple, moyenenou dure,
yil faut que tu fasses une "sous-focntion' qui s'appelel par exemple, DEMANDER_STAT et que tu appelle 3 fois.
comme ca tu "compactes" ton code

Posté par
gggg1234
re : Sauvegarde d'informations sur java 03-02-15 à 16:24

il manque qqch d'important, en plus, ton programme doit "boucler".
L'utilisateur doit pouvoir saisir plusieurs parties à la suite, je pense.
Or toi tu ne prevois pas ce cas

Posté par
Riley
re : Sauvegarde d'informations sur java 03-02-15 à 16:26

J'ai quelques problèmes que je n'arrive pas à résoudre, comment faire en sorte que le programme puisse compter le nombre de parties jouées ainsi que le nombre de parties gagnées?

Posté par
Riley
re : Sauvegarde d'informations sur java 03-02-15 à 16:28

Oups désolé je n'avais pas vu que tu avais répondu, je vais aller lire ce que tu as mit.

Posté par
gggg1234
re : Sauvegarde d'informations sur java 03-02-15 à 16:30

pour çà, la "structure" de ton programme doit etre la suivante:


Tbaleau (pour la liste des parties)

variable saisie_terminée = 0

while ( saisie_terminee=0) {

//ici la
fonction de saisie d'un partie qui prend les infos d'UNE partie et qui alimente aussi le tableau général
et qui demande si l'utilisateur à d'autre parties à saisir

si non, on sort: saisie_terminée = 1

}

// ensuite a la sortie de la boucle, tu fais les stats sur TOUTES les partie renseignées.


tu vois la logique?

Posté par
gggg1234
re : Sauvegarde d'informations sur java 03-02-15 à 16:33

si tu veux pas faire de classes comme je te disais, ben gère les entrées successives avec des tableaux !

Posté par
Riley
re : Sauvegarde d'informations sur java 03-02-15 à 16:37

Alors après avoir lu tes précieux conseils, Je viens de commencer java et pour l'instant le dernier cours que j'ai eu parlait des structures de contrôle.
J'ai pas encore eu un cours sur les tableaux, donc de ce coté là ça limite les techniques que je peux employer pour répondre à ce qu'ils me demandent.
Sinon oui je suis d'accord il faut que je puisse faire fonctionner le programme en boucle, le problème c'est que je ne vois pas trop comment faire.

Sinon à la limite, pour simplifier les choses, je peux aller potasser un peu sur openclassroom le cours sur les tableaux, problème c'est que je ne sait pas si les profs vont apprécier.

Posté par
gggg1234
re : Sauvegarde d'informations sur java 03-02-15 à 16:43

tu peux gérér aussi sans tableau (comme je dis "à lancienne") avce plein de varaible

avec un truc du genre:

nb_partie_facile=0
nb_partie_moyenne=0
nb_partie_difficile=0
nb_partie facile_terminée=0;
etc..
moyenne_facile=0
moyenen_moyenne=0
etc..
etc..

variable saisie_terminée = 0

while ( saisie_terminee=0) {

//ici la
fonction de saisie d'un partie qui prend les infos d'UNE partie et qui alimente toutes les varibales du debut...
avec des trucs du style
if (partie=simple)(nb_partie_simple = nb_partie_simple+1;
recalcul de la moyenne, etc...
}


et qui demande si l'utilisateur s'il à d'autre parties à saisir*
si oui, on faut rien et donc on boucle sur le WHILE

si non, on sort en faisant: saisie_terminée = 1
qui fait sortir du while
}

// ensuite a la sortie de la boucle, tu affiche toutes les variables, qui seront correctes


tu vois la logique?

Posté par
Riley
re : Sauvegarde d'informations sur java 03-02-15 à 16:51

Je crois avoir compris, je vais essayer de le faire de cette façon.

Posté par
gggg1234
re : Sauvegarde d'informations sur java 03-02-15 à 16:55

une formule qui peut t'aider:

elle donne la valeur de la nouvelle moyenne quand tu rajoute une (n+1)ème note :


nouvelle moyenne = [(nb notes * ancienne moyenne) + note actuelle ] / ( nb notes +1)

Posté par
Riley
re : Sauvegarde d'informations sur java 03-02-15 à 18:02

Merci pour la formule, voilà j'ai refait le début avec les variables.

import java.util.Scanner;
public class Information{

static Scanner sudoku = new Scanner (System.in);

public static void main(String[] args){


     int Sudoku = 0;
     int Resultat = 0;
     int nbrpartie_faciles = 0;
     int nbrpartie_moyennes = 0;
     int nbrpartie_dificiles = 0;
     int nbrpartiefaciles_terminées = 0;
     int nbrpartiemoyennes_terminées = 0;
     int nbrpartiedificiles_terminées = 0;
     int tauxreussite_facile = nbrpartiefaciles_terminées/nbrpartie_faciles*100;
     int tauxreussite_moyen = nbrpartiemoyennes_terminées/nbrpartie_moyennes*100;
     int tauxreussite_dificile = nbrpartiedificiles_terminées/nbrpartie_dificiles*100;
     int tempsreso_facile = 0;
     int tempsreso_moyen = 0;
     int tempsreso_dificile = 0;
     int tempsmoyreso_facile = tempsreso_facile/nbrpartiefaciles_terminées;
     int tempsmoyreso_moyen = tempsreso_moyen/nbrpartiemoyennes_terminées;
     int tempsmoyreso_dificile = tempsreso_dificile/nbrpartiedificiles_terminées;
    

Posté par
gggg1234
re : Sauvegarde d'informations sur java 03-02-15 à 21:21

Ok mais moi j'aurai pas mis les variables "totales" au debut du programme

Mais peut etre que c'est bon, si tu les mets a jour correctement au fur et a mesure de la boucle while

Posté par
Riley
re : Sauvegarde d'informations sur java 04-02-15 à 14:34

Bon voilà ce que j'ai pu faire pour l'instant. J'imagine qu'il doit y avoir pas mal d'erreurs, mais j'aimerais avoir tes conseils sur ce qu'il me reste à faire.
C'est le premier programme que je créé, et je dois avouer que c'est pas super simple au début, donc désolé de t'embêter avec ça.


import java.util.Scanner;
public class Information{

static Scanner sudoku = new Scanner (System.in);

public static void main(String[] args){


     int Sudoku = 0;
     int Resultat = 0;
     int nbrpartie_faciles = 0;
     int nbrpartie_moyennes = 0;
     int nbrpartie_dificiles = 0;
     int nbrpartiefaciles_terminées = 0;
     int nbrpartiemoyennes_terminées = 0;
     int nbrpartiedificiles_terminées = 0;
     int tauxreussite_facile = nbrpartiefaciles_terminées/nbrpartie_faciles*100;
     int tauxreussite_moyen = nbrpartiemoyennes_terminées/nbrpartie_moyennes*100;
     int tauxreussite_dificile = nbrpartiedificiles_terminées/nbrpartie_dificiles*100;
     int tempsreso_facile = 0;
     int tempsreso_moyen = 0;
     int tempsreso_dificile = 0;
     int tempsmoyreso_facile = tempsreso_facile/nbrpartiefaciles_terminées;
     int tempsmoyreso_moyen = tempsreso_moyen/nbrpartiemoyennes_terminées;
     int tempsmoyreso_dificile = tempsreso_dificile/nbrpartiedificiles_terminées;
     int nbrpartieperdue = (nbrpartie_faciles+nbrpartie_moyennes+nbrpartie_dificiles)-(nbrpartiefaciles_terminées+nbrpartiemoyennes_terminées+nbrpartiedificiles_terminées);
     int nbrpartiegagnée = nbrpartiefaciles_terminées+nbrpartiemoyennes_terminées+nbrpartiedificiles_terminées;
     int nbrpartiejouée = nbrpartie_faciles+nbrpartie_moyennes+nbrpartie_dificiles;
     int tauxreussitejoueur =

    


System.out.println ("Bonjour, veuillez suivre les informations qui s'afficheront sur votre écran");

    Scanner Unscanner1 = new Scanner(System.in);

        System.out.print(" Entrez votre nom : ");

        String Afficheur1 = Unscanner1.nextLine();
        
        
    
        Scanner Unscanner2 = new Scanner(System.in);
                                        
        System.out.print(" Entrez votre Prénom : ");
        
        String Afficheur2 = Unscanner2.nextLine();
        
        
        
        
        Scanner Unscanner3 = new Scanner(System.in);
        
        System.out.print(" Entrez votre âge :");
        
        String Afficheur3 = Unscanner3.nextLine();
                            
                  
               System.out.print("Pour continuer taper ? O pour oui);");
               char reponse = 'O';
               Scanner rep = new Scanner(System.in);
              
              
              
               while (reponse == 'O');
               {
              

                     System.out.println("Veuillez choisir un niveau de jeu:");
                                      
                    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();
                     
         if(Sudoku ==1)      
         nbrpartie_faciles++;        
                    
             System.out.println("Avez-vous gagné la partie?");
          
           Scanner Unscanner4 = new Scanner(System.in);

                   System.out.print(" Tapez 4 pour oui ");
                   
                   System.out.print(" Tapez 5 pour non ");

                 String Afficheur4 = Unscanner4.nextLine();              
                                      
           if(Resultat ==4)
               nbrpartiefaciles_terminées++;
          
          
                System.out.println("En combien de temps vous avez remplie la grille?");
           Scanner Unscanner5 = new Scanner(System.in);
           System.out.println("Donnez la réponse en minutes");
           String Afficheur5 = Unscanner5.nextLine();
          
          
           if(Sudoku ==2)
               nbrpartie_moyennes++;
        
                    System.out.println("Avez-vous gagné la partie?");
          
           Scanner Unscanner6 = new Scanner(System.in);

                   System.out.print(" Tapez 4 pour oui ");
                   
                   System.out.print(" Tapez 5 pour non ");

                 String Afficheur6 = Unscanner6.nextLine();              
                                      
           if(Resultat ==4)
           nbrpartiemoyennes_terminées++;
          
                System.out.println("En combien de temps vous avez remplie la grille?");
           Scanner Unscanner7 = new Scanner(System.in);
           System.out.println("Donnez la réponse en minutes");
           String Afficheur7 = Unscanner7.nextLine();
          
          
           if(Sudoku ==3)
           nbrpartie_dificiles++;
          
           System.out.println("Avez-vous gagné la partie?");
          
           Scanner Unscanner8 = new Scanner(System.in);

                   System.out.print(" Tapez 4 pour oui ");
                   
                   System.out.print(" Tapez 5 pour non ");
  
                   String Afficheur8 = Unscanner8.nextLine();              
                                        
           if(Resultat ==4)
           nbrpartiedificiles_terminées++;
          
                System.out.println("En combien de temps vous avez remplie la grille?");
           Scanner Unscanner9 = new Scanner(System.in);
           System.out.println("Donnez la réponse en minutes");
           String Afficheur9 = Unscanner9.nextLine();
          
          
           while(reponse != 'O' && reponse != 'N')
           {
           System.out.println("Voulez-vous inserer d'autres parties? (O/N)");
               reponse = rep.nextLine().charAt(0);
               }
               }
        
              
             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: "+nbrparties-faciles);
             System.out.println("Taux de réussite du joueur : "+nbrpartiefaciles_terminées/nbrpartie_faciles*100);
            
             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 : "+nbrpartiemoyennes_terminées/nbrpartie_moyennes*100);
            
             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 : "+nbrpartiedificiles_terminées/nbrpartie_dificiles*100);
            
            
             System.out.println("---------------------------Statistiques globales--------------------------");
            
             System.out.println("Nombre de parties perdues:");
             System.out.println("Nombre de parties gagnées:"+ "Temps de résolution moyen:");
             System.out.println("Nombre total de parties jouées:");
             System.out.println("Taux de réussite du joueur : ");
            
            
            
          
             }
              
              
            


             }
            

Posté par
gggg1234
re : Sauvegarde d'informations sur java 04-02-15 à 15:26

je comprends pas trop ton bloc :

     while(reponse != 'O' && reponse != 'N')
           {
           System.out.println("Voulez-vous inserer d'autres parties? (O/N)");
               reponse = rep.nextLine().charAt(0);
               }
               }
(d'ailleurs ca veut rien dire car ton test dit: si reponse est diffrent de oui et différent de non, QUE peut il valoir d'autre? lol)        

moi j'aurais juste fait :

System.out.println("Voulez-vous inserer d'autres parties? (O/N)");
               reponse = rep.nextLine().charAt(0);

//si le gar repond "oui", tu reste dans ton WHILE caer response vaut toujour "o"
//si il repond NON, if arretra la boucle globale du WHILE car reponse vaudra "N"


Sinon le reste est pas mal.
Par contre, tu ne calcule pas encore les "moyennes" à chaque fois que tu enregistre une nouvelle partie.
Et ce ne sont pas tes formules du debut qui s'applique
et par exemple :

if(Sudoku ==2)
               nbrpartie_moyennes++;
        
                    System.out.println("Avez-vous gagné la partie?");
          
           Scanner Unscanner6 = new Scanner(System.in);

                   System.out.print(" Tapez 4 pour oui ");
                  
                   System.out.print(" Tapez 5 pour non ");

                 String Afficheur6 = Unscanner6.nextLine();              
                                      
           if(Resultat ==4)
           nbrpartiemoyennes_terminées++;
          
                System.out.println("En combien de temps vous avez remplie la grille?");
           Scanner Unscanner7 = new Scanner(System.in);
           System.out.println("Donnez la réponse en minutes");
           String Afficheur7 = Unscanner7.nextLine();

doti devenir :

if(Sudoku ==2)
               nbrpartie_moyennes++;
        
                    System.out.println("Avez-vous gagné la partie?");
          
           Scanner Unscanner6 = new Scanner(System.in);

                   System.out.print(" Tapez 4 pour oui ");
                  
                   System.out.print(" Tapez 5 pour non ");

                 String Afficheur6 = Unscanner6.nextLine();              
                                      
           if(Resultat ==4)
           nbrpartiemoyennes_terminées++;
          //ICI : CALCUL DU NOUVEAU TAUX en cas de reusiite
                System.out.println("En combien de temps vous avez remplie la grille?");
           Scanner Unscanner7 = new Scanner(System.in);
           System.out.println("Donnez la réponse en minutes");
           String Afficheur7 = Unscanner7.nextLine();

ELSE {
//ICI CALCUL DU NOUVEAU TAUX, en cas d'echec}

Posté par
Riley
re : Sauvegarde d'informations sur java 04-02-15 à 15:53

OK d'accord, j'ai corrigé le non sens du " réponse != 'O' && reponse != 'N" j'avais pas du tout vu que ça voulais rien dire

J'ai refait en utilisant la même partie que tu as utilisé à titre d'exemple:

if(Sudoku ==2){
               nbrpartie_moyennes++;
          
        
                    System.out.println("Avez-vous gagné la partie?");
          
           Scanner Unscanner6 = new Scanner(System.in);

                   System.out.print(" Tapez 4 pour oui ");
                   
                   System.out.print(" Tapez 5 pour non ");

                 String Afficheur6 = Unscanner6.nextLine();              
                                      
           if(Resultat ==4)
           nbrpartiemoyennes_terminées++;
           tauxreussite_moyen = nbrpartiemoyennes_terminées/nbrpartie_moyennes*100;
                     
                System.out.println("En combien de temps vous avez remplie la grille?");
           Scanner Unscanner7 = new Scanner(System.in);
           System.out.println("Donnez la réponse en minutes");
           String Afficheur7 = Unscanner7.nextLine();
           }
           else {
           tauxreussite_moyen = nbrpartiemoyennes_terminées--/nbrpartie_moyennes*100;
           }
           }

est ce que c'est bon ?

Posté par
gggg1234
re : Sauvegarde d'informations sur java 04-02-15 à 16:02

presque
dans le else, pas besoin de mettre le "--" car comme tu es dans le else, la variable nbrpartiemoyennes_terminées n'a pas été incrémentée de 1.

Mais ca commence  a prendre forme j'ai l'impression ton programme s'execute?

Posté par
gggg1234
re : Sauvegarde d'informations sur java 04-02-15 à 16:04

et dans le IF, il faut aussi que tu recalcule la moyenne temporelle (avec la formule que je t'ai donné qui va t'aider)

Posté par
Riley
re : Sauvegarde d'informations sur java 04-02-15 à 16:22

nouvelle moyenne = [(nb notes * ancienne moyenne) + note actuelle ] / ( nb notes +1)

Juste une petite question, comment je fais pour différencier la nouvelle moyenne de l'ancienne.
En complétant ça me donne ça:
tempsreso_moyen = ((nbrpartiemoyennes_terminées * tempsreso_moyen) + Afficheur7) / ( nbrpartiemoyennes_terminées);

Posté par
gggg1234
re : Sauvegarde d'informations sur java 04-02-15 à 16:32

Citation :
tempsreso_moyen = ((nbrpartiemoyennes_terminées * tempsreso_moyen) + Afficheur7) / ( nbrpartiemoyennes_terminées);


c'est exactement çà.
tu utilise la valeur "courante" de la variable tempsreso_moyen poru calculer la nouvelle valeur de cette meme varaible

Posté par
gggg1234
re : Sauvegarde d'informations sur java 04-02-15 à 16:33

attention par contre, pour nbrpartiemoyennes_terminées il faut faire un +1 (ou un -1) selon que tu increment la varibale nbrpartiemoyennes_terminées avant ou apres ce calcul là.

Posté par
Riley
re : Sauvegarde d'informations sur java 04-02-15 à 17:03

if(Resultat ==4)
           nbrpartiemoyennes_terminées++;
           tauxreussite_moyen = nbrpartiemoyennes_terminées/nbrpartie_moyennes*100;
           tempsreso_moyen = (nbrpartiemoyennes_terminées * tempsreso_moyen) + Afficheur7 / ( nbrpartiemoyennes_terminées);

Comme ça pour l'incrémentation?
Par contre éclipse me met une petite croix rouge qui souligne Afficheur 7 et il me dit "Afficheur7 cannot be resolved to a variable".

Posté par
Riley
re : Sauvegarde d'informations sur java 04-02-15 à 17:04

Je vais mettre le code complet ce sera mieux

import java.util.Scanner;
public class Information{

static Scanner sudoku = new Scanner (System.in);

public static void main(String[] args){


     int Sudoku = 0;
     int Resultat = 0;
     int nbrpartie_faciles = 0;
     int nbrpartie_moyennes = 0;
     int nbrpartie_dificiles = 0;
     int nbrpartiefaciles_terminées = 0;
     int nbrpartiemoyennes_terminées = 0;
     int nbrpartiedificiles_terminées = 0;
     int tauxreussite_facile = nbrpartiefaciles_terminées/nbrpartie_faciles*100;
     int tauxreussite_moyen = nbrpartiemoyennes_terminées/nbrpartie_moyennes*100;
     int tauxreussite_dificile = nbrpartiedificiles_terminées/nbrpartie_dificiles*100;
     int tempsreso_facile = 0;
     int tempsreso_moyen = 0;
     int tempsreso_dificile = 0;
     int tempsmoyreso_facile = tempsreso_facile/nbrpartiefaciles_terminées;
     int tempsmoyreso_moyen = tempsreso_moyen/nbrpartiemoyennes_terminées;
     int tempsmoyreso_dificile = tempsreso_dificile/nbrpartiedificiles_terminées;
     int nbrpartieperdue = (nbrpartie_faciles+nbrpartie_moyennes+nbrpartie_dificiles)-(nbrpartiefaciles_terminées+nbrpartiemoyennes_terminées+nbrpartiedificiles_terminées);
     int nbrpartiegagnée = nbrpartiefaciles_terminées+nbrpartiemoyennes_terminées+nbrpartiedificiles_terminées;
     int nbrpartiejouée = nbrpartie_faciles+nbrpartie_moyennes+nbrpartie_dificiles;
    

    


System.out.println ("Bonjour, veuillez suivre les informations qui s'afficheront sur votre écran");

    Scanner Unscanner1 = new Scanner(System.in);

        System.out.print(" Entrez votre nom : ");

        String Afficheur1 = Unscanner1.nextLine();
        
        
    
        Scanner Unscanner2 = new Scanner(System.in);
                                        
        System.out.print(" Entrez votre Prénom : ");
        
        String Afficheur2 = Unscanner2.nextLine();
        
        
        
        
        Scanner Unscanner3 = new Scanner(System.in);
        
        System.out.print(" Entrez votre âge :");
        
        String Afficheur3 = Unscanner3.nextLine();
                            
                  
               System.out.print("Pour continuer taper ? O pour oui);");
               char reponse = 'O';
               Scanner rep = new Scanner(System.in);
              
              
              
               while (reponse == 'O');
               {
              

                     System.out.println("Veuillez choisir un niveau de jeu:");
                                      
                    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();
                     
         if(Sudoku ==1){    
         nbrpartie_faciles++;        
                    
             System.out.println("Avez-vous gagné la partie?");
          
           Scanner Unscanner4 = new Scanner(System.in);

                   System.out.print(" Tapez 4 pour oui ");
                   
                   System.out.print(" Tapez 5 pour non ");

                 String Afficheur4 = Unscanner4.nextLine();              
                                      
           if(Resultat ==4)
               nbrpartiefaciles_terminées++;
           tauxreussite_facile = nbrpartiefaciles_terminées/nbrpartie_faciles*100;
           tempsreso_facile = (nbrpartiefaciles_terminées * tempsreso_facile) + Afficheur5 / ( nbrpartiefaciles_terminées);
          
          
          
                System.out.println("En combien de temps vous avez remplie la grille?");
           Scanner Unscanner5 = new Scanner(System.in);
           System.out.println("Donnez la réponse en minutes");
           String Afficheur5 = Unscanner5.nextLine();
         }        
               else {
               tauxreussite_facile = nbrpartiefaciles_terminées--/nbrpartie_faciles*100;
               }

          
           if(Sudoku ==2){
               nbrpartie_moyennes++;
          
        
                    System.out.println("Avez-vous gagné la partie?");
          
           Scanner Unscanner6 = new Scanner(System.in);

                   System.out.print(" Tapez 4 pour oui ");
                   
                   System.out.print(" Tapez 5 pour non ");

                 String Afficheur6 = Unscanner6.nextLine();              
                                      
           if(Resultat ==4)
           nbrpartiemoyennes_terminées++;
           tauxreussite_moyen = nbrpartiemoyennes_terminées/nbrpartie_moyennes*100;
           tempsreso_moyen = (nbrpartiemoyennes_terminées * tempsreso_moyen) + Afficheur7 / ( nbrpartiemoyennes_terminées);
          
                     
                System.out.println("En combien de temps vous avez remplie la grille?");
           Scanner Unscanner7 = new Scanner(System.in);
           System.out.println("Donnez la réponse en minutes");
           String Afficheur7 = Unscanner7.nextLine();
           }
           else {
           tauxreussite_moyen = nbrpartiemoyennes_terminées--/nbrpartie_moyennes*100;
           }
           }
          
          
           if(Sudoku ==3){
           nbrpartie_dificiles++;
          
           System.out.println("Avez-vous gagné la partie?");
          
           Scanner Unscanner8 = new Scanner(System.in);

                   System.out.print(" Tapez 4 pour oui ");
                   
                   System.out.print(" Tapez 5 pour non ");
  
                   String Afficheur8 = Unscanner8.nextLine();              
                                        
           if(Resultat ==4)
           nbrpartiedificiles_terminées++;
           tauxreussite_dificile = nbrpartiedificiles_terminées/nbrpartie_dificiles*100;
           tempsreso_dificile= (nbrpartiedificiles_terminées * tempsreso_dificile) + Afficheur9 / ( nbrpartiedificiles_terminées);
          
          
                System.out.println("En combien de temps vous avez remplie la grille?");
           Scanner Unscanner9 = new Scanner(System.in);
           System.out.println("Donnez la réponse en minutes");
           String Afficheur9 = Unscanner9.nextLine();
           }
           else {
           tauxreussite_dificile = nbrpartiedificiles_terminées--/nbrpartie_dificiles*100;
           }
           }
          
           System.out.println("Voulez-vous inserer d'autres parties? (O/N)");
                    reponse = rep.nextLine().charAt(0);
                    
               }

        
              
             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: "+nbrparties-faciles);
             System.out.println("Taux de réussite du joueur : "+nbrpartiefaciles_terminées/nbrpartie_faciles*100);
            
             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 : "+nbrpartiemoyennes_terminées/nbrpartie_moyennes*100);
            
             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 : "+nbrpartiedificiles_terminées/nbrpartie_dificiles*100);
            
            
             System.out.println("---------------------------Statistiques globales--------------------------");
            
             System.out.println("Nombre de parties perdues:");
             System.out.println("Nombre de parties gagnées:"+ "Temps de résolution moyen:");
             System.out.println("Nombre total de parties jouées:");
             System.out.println("Taux de réussite du joueur : ");
            
            
            
          
             }
              
              
            


}
            

Posté par
Riley
re : Sauvegarde d'informations sur java 04-02-15 à 17:05

Pareil pour "System.out.println("Voulez-vous insérer d'autres parties? (O/N)");" jusqu'à la fin un vrai sapin de noël.

Posté par
gggg1234
re : Sauvegarde d'informations sur java 04-02-15 à 17:10

a chaque fois :

else {
           tauxreussite_dificile = nbrpartiedificiles_terminées--/nbrpartie_dificiles*100;
           }

//ici le -- est inutile !!!
comme tu n'es pas passé dans le IF d'avant, la variable n'a pas été augmentée, donc il est inutile de la diminuer.

Posté par
gggg1234
re : Sauvegarde d'informations sur java 04-02-15 à 17:11

ton ^programme fonctione au final?

Posté par
Riley
re : Sauvegarde d'informations sur java 04-02-15 à 17:23

Pour le -- corrigé par contre reste les croix rouges et le programme fonctionne pas.
Je pense que ça viens d'une erreur d'écriture ou j'ai oublié quelque chose, car avant ça ne le faisait pas.
je vais faire deux captures d'écran pour que tu vois à quoi ça rassemble.

Posté par
Riley
re : Sauvegarde d'informations sur java 04-02-15 à 17:29

Voilà pour la première

Sauvegarde d\'informations sur java

Posté par
Riley
re : Sauvegarde d'informations sur java 04-02-15 à 17:30

et l'autre

Sauvegarde d\'informations sur java

Posté par
gggg1234
re : Sauvegarde d'informations sur java 04-02-15 à 17:42

dans eclipse, les erreurs sont expliquer, par exemple ligne 94 :
afficheur5 is not resolved
veut dire qu'il ne connait pas (à cet endroit) la varibale que tu utilises.

et c'est le meme erreur plusieurs fois

Posté par
gggg1234
re : Sauvegarde d'informations sur java 04-02-15 à 17:43

C'est par ceque tu utilise la varibale Afficheur 7 avant de l'avoir "lue"
String Afficheur7 = Unscanner7.nextLine(); (qui se trouve après, ligne 131)

Posté par
Riley
re : Sauvegarde d'informations sur java 04-02-15 à 17:47

D'accord, j'ai vu, par contre comment je fais, je la mets après.

Posté par
gggg1234
re : Sauvegarde d'informations sur java 04-02-15 à 17:49

oui tu remontes tout le bloc

System.out.println("En combien de temps vous avez remplie la grille?");
           Scanner Unscanner7 = new Scanner(System.in);
           System.out.println("Donnez la réponse en minutes");
           String Afficheur7 = Unscanner7.nextLine();

avant la ligne 125

Posté par
Riley
re : Sauvegarde d'informations sur java 04-02-15 à 17:55

C'est fait et là il me dit que l'opérateur / est incompatible avec le type String

Posté par
Riley
re : Sauvegarde d'informations sur java 04-02-15 à 18:02

Pour toutes les croix rouges à la fin c'est résolu il y avait deux } de trop. Par contre pour le reste je vois pas trop.

Posté par
gggg1234
re : Sauvegarde d'informations sur java 04-02-15 à 18:04

là on commance à faire du JAVA intéressant.

Qd tu lis ta variable Afficheur7, tu l'a déclarée comme String, c'est donc une chaine de caractère...
Ensuite tu essaie de l'utiliser pour faire des calculs (des division avec /) et il aime pas.


Il faut donc que tu transforme cette String en Integer par exemple...

je te laisse chercher.

EN java, çà s'appelle le CAST et c'est un sujet récurerrnet.
Tu trouveras la soltuon facilement sur Internet par exemple.
tu cherches "String to Integer" etc...

Posté par
Riley
re : Sauvegarde d'informations sur java 04-02-15 à 20:03

C'est bon pour ça fonctionne:
tempsreso_moyen = (nbrpartiemoyennes_terminées * tempsreso_moyen) + Integer.parseInt(Afficheur7) / ( nbrpartiemoyennes_terminées);                            
               
Par contre j'ai dernier problème qui je crois est le même, puisqu'il me dit la même chose, sauf que pour ce cas la methode précédente ne marche pas.
System.out.println("Nombre de parties non terminées: "+nbrpartie_faciles-nbrpartiefaciles_terminées);
Il me souligne tout ce qui est entre parenthèses.

Posté par
gggg1234
re : Sauvegarde d'informations sur java 04-02-15 à 20:23

Ok pour le parseint.
Attention ta formule n'est pas bonne.
Il faut nombre_parties_termineee -1 au numerateur.

Pour ton erreur idem, il fzut transfirmer les variables numeriques en string pour piuvoir les afficher dans le system.out

Posté par
Riley
re : Sauvegarde d'informations sur java 04-02-15 à 21:01

je comprend pas trop, il faut que je rajoute -1?
tempsreso_moyen = (nbrpartiemoyennes_terminées-1 * tempsreso_moyen) + Integer.parseInt(Afficheur7) / ( nbrpartiemoyennes_terminées);

Posté par
Riley
re : Sauvegarde d'informations sur java 04-02-15 à 21:06

pour l'autre problème j'ai fait: System.out.println("Nombre de parties non terminées: "+Integer.parseInt(nbrpartie_faciles-nbrpartiefaciles_terminées));

mais Eclipse me met:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The method parseInt(String) in the type Integer is not applicable for the arguments (int)
The operator - is undefined for the argument type(s) String, int
The operator - is undefined for the argument type(s) String, int

Posté par
gggg1234
re : Sauvegarde d'informations sur java 04-02-15 à 21:13

Ce n'est pas la bonne fonction.
Tu dois trouver comment transformer un nombre en string.
C'est l'inverse de tout a l'heure

Posté par
Riley
re : Sauvegarde d'informations sur java 05-02-15 à 00:35

C'est bon voilà le code complet et je n'ai plus de croix rouges.

import java.util.Scanner;
public class Information{

static Scanner sudoku = new Scanner (System.in);

public static void main(String[] args){


     int Sudoku = 0;
     int Resultat = 0;
     int nbrpartie_faciles = 0;
     int nbrpartie_moyennes = 0;
     int nbrpartie_dificiles = 0;
     int nbrpartiefaciles_terminées = 0;
     int nbrpartiemoyennes_terminées = 0;
     int nbrpartiedificiles_terminées = 0;
     int tauxreussite_facile = nbrpartiefaciles_terminées/nbrpartie_faciles*100;
     int tauxreussite_moyen = nbrpartiemoyennes_terminées/nbrpartie_moyennes*100;
     int tauxreussite_dificile = nbrpartiedificiles_terminées/nbrpartie_dificiles*100;
     int tempsreso_facile = 0;
     int tempsreso_moyen = 0;
     int tempsreso_dificile = 0;
     int tempsmoyreso_facile = tempsreso_facile/nbrpartiefaciles_terminées;
     int tempsmoyreso_moyen = tempsreso_moyen/nbrpartiemoyennes_terminées;
     int tempsmoyreso_dificile = tempsreso_dificile/nbrpartiedificiles_terminées;
     int nbrpartieperdue = (nbrpartie_faciles+nbrpartie_moyennes+nbrpartie_dificiles)-(nbrpartiefaciles_terminées+nbrpartiemoyennes_terminées+nbrpartiedificiles_terminées);
     int nbrpartiegagnée = nbrpartiefaciles_terminées+nbrpartiemoyennes_terminées+nbrpartiedificiles_terminées;
     int nbrpartiejouée = nbrpartie_faciles+nbrpartie_moyennes+nbrpartie_dificiles;
    

    


System.out.println ("Bonjour, veuillez suivre les informations qui s'afficheront sur votre écran");

    Scanner Unscanner1 = new Scanner(System.in);

        System.out.print(" Entrez votre nom : ");

        String Afficheur1 = Unscanner1.nextLine();
        
        
    
        Scanner Unscanner2 = new Scanner(System.in);
                                        
        System.out.print(" Entrez votre Prénom : ");
        
        String Afficheur2 = Unscanner2.nextLine();
        
        
        
        
        Scanner Unscanner3 = new Scanner(System.in);
        
        System.out.print(" Entrez votre âge :");
        
        String Afficheur3 = Unscanner3.nextLine();
                            
                  
               System.out.print("Pour continuer taper ? O pour oui);");
               char reponse = 'O';
               Scanner rep = new Scanner(System.in);
              
              
              
               while (reponse == 'O');
               {
              

                     System.out.println("Veuillez choisir un niveau de jeu:");
                                      
                    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();
                     
         if(Sudoku ==1){    
         nbrpartie_faciles++;        
                    
             System.out.println("Avez-vous gagné la partie?");
          
           Scanner Unscanner4 = new Scanner(System.in);

                   System.out.print(" Tapez 4 pour oui ");
                   
                   System.out.print(" Tapez 5 pour non ");

                 String Afficheur4 = Unscanner4.nextLine();
                 
               
                System.out.println("En combien de temps vous avez remplie la grille?");
         Scanner Unscanner5 = new Scanner(System.in);
         System.out.println("Donnez la réponse en minutes");
         String Afficheur5 = Unscanner5.nextLine();
        
        
           if(Resultat ==4)
               nbrpartiefaciles_terminées++;
           tauxreussite_facile = nbrpartiefaciles_terminées/nbrpartie_faciles*100;
           tempsreso_facile = (nbrpartiefaciles_terminées * tempsreso_facile) + Integer.parseInt(Afficheur5) / ( nbrpartiefaciles_terminées);        
                     
               
         }        
               else {
               tauxreussite_facile = nbrpartiefaciles_terminées/nbrpartie_faciles*100;
               }

          
           if(Sudoku ==2){
               nbrpartie_moyennes++;
          
        
                    System.out.println("Avez-vous gagné la partie?");
          
           Scanner Unscanner6 = new Scanner(System.in);

                   System.out.print(" Tapez 4 pour oui ");
                   
                   System.out.print(" Tapez 5 pour non ");

                 String Afficheur6 = Unscanner6.nextLine();  
                 
                System.out.println("En combien de temps vous avez remplie la grille?");
         Scanner Unscanner7 = new Scanner(System.in);
         System.out.println("Donnez la réponse en minutes");
         String Afficheur7 = Unscanner7.nextLine();                   
          
         if(Resultat ==4)
           nbrpartiemoyennes_terminées++;
           tauxreussite_moyen = nbrpartiemoyennes_terminées/nbrpartie_moyennes*100;
           tempsreso_moyen = (nbrpartiemoyennes_terminées * tempsreso_moyen) + Integer.parseInt(Afficheur7) / ( nbrpartiemoyennes_terminées);                            
               
           }
           else {
           tauxreussite_moyen = nbrpartiemoyennes_terminées/nbrpartie_moyennes*100;
           }
           }
          
          
           if(Sudoku ==3){
           nbrpartie_dificiles++;
          
           System.out.println("Avez-vous gagné la partie?");
          
           Scanner Unscanner8 = new Scanner(System.in);

                   System.out.print(" Tapez 4 pour oui ");
                   
                   System.out.print(" Tapez 5 pour non ");
  
                   String Afficheur8 = Unscanner8.nextLine();              
                                        
                 System.out.println("En combien de temps vous avez remplie la grille?");
         Scanner Unscanner9 = new Scanner(System.in);
         System.out.println("Donnez la réponse en minutes");
         String Afficheur9 = Unscanner9.nextLine();
        
           if(Resultat ==4)
           nbrpartiedificiles_terminées++;
           tauxreussite_dificile = nbrpartiedificiles_terminées/nbrpartie_dificiles*100;
           tempsreso_dificile= (nbrpartiedificiles_terminées * tempsreso_dificile) + Integer.parseInt(Afficheur9) / ( nbrpartiedificiles_terminées);
          
          
               
           }
           else {
           tauxreussite_dificile = nbrpartiedificiles_terminées/nbrpartie_dificiles*100;
           }
          

          
           System.out.println("Voulez-vous inserer d'autres parties? (O/N)");
                    reponse = rep.nextLine().charAt(0);
                    
              

        
              
             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 : "+nbrpartiefaciles_terminées/nbrpartie_faciles*100);
            
             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 : "+nbrpartiemoyennes_terminées/nbrpartie_moyennes*100);
            
             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 : "+nbrpartiedificiles_terminées/nbrpartie_dificiles*100);
            
            
             System.out.println("---------------------------Statistiques globales--------------------------");
            
             System.out.println("Nombre de parties perdues: "+(nbrpartie_faciles-nbrpartiefaciles_terminées)+(nbrpartie_moyennes-nbrpartiemoyennes_terminées)+(nbrpartie_dificiles-nbrpartiedificiles_terminées));
             System.out.println("Nombre de parties gagnées: "+nbrpartiefaciles_terminées+nbrpartiemoyennes_terminées+nbrpartie_dificiles+" "+"Temps de résolution moyen: "+(tempsmoyreso_facile+tempsmoyreso_moyen+tempsmoyreso_dificile)/(nbrpartiefaciles_terminées+nbrpartiemoyennes_terminées+nbrpartiedificiles_terminées));
             System.out.println("Nombre total de parties jouées: "+nbrpartiefaciles_terminées+nbrpartiemoyennes_terminées+nbrpartiedificiles_terminées+nbrpartie_faciles+nbrpartie_moyennes+nbrpartie_dificiles);
             System.out.println("Taux de réussite du joueur : "+(nbrpartiefaciles_terminées+nbrpartiemoyennes_terminées+nbrpartiedificiles_terminées)/(nbrpartie_faciles+nbrpartie_moyennes+nbrpartie_dificiles)*100);
            
            
            
          
             }

              
            


}
            

Posté par
Riley
re : Sauvegarde d'informations sur java 05-02-15 à 00:36

Le problème c'est que ça marche pas et j'ai ce message qui s'affiche:
Exception in thread "main" java.lang.ArithmeticException: / by zero
at Information.main(Information.java:18)

Posté par
Riley
re : Sauvegarde d'informations sur java 05-02-15 à 00:45

j'ai fait quelques autres corrections par contre ça marche toujours pas et j'ai le même message.
import java.util.Scanner;
public class Information{

static Scanner sudoku = new Scanner (System.in);

public static void main(String[] args){


     int Sudoku = 0;
     int Resultat = 0;
     int nbrpartie_faciles = 0;
     int nbrpartie_moyennes = 0;
     int nbrpartie_dificiles = 0;
     int nbrpartiefaciles_terminées = 0;
     int nbrpartiemoyennes_terminées = 0;
     int nbrpartiedificiles_terminées = 0;
     int tauxreussite_facile = nbrpartiefaciles_terminées/nbrpartie_faciles*100;
     int tauxreussite_moyen = nbrpartiemoyennes_terminées/nbrpartie_moyennes*100;
     int tauxreussite_dificile = nbrpartiedificiles_terminées/nbrpartie_dificiles*100;
     int tempsreso_facile = 0;
     int tempsreso_moyen = 0;
     int tempsreso_dificile = 0;
     int tempsmoyreso_facile = tempsreso_facile/nbrpartiefaciles_terminées;
     int tempsmoyreso_moyen = tempsreso_moyen/nbrpartiemoyennes_terminées;
     int tempsmoyreso_dificile = tempsreso_dificile/nbrpartiedificiles_terminées;
     int nbrpartieperdue = (nbrpartie_faciles+nbrpartie_moyennes+nbrpartie_dificiles)-(nbrpartiefaciles_terminées+nbrpartiemoyennes_terminées+nbrpartiedificiles_terminées);
     int nbrpartiegagnée = nbrpartiefaciles_terminées+nbrpartiemoyennes_terminées+nbrpartiedificiles_terminées;
     int nbrpartiejouée = nbrpartie_faciles+nbrpartie_moyennes+nbrpartie_dificiles;
     int tempsresomoy = (tempsmoyreso_facile+tempsmoyreso_moyen+tempsmoyreso_dificile)/(nbrpartiefaciles_terminées+nbrpartiemoyennes_terminées+nbrpartiedificiles_terminées);

    


System.out.println ("Bonjour, veuillez suivre les informations qui s'afficheront sur votre écran");

    Scanner Unscanner1 = new Scanner(System.in);

        System.out.print(" Entrez votre nom : ");

        String Afficheur1 = Unscanner1.nextLine();
        
        
    
        Scanner Unscanner2 = new Scanner(System.in);
                                        
        System.out.print(" Entrez votre Prénom : ");
        
        String Afficheur2 = Unscanner2.nextLine();
        
        
        
        
        Scanner Unscanner3 = new Scanner(System.in);
        
        System.out.print(" Entrez votre âge :");
        
        String Afficheur3 = Unscanner3.nextLine();
                            
                  
               System.out.print("Pour continuer taper ? O pour oui);");
               char reponse = 'O';
               Scanner rep = new Scanner(System.in);
              
              
              
               while (reponse == 'O');
               {
              

                     System.out.println("Veuillez choisir un niveau de jeu:");
                                      
                    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();
                     
         if(Sudoku ==1){    
         nbrpartie_faciles++;        
                    
             System.out.println("Avez-vous gagné la partie?");
          
           Scanner Unscanner4 = new Scanner(System.in);

                   System.out.print(" Tapez 4 pour oui ");
                   
                   System.out.print(" Tapez 5 pour non ");

                 String Afficheur4 = Unscanner4.nextLine();
                 
               
                System.out.println("En combien de temps vous avez remplie la grille?");
         Scanner Unscanner5 = new Scanner(System.in);
         System.out.println("Donnez la réponse en minutes");
         String Afficheur5 = Unscanner5.nextLine();
        
        
           if(Resultat ==4)
               nbrpartiefaciles_terminées++;
           tauxreussite_facile = nbrpartiefaciles_terminées/nbrpartie_faciles*100;
           tempsreso_facile = (nbrpartiefaciles_terminées * tempsreso_facile) + Integer.parseInt(Afficheur5) / ( nbrpartiefaciles_terminées);        
                     
               
         }        
               else {
               tauxreussite_facile = nbrpartiefaciles_terminées/nbrpartie_faciles*100;
               }

          
           if(Sudoku ==2){
               nbrpartie_moyennes++;
          
        
                    System.out.println("Avez-vous gagné la partie?");
          
           Scanner Unscanner6 = new Scanner(System.in);

                   System.out.print(" Tapez 4 pour oui ");
                   
                   System.out.print(" Tapez 5 pour non ");

                 String Afficheur6 = Unscanner6.nextLine();  
                 
                System.out.println("En combien de temps vous avez remplie la grille?");
         Scanner Unscanner7 = new Scanner(System.in);
         System.out.println("Donnez la réponse en minutes");
         String Afficheur7 = Unscanner7.nextLine();                   
          
         if(Resultat ==4)
           nbrpartiemoyennes_terminées++;
           tauxreussite_moyen = nbrpartiemoyennes_terminées/nbrpartie_moyennes*100;
           tempsreso_moyen = (nbrpartiemoyennes_terminées * tempsreso_moyen) + Integer.parseInt(Afficheur7) / ( nbrpartiemoyennes_terminées);                            
               
           }
           else {
           tauxreussite_moyen = nbrpartiemoyennes_terminées/nbrpartie_moyennes*100;
           }
           }
          
          
           if(Sudoku ==3){
           nbrpartie_dificiles++;
          
           System.out.println("Avez-vous gagné la partie?");
          
           Scanner Unscanner8 = new Scanner(System.in);

                   System.out.print(" Tapez 4 pour oui ");
                   
                   System.out.print(" Tapez 5 pour non ");
  
                   String Afficheur8 = Unscanner8.nextLine();              
                                        
                 System.out.println("En combien de temps vous avez remplie la grille?");
         Scanner Unscanner9 = new Scanner(System.in);
         System.out.println("Donnez la réponse en minutes");
         String Afficheur9 = Unscanner9.nextLine();
        
           if(Resultat ==4)
           nbrpartiedificiles_terminées++;
           tauxreussite_dificile = nbrpartiedificiles_terminées/nbrpartie_dificiles*100;
           tempsreso_dificile= (nbrpartiedificiles_terminées * tempsreso_dificile) + Integer.parseInt(Afficheur9) / ( nbrpartiedificiles_terminées);
          
          
               
           }
           else {
           tauxreussite_dificile = nbrpartiedificiles_terminées/nbrpartie_dificiles*100;
           }
          

          
           System.out.println("Voulez-vous inserer d'autres parties? (O/N)");
                    reponse = rep.nextLine().charAt(0);
                    
              

        
              
             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);
            
            
            
          
             }

              
            


}
            

Posté par
Riley
re : Sauvegarde d'informations sur java 05-02-15 à 11:34

et j'ai changé:
}        
               else {
               tauxreussite_facile = nbrpartiefaciles_terminées/nbrpartie_faciles*100;
}

Avec:
}        
               else {
               tauxreussite_facile = nbrpartiefaciles_terminées-1/nbrpartie_faciles*100;
}
j'avais oublié le -1

Posté par
Riley
re : Sauvegarde d'informations sur java 05-02-15 à 11:37

Dis je me demandais qu'est ce qui me permet de sortir de la boucle à la fin quand je demande ça :
System.out.println("Voulez-vous inserer d'autres parties? (O/N)");
                    reponse = rep.nextLine().charAt(0);

1 2 3 +




Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !