Version sans JavaScript, en lecture seule : les ateliers, les quiz et l’exécution du code n’y sont pas. Version complète · Catalogue · Se connecter

Séquence

Jeu du nombre mystère

Socle

L’ordinateur choisit un entier dans [1, 100]. Le joueur propose des nombres jusqu’à trouver. À chaque essai, on affiche « trop grand », « trop petit » ou « bravo ».

Objectifs : Hasard (Random), boucles, comparaisons, messages.

Fonctionnalités

  • indice(int proposition, int secret) renvoie exactement "trop grand", "trop petit" ou "bravo".
  • jouer(Scanner sc, int secret) boucle jusqu’à la bonne réponse et renvoie le nombre d’essais.
  • Le nombre d’essais est affiché à la fin.

Étapes

  1. tirerNombreSecret(int min, int max) → un int avec Random.
  2. indice(proposition, secret) → la comparaison, isolée et donc testable.
  3. jouer(sc, secret) → la boucle principale, qui compte les coups.

Critères : Validation des entrées (pas de plantage si l’utilisateur tape du texte), retour clair, comptage des coups.

Ici, un atelier : on y écrit et on y exécute du code. Il demande JavaScript.

Code de départ

NombreMystere.java

import java.util.Random;
import java.util.Scanner;

public class NombreMystere {

    public static int tirerNombreSecret(int min, int max) {
        // TODO : un entier au hasard entre min et max inclus
        return min;
    }

    public static String indice(int proposition, int secret) {
        // TODO : "trop grand", "trop petit" ou "bravo"
        return "";
    }

    public static int jouer(Scanner sc, int secret) {
        // TODO : boucler tant que ce n'est pas trouve, renvoyer le nombre d'essais
        return 0;
    }
}

Exercices.java

import java.util.Scanner;

public class Exercices {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int secret = NombreMystere.tirerNombreSecret(1, 100);
        int essais = NombreMystere.jouer(sc, secret);
        System.out.println("Trouve en " + essais + " essai(s)");
        sc.close();
    }
}

Le socle se valide dans l’atelier, qui demande JavaScript.

Indice 1

new Random().nextInt(max - min + 1) + min tire un entier dans [min, max]. Isoler indice() du reste permet de la tester sans dépendre du hasard : c’est exactement ce que font les vérifications ci-dessous.

Extensions

  • Limite d’essais (par exemple 7) et message de défaite.
  • Mode « chaud / froid » : indiquer si on se rapproche.