import java.util.*; class Devin { static final Scanner input = new Scanner(System.in); static final Random random = new Random(); public static void main(String[] args) { // Ces constantes définissent l'intervalle dans lequel sont // choisis les nombres final int MIN = 1; final int MAX = 100; int x; // le nombre choisi par l'ordinateur int essai; // le nombre donné par l'utilisateur int choix; // pour choisir de continuer ou non int ncoups, mincoups; // le nombre de coups, et le meilleur score // on met `mincoups' à -1 ce qui nous permet de savoir si une // partie a déjà été jouée ou non mincoups = -1; // on fait une partie, et tant que l'utilisateur désire continuer, // on recommence. do { // l'ordinateur choisit un nombre `x' entre MIN et MAX inclus x = MIN + random.nextInt(MAX - MIN + 1); // au départ, on a joué 0 coups ncoups = 0; // Le jeu: on demande un nombre à l'utilisateur (`essai'), et // tant qu'il n'a pas deviné `x', on recommence. do { // on demande un nombre System.out.print("Un nombre entre " + MIN + " et " + MAX + " ? "); essai = input.nextInt(); // on compare essai et x, et on affiche le résultat if (essai < x) System.out.println("> trop petit"); else if (essai > x) System.out.println("> trop grand"); // on incrémente le nombre de coups ++ncoups; // s'il n'a pas deviné, on recommence } while (essai != x); // quand on arrive ici, le joueur a gagné. On affiche le // nombre de coups System.out.println("Gagné en " + ncoups + " coups."); // si c'était la première partie (mincoups == -1) ou bien s'il // a fait un meilleur score (ncoups < mincoups), on met // mincoups à jour if (mincoups == -1 || ncoups < mincoups) mincoups = ncoups; // on demande à l'utilisateur s'il veut continuer System.out.println("\n" + "1. continuer\n" + "2. quitter"); choix = input.nextInt(); // s'il veut continuer, on recommence une nouvelle partie } while (choix == 1); // L'utilisateur a décidé de quitter, on affiche le meilleur score System.out.println("\nLe meilleur score est de " + mincoups + " coups."); } }