Jeu de devinette
Forum INFOMATH :: Enseignement de l'informatique :: Informatique - Collège & Lycée :: Exercices Pascal
Page 1 sur 1
Jeu de devinette
Programmation d'un petit jeu de devinette
But : Le but du jeu est d'inviter l'utilisateur à deviner un nombre que l'ordinateur aurait "deviné" (en réalité, il s'agit d'un nombre aléatoire).
Principe : Dans un premier temps, le chiffre est choisi aléatoirement (il serait intéressant de lire en entrée la borne maximale du nombre aléatoire). Ensuite, l'utilisateur est amené à le deviner ; il sera aidé au cours de sa quête par des phrases du genre 'Plus petit' ou 'Plus grand' suivant que le nombre a deviné est respectivement soit plus petit, soit plus grand que le nombre entré...
Il faut préciser que l'utilisateur dispose d'un nombre fixe de tentative. Que ce soit à l'issue de ses nombres de tentatives ou qu'il devine le nombre caché (un message de félicitations est affiché le cas échéant), l'utilisateur est invité à taper n ou N s'il désire arrêter le jeu, ou alors une autre lettre pour continuer.
Préréquis : Consultez la fonction Random dans l'aide du compilateur.
Commentaire :
Comme vous avez dû le lire en consultant l'aide sur la fonction Random, il est nécessaire d'appeler la procédure Randomize d'abord. De plus, du fait que Random génère un nombre compris entre 0 et ValMax, on initialise valeur à -1 (en fait tout autre nombre négatif fait l'affaire), ainsi nous sommes sûrs qu'à l'entrée de la boucle while, la condition valeur<>nombre sera vraie.
Remarque :
La condition de fin de boucle repeat, aurait pu aussi s'écrire : UpCase(Car)='N'. Nous n'avons eu besoin de l'unité Crt que pour utiliser la procédure ClrScr qui nettoie l'écran.
But : Le but du jeu est d'inviter l'utilisateur à deviner un nombre que l'ordinateur aurait "deviné" (en réalité, il s'agit d'un nombre aléatoire).
Principe : Dans un premier temps, le chiffre est choisi aléatoirement (il serait intéressant de lire en entrée la borne maximale du nombre aléatoire). Ensuite, l'utilisateur est amené à le deviner ; il sera aidé au cours de sa quête par des phrases du genre 'Plus petit' ou 'Plus grand' suivant que le nombre a deviné est respectivement soit plus petit, soit plus grand que le nombre entré...
Il faut préciser que l'utilisateur dispose d'un nombre fixe de tentative. Que ce soit à l'issue de ses nombres de tentatives ou qu'il devine le nombre caché (un message de félicitations est affiché le cas échéant), l'utilisateur est invité à taper n ou N s'il désire arrêter le jeu, ou alors une autre lettre pour continuer.
Préréquis : Consultez la fonction Random dans l'aide du compilateur.
Commentaire :
Comme vous avez dû le lire en consultant l'aide sur la fonction Random, il est nécessaire d'appeler la procédure Randomize d'abord. De plus, du fait que Random génère un nombre compris entre 0 et ValMax, on initialise valeur à -1 (en fait tout autre nombre négatif fait l'affaire), ainsi nous sommes sûrs qu'à l'entrée de la boucle while, la condition valeur<>nombre sera vraie.
Remarque :
La condition de fin de boucle repeat, aurait pu aussi s'écrire : UpCase(Car)='N'. Nous n'avons eu besoin de l'unité Crt que pour utiliser la procédure ClrScr qui nettoie l'écran.
pirate- Entier Naturel
- Nombre de messages : 28
Réputation : 0
Points : 6452
Date d'inscription : 30/03/2007
Re: Jeu de devinette
salu pour les .............[color:0fe8=red]code:
program devine;
uses wincrt;
const
NbrTentativeMax: integer = 10;
var
nombre,
valeur,
ValMax,
tentative: integer;
car: char;
begin
clrscr;
randomize;
tentative := 0;
valeur := -1;
car := 'o';
repeat
writeln('Entrez la borne maximale du nombre aléatoire');
readln(ValMax);
until ValMax > 2;
writeln;
repeat
nombre := random(ValMax);
while ((valeur <> nombre) and (tentative <= NbrTentativeMax)) do
begin
write('Entrez une valeur : ');
readln(valeur);
if (valeur > nombre) then
writeln('Plus petit')
else if (valeur < nombre) then
writeln('Plus grand!');
tentative := tentative + 1;
end;
if (valeur = nombre) then
writeln('Vous avez gagné ')
else
writeln('Vous avez perdu ');
writeln('Jouer encore ? n pour non, une autre touche pour oui');
readln(car);
until upcase(car) = 'N';
(*(car = 'n') or (car='N');*)
end.
remarque
ce code executer avec tp7 turbo pascal 7
program devine;
uses wincrt;
const
NbrTentativeMax: integer = 10;
var
nombre,
valeur,
ValMax,
tentative: integer;
car: char;
begin
clrscr;
randomize;
tentative := 0;
valeur := -1;
car := 'o';
repeat
writeln('Entrez la borne maximale du nombre aléatoire');
readln(ValMax);
until ValMax > 2;
writeln;
repeat
nombre := random(ValMax);
while ((valeur <> nombre) and (tentative <= NbrTentativeMax)) do
begin
write('Entrez une valeur : ');
readln(valeur);
if (valeur > nombre) then
writeln('Plus petit')
else if (valeur < nombre) then
writeln('Plus grand!');
tentative := tentative + 1;
end;
if (valeur = nombre) then
writeln('Vous avez gagné ')
else
writeln('Vous avez perdu ');
writeln('Jouer encore ? n pour non, une autre touche pour oui');
readln(car);
until upcase(car) = 'N';
(*(car = 'n') or (car='N');*)
end.
remarque
ce code executer avec tp7 turbo pascal 7
pirate- Entier Naturel
- Nombre de messages : 28
Réputation : 0
Points : 6452
Date d'inscription : 30/03/2007
Sujets similaires
» la devinette d' albert
» la devinette d' albert
» Devinette avec Random
» Devinette: haja Safra :)
» Programmation d'un petit jeu de devinette (mettre en oeuvre le RANDOM)
» la devinette d' albert
» Devinette avec Random
» Devinette: haja Safra :)
» Programmation d'un petit jeu de devinette (mettre en oeuvre le RANDOM)
Forum INFOMATH :: Enseignement de l'informatique :: Informatique - Collège & Lycée :: Exercices Pascal
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum