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%
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");
}
}
}
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.");
}
}
}
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...
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
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
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?
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?
si tu veux pas faire de classes comme je te disais, ben gère les entrées successives avec des tableaux !
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.
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?
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)
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;
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
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 : ");
}
}
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}
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 ?
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?
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)
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);
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à.
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".
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 : ");
}
}
Pareil pour "System.out.println("Voulez-vous insérer d'autres parties? (O/N)");" jusqu'à la fin un vrai sapin de noël.
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.
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.
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
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)
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
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.
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...
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.
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
je comprend pas trop, il faut que je rajoute -1?
tempsreso_moyen = (nbrpartiemoyennes_terminées-1 * tempsreso_moyen) + Integer.parseInt(Afficheur7) / ( nbrpartiemoyennes_terminées);
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
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
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);
}
}
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)
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);
}
}
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
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :