L’idée derrière la sorcière est très simple. Vous posez à la sorcière une question dont la réponse est oui ou non, et elle vous donne la réponse.

Sauf que la réponse qu’elle choisie est aléatoirement sélectionnée à partir d’un ensemble de réponses préfabriquées.

Ecrivez un programme qui demande continuellement à l’utilisateur de poser des questions dont la réponse est oui ou non, et sélectionne par hasard parmis les 5 réponses préenregistrées:

  • Sans aucun doute.
  • Oui.
  • Redemandez plus tard.
  • Non.
  • Karel le pense.

Voici un exemple d'exécution du programme.

Pour générer des nombres aléatoires, créez une variable d'instance RandomGenerator (une variable déclarée en dehors de toutes les méthodes), comme suit:

private RandomGenerator rgen = new RandomGenerator();

Vous pouvez ensuite utiliser la variable pour générer des nombres aléatoires.

rgen.nextInt(max) //génère un int aléatoire dans l'intervalle [0, max)

Solution


import acm.program.ConsoleProgram;
import acm.util.RandomGenerator;

public class Sorciere extends ConsoleProgram {

	private static RandomGenerator rg = new RandomGenerator();

	public void run() {
		while(true) {
			readLine("Posez une question dont la réponse est oui ou non: ");

			int choix = rg.nextInt(5);

			if(choix == 0) {
				println("Sans aucun doute");
			}
			
			if(choix == 1) {
				println("Oui");
			}
			
			if(choix == 2) {
				println("Redemandez plus tard");
			}
			
			if(choix == 3) {
				println("Non");
			}
			
			if(choix == 4) {
				println("Karel le pense.");
			}
			
			println("");
		}
	}
}