TP : Pendu

Piste pour faire un pendu avec java's cool

 

Comment créer un pendu avec des outils de simplification de programmation ?

Proposition de résolution en utilisant le logiciel Java’s cool.

  1. Que doit-on faire en premier dans le pendu ?

Il est nécessaire d’avoir une liste mot dans laquelle on choisit un mot.

Il faut donc créer une liste contenant des mots. Et donc trouver la fonction permettant d’insérer une liste de mots.


  1. Comment choisit-on le mot ?

Il est nécessaire de choisir un mot à deviner. Il faut choisir un mot au hasard dans la liste précédemment faite.


  1. Comment sait-on combien de caractères comporte le mot ?



Il est nécessaire de compter le nombre de caractères composant le mot. Il faut utiliser une fonction comptabilisation.


  1. Comment le joueur peut-il savoir de combien de caractères est composé le mot ?

Il faut créer des cases blanches ou tirets. Le nombre de cases doit-être égal à celui du nombre de caractères composant le mot. Il est donc nécessaire de faire une boucle (tant que) permettant de créer le nombre de cases correspondant au nombre de caractères constituant le mot.


  1. Comment le joueur peut-il rentrer une lettre ou caractère ?

Il faut utiliser une fonction permettant de communiquer avec le programme. Il faut pouvoir écrire une réponse (une lettre ou caractère).


  1. Comment savoir si la lettre est la bonne ou pas ?

Il faut la comparer avec les lettres composant le mot choisit dans la liste conçu précédemment. Il faut utiliser une comparaison.


  1. Que faire si la lettre est incorrecte ?

Il faut créer un compteur de vies permettant de compter le nombre d’erreurs.



  1. Que faire lorsque le nombre d’erreurs est atteint ?

Il faut créer un résultat « perdu » qui arrête le jeu.

Il faut afficher le mot correct.



  1. Que faire lorsque toutes les cases du mot sont remplies ?
    Il faut aussi créer un compteur pour savoir si le mot est rempli. Il faut créer un résultat  « gagné » qui arrête aussi le jeu.

  2. Comment tout assembler afin d’obtenir un pendu ?

  3. Comment utiliser la logique booléenne pour terminer faire un pendu ?



Liste de instructions permettant de répondre aux questions.

Fonctions utilisées pour répondre à chaque question

1.Il faut utiliser une fonction de création de tableau (ou liste) dont la première case est au rang 0 et la dernière au rang (n-1) :
String nomDeLaListe [] = {"abricot","banane"," citron", …} ;

 

2. Il faut utiliser une fonction de randomisation des différents éléments du tableau (ou liste) indépendamment du nombre de valeurs du tableau :
int variable = ((int) Math.floor(Math.random() * (nomDeLaListe.length))) ;

nomDeLaListe.lenght  : calcul du nombre d’éléments n de la liste nomDeLaListe
Math.random () : fonction qui définit une valeur au hasard (comprise entre 0 et 1)
(Math.random()*(nomDeLaListe.length) est une valeur au hasard
comprise sur [0 ;n[
((int) Math.floor(Math.random() * (nomDeLaListe.length))) : fonction qui prend la partie entière du résultat
on obtient bien une valeur entière pouvant aller de 0 à (n-1)

String motADeviner = nomDeLaListe [variable];

On prend l’élément de la liste nomDeLaListe de rang n=variable

3. Cette fonction donne la longueur (nombre de caractères) du mot motADeviner.

int longueur = motADeviner.length();



4.On pose co la valeur du compteur.

String [] tableLettres= new String [longueur] ; // on commence par créer un tableau de valeurs
int co = 0 ; // initialisation d’un compteur
String tiret = ("_ ") ;
for (;co < longueur ;){
// début de la boucle1
print (tiret) ;
// mettre le Tiret dans la case co du tableau tableLettres
co++ ;
// incrémenter le compteur
}
// fin de la boucle1


5. char lettre = readCharacter ("consigne :"); // permettre d’ouvrir la fenêtre et d’afficher la consigne

String rep = ("Vous avez tapé " +lettre); // ajoute la lettre rentrée par la joueur au texte

println (rep); // affiche le texte + la lettre


6.char lettre = readCharacter ("consigne :"); // permettre d’ouvrir la fenêtre et d’afficher la consigne

char art =('a'); // choisir la lettre (ici a) à comparer

if (art == lettre){ // si la lettre tapée est celle choisie pour la comparaison + début de boucle2

println("win"); // afficher win

} // fin de boucle2

else{ // sinon + début boucle3

println ("loose"); // afficher loose

} // fin boucle3

Pour le cas du pendu on créera une boucle englobant ces 2 boucles pour traiter un mot lettre par lettre.


7. int vie = 6; // on détermine 6 vies

int co = 0; // on initialise le compteur à 0

while (vie > 0){ // tant qu’il reste au moins 1 vie + début boucle4

if (co < 10){ // si co < 10 + début boucle5

vie = vie-1; // on décrémente

println ("Il vous reste"+ vie); // affiche le nombre de vies restantes

 

if (vie==0){ // si la valeur de vie arrive à 0

println ("LOOSE"); // afficher LOOSE

} // fin de boucle5

co++;} // fin de boucle4

Il sera à intégrer à la comparaison.