M1202 - TP Séance 3
Durée : 2h00
Objectifs
- Traduire un algorithme en pseudo-code en un programme Java
- Ecrire un programme de dessin en Java en utilisant quelques fonctions de base
- Maîtriser la lecture des entrées clavier en Java
Au menu
- Consignes
- Conception d'un algorithme de dessin
- Conception d'un jeu de voyance
Lisez attentivement cet énoncé de TP/TD
en suivant les instructions.
En cas d'interrogation,
faites appel à moi,
que ce soit pour en savoir plus sur un des points abordés pendant le TP, ou
pour savoir comment effectuer une des tâches demandées (numérotées pour pouvoir
y faire référence simplement).
Surtout
ne restez pas bloqué(e) sur une des questions.
Entre parenthèses, à côté des titres de sous-sections, est indiqué
le temps que vous avez dû passer à effectuer les étapes précédentes.
Finissez le
TP2, en particulier les questions
D1,
D2 et
D3.
Beaucoup d'entre vous ont oublié de faire ce qui était demandé en rouge au début du TP2.
Faites-le immédiatement au début du TP d'aujourd'hui !
Le but de cet exercice est de créer un jeu où le joueur essaie de deviner
un nombre choisi au hasard par l'ordinateur entre 0 et 100.
Les joueurs qui arrivent à trouver rapidement le nombre ont probablement
un don de voyance !
Plus sérieusement, commencez par
question(); ?>créer un dossier dédié à ce TP3
(de la même manière que vous en aviez créé un dédié au TP1 et au TP2).
question(); ?>Enregistrez-y ce fichier
TP3.java.
Pour créer ce programme de jeu de voyance, quelques indications intermédiaires sont
données ci-dessous. Il faut les surligner avec la souris pour les faire apparaître.
L'objectif est de vous permettre d'avancer au maximum tout(e) seul(e) dans la
programmation du jeu. Si vous bloquez, surlignez l'indication suivante pour
voir quelle est la prochaine étape de programmation conseillée.
Le jeu doit donner un résultat similaire à celui montré dans l'image ci-contre.
Plus précisément : l'ordinateur choisit un nombre au hasard entre 1 et 100 (inclus),
et vous demande si vous l'avez deviné. Tant que vous ne l'avez pas deviné, il
vous dit si la réponse que vous avez donnée est inférieure ou supérieure au
nombre à deviner.
Pour cela, vous pourrez utiliser les algorithmes suivants :
- l'algorithme Affiche prend en entrée une chaîne de caractères et l'affiche dans la ligne de commande.
- l'algorithme reponseALaQuestion prend en entrée une chaîne de caractères, l'affiche dans la ligne de commande
en demandant à l'utilisateur d'entrer du texte, et renvoie une chaîne de caractères contenant le texte entré par
l'utilisateur.
- l'algorithme NombreAleatoire prend en entrée deux entiers i et j et renvoie un entier aléatoire entre i et j inclus.
- l'algorithme convertitChaineEnEntier prend en entrée une chaîne de caractères chaine qui contient un entier (par
exemple "42") et renvoie cet entier (dans l'exemple : 42). Il « convertit » donc une chaîne de caractères en entier.
Vous pogrammerez l'algorithme demandé dans le "
main" du fichier
TP3.java.
Actuellement ce "
main" contient quelques instructions qui illustrent le
fonctionnement des algorithmes
Affiche,
reponseALaQuestion et
convertitChaineEnEntier
en vous donnant un exemple pour chacun.
question(); ?>Compilez et exécutez le programme TP3.java
pour voir comment il fonctionne, et constater le comportement de ces instructions.
question(); ?>Remplacez le "main" de TP3.java
par les instructions voulues pour créer le jeu de voyance demandé.
Si vous n'y arrivez pas directement, surlignez l'une après l'autre les questions-indications suivantes :
- question(); ?>Écrivez l'instruction qui
permet à l'ordinateur de choisir et stocker un nombre aléatoire.
- question(); ?>Écrivez l'instruction qui
demande au joueur de deviner un nombre et récupère sa réponse.
- question(); ?>Écrivez l'instruction qui
convertit en entier la réponse donnée.
- question(); ?>Écrivez l'instruction qui
vérifie si la réponse donnée est inférieure, supérieure, ou égale à la réponse
donnée, et affiche au joueur un message d'information dans chacun des cas.
- question(); ?>Mettez les instructions précédentes
dans une boucle, de telle sorte que le processus soit répété tant que
le joueur n'a pas deviné la bonne réponse.
- question(); ?>Ajoutez les instructions
qui permettent de compter le nombre de questions posées par le joueur, et
de l'afficher à la fin.
Question "cerise sur le gâteau" :
question(); ?>ajoutez
les instructions qui permettent de répéter le jeu dix fois de suite,
et qui affiche finalement le nombre moyen de questions posées par le joueur
pour deviner les nombres. Cela permettra de voir lequel d'entre vous
a les meilleurs dons de voyance !
Question "sucre glace sur la cerise sur le gâteau" :
question(); ?>écrivez
le jeu inverse, où c'est la machine qui joue. L'utilisateur du programme
choisit un nombre aléatoire, et tant que le programme
n'a pas deviné, l'utilisateur lui répond "plus grand" ou "plus petit" et l'ordinateur
suit ces indications pour la réponse suivante.
Essayer de concevoir une stratégie intéressante pour l'ordinateur.
Si vous avez fini tout ça, vous pouvez essayer ce TP !