A voir également:
- Erreur noSuchElement
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur 5000 france tv - Forum iPhone
- Erreur g030 - Forum Bbox Bouygues
1 réponse
Utilisateur anonyme
Modifié le 4 mai 2023 à 10:37
Modifié le 4 mai 2023 à 10:37
Bonjour,
Ton problême est le suivant: en fermant le scanner du ChoixDifficulte, tu bousille ton autre scanner, lui aussi relié à System.in.
Faut mieux utiliser le même scanner:
import java.util.InputMismatchException; import java.util.Random; import java.util.Scanner; public class PlusOuMoins { private static Scanner sc; public static void main(String[] args){ System.out.println("==========> Bienvenue dans le jeu du plus ou moins !<=========="); int continuer = 0; sc = new Scanner(System.in); do { int nombreAleatoire, nombreMystere = 0, compteur = 0, difficulte=3; difficulte = ChoixDifficulte(); nombreAleatoire = NombreAleatoire(difficulte); while (nombreMystere != nombreAleatoire){ System.out.println("\nQuel est le nombre mystère ?"); boolean v = false; do{ try { nombreMystere = sc.nextInt(); v = true; } catch (InputMismatchException e) { System.out.println("La valeur saisie n'est pas un entier ou est trop grande"); sc.nextLine(); } } while (!v); compteur++; if (nombreMystere<nombreAleatoire) System.out.println("\nLe nombre mystère est plus grand que " + nombreMystere + " !"); else if (nombreMystere>nombreAleatoire) System.out.println("\nLe nombre mystère est plus petit que " + nombreMystere + " !"); else{ System.out.println("Bravo vous avez trouvé le nombre mystère, c'était " + nombreMystere + " !"); System.out.println("Vous avez utilisé " + compteur + " coups."); System.out.println("Voulez vous rejouer une petite fois ?\n 1 - Oui \n N'importe quel chiffre pour Non"); v = false; do{ try{ continuer=sc.nextInt(); v = true; } catch (InputMismatchException e){ System.out.println("Merci de saisir un chiffre."); sc.nextLine(); } } while(!v); } sc.nextLine(); }} while (continuer==1); sc.close(); } private static int NombreAleatoire (int difficulte){ int max = 0; if (difficulte == 1) max = 10; else if (difficulte == 2) max = 100; else if (difficulte == 3) max = 1000; else if (difficulte == 4) max = 10000; else if (difficulte == 5) max = 100000; Random rand = new Random(); int nombreAleatoire = rand.nextInt(max) + 1; return nombreAleatoire; } private static int ChoixDifficulte (){ int difficulte=0; boolean w = false; System.out.println("\nChoisissez votre difficulté !\n1 - Facile (entre 1 et 10)\n2 - Moyen (entre 1 et 100)\n3 - Difficile (entre 1 et 1000)"); System.out.println("4 - Très Difficile (entre 1 et 10 000)\n5 - Diabolique (entre 1 et 100 000"); do{ try{ difficulte = sc.nextInt(); w = true; } catch(InputMismatchException e){ System.out.println("Merci de rentrer un entier entre 1 et 5 !"); sc.nextLine(); } } while(!w || difficulte>5 || difficulte<1 ); return difficulte; } }