|
Written by Administrator
|
|
Thursday, 14 February 2008 23:47 |
Source : developpez.com (adapté par Ahmed Fessi) Tâche : 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. Commentaires : - Extrait de l'aide du compilateur sur la fonction Random : Random (function)
Returns a random number. Declaration function Random [ ( Range: Word) ]: < Same type as parameter >; Remarks To initialize the Random number generator, call Randomize, or assign a value to RandSeed. Return Value A Word random number within the range 0 <= X < Range. - 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.
Correction Problème : Devinette Par : Ahmed Fessi Pascal : program devine; uses wincrt; const NbrTentativeMax: integer = 10; var nombre, valeur, ValMax, tentative: integer; car: char; begin 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.
|
|
Last Updated ( Thursday, 14 February 2008 23:49 )
|