Liens sponsorisés

Devinette Print E-mail
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 )
 
 

Liens sponsorisés