TP2 : chaînes de caractères
Le jeu du Pendu
Principe : Le joueur doit deviner un mot que le programme a choisi au hasard
dans une liste.
-
le programme doit indiquer le nombre de lettres du mot à deviner
-
le joueur propose une lettre à la fois; si la lettre apparaît
dans le mot, le programme doit montrer à quelle(s) position(s) elle
se trouve.
-
le joueur a un nombre d'erreurs limité (par exemple 10) -> dès
que le nombre limite d'erreurs est atteint, le joueur a perdu.
Une solution (Pendu.java), avec dessin du pendu avec la tortue
Exemple d'exécution :
(dans ce cas, le mot à deviner est cheval)
java Pendu
le mot a decouvrir contient 6 lettres : ------
tapez une lettre : a
la lettre a se trouve dans le mot
lettres que vous avez proposees : a
mot a decouvrir : ----a-
tapez une lettre : p
la lettre p ne se trouve pas dans le mot
lettres que vous avez proposees : ap
mot a decouvrir : ----a-
tapez une lettre : c
la lettre a se trouve dans le mot
lettres que vous avez proposees : apc
mot a decouvrir : c---a-
...
Si le joueur perd, il faut lui afficher le mot qu'il aurait dû
deviner.
Si le joueur tape un caractère qui n'est pas une lettre (par
exemple '9', '=', etc.), on ne prend pas ce caractère en compte
(n'est pas considéré comme une erreur).
Si le joueur entre le même caractère plusieurs fois, il
ne faut le prendre en compte que la première fois.
Indications
-
vous pouvez stocker les différents mots à deviner dans un
tableau. Par exemple :
String[] mots = { "lapin", "lion", "elephant", "ane", "tigre",
"souris", "chat", "chien", "tortue", "poule", "cheval", "boeuf", "hippopotame",
"singe", "rhinoceros" };
-
pour tirer au hasard un mot du tableau :
int i = (int)(Math.random()* mots.length);
String motADeviner = mots[i];
-
pour lire un caractère entré au clavier et pour écrire
dans le terminal (ou fenêtre DOS), vous pouvez utiliser une variable
de la classe Terminal.
Terminal t = new Terminal();
char c = t.lireChar();
// pour lire un caractère
t.ecrireString("bonjour"); // équivalent
de System.out.println("bonjour");
Si vous préférez la manière "standard", pour lire
une chaîne de caractères entrée au clavier :
BufferedReader inr = new BufferedReader(new InputStreamReader(System.in));
String s = inr.readLine();
Si vous avez du temps... vous pouvez
-
faire une version graphique du jeu en utilisant la tortue
ATTENTION : pour que le dessin soit plus rapide,
je vous recommande de télécharger les classes de la tortue
ci-dessous (elles ont été modifiées exprès
pour ce tp) et de les mettre dans un dossier où vous mettrez tout
ce qui concerne le pendu. (séparément des classes du tutorial)
classes à
télécharger
-
Utiliser la classe Collator pour que le joueur puisse taper indifféremment
des lettres en majuscule ou en minuscule / avec ou sans accents.
Par exemple, si le mot à deviner est "éléphant"
et que le joueur propose 'e', le résultat devrait être é-é-----
09/04/2001
CLMJ