Jeux « Vache Taureau »: Programme pascal

Vache Taureau est un jeux ou on doit trouver un nombre formée par quatre chiffre par l’ordinateur le PLUS VITE possible et, pour ca, on se base sur les réponses qu’on reçoit:
- Si le nombre proposé contient un chiffre juste mais qui n’est pas a ca place, l’ordinateur affiche 1 Vache
- Et si le nombre proposé contient un chiffre juste et a sa place, l’ordinateur nous affiche 1 Taureau.
Enoncé:
Dans cet article, on va se proposé de crée un programme pascal qui permet de crée ce jeux!
Exemple:
Nombre choisis par l’ordinateur = 5478;
Votre proposition = 5182;
5 est a sa place et 8 est juste mais pas a ca place, donc l’ordinateur nous dira qu’il y a un taureau et une vache!
Solution:
program vache_taureau;
uses wincrt;
var n,nbp:integer;
Nc:string;
function verifp (p:string):boolean;
var i:integer;
begin
verifp:=false;
i:=0;
repeat
i:=i+1;
until (not(p[i] in ['1'..'9']) or (i>=4) or (i=length(p)));
if i=4 then
verifp:=true;
end;
procedure verif (p,Nc:string);
var i,j:integer;
t,v:integer;
begin
t:=0;
v:=0;
for i:=1 to length(Nc) do
begin
j:=0;
repeat
j:=j+1;
until (Nc[i]=p[j]) OR (j>=length(Nc));
if (Nc[i]=p[i]) then
t:=t+1
else if ((ji) AND (Nc[i]=p[j])) then
v:=v+1;
end;
if (T<4) then
begin
writeln('#####################@@@@@@@####################');
write('### ');
case v of
0: write('aucune vache');
1: write('une vache');
2: write('deux vaches');
3: write('trois vaches');
4: write('quatres vaches');
end;
write (' et ');
case t of
0: write('aucun taureau');
1: write('un taureau. Vous avancez!');
2: write('deux taureaux. C''est bien!');
3: write('trois taureaux. Encore un peu et vous y étes!');
4: write('quatre taureaux!')
end;
writeln;
writeln('#####################@@@@@@@####################');
end;
end;
procedure essai(Nc:string;nbp:integer);
var p:string;
begin
repeat
repeat
writeln;
write('Donnez moi votre préposition composé de 4 chiffres : ');
readln(p);
until (length(p)=4);
verif(p,Nc);
nbp:=nbp+1;
until (p=Nc);
writeln('Bien jouer! C''était bel et bien le numéro ',p,' !');
writeln('et vous avez trouver mon numéro en ',nbp,' essais!');
if (nbp<=5) then writeln('Et c''est EXCELLENT!');
end;
begin
randomize;
n:=random(9000)+1000;
str(n,Nc);
writeln('J''ai choisis mon nombre!');
nbp:=0;
essai(Nc,nbp);
end.
Programme complet!
Veuillez m’informer par commentaire si vous trouvez une erreur… Merci!
Quelques explication:
- J’ai utiliser exprès le
case . ofcar ca fait longtemps que je ne l’ai pas fait! - la variable
nbpest un compteur des essais de l’utilisateur… - Comme vous l’avez surement remarqué, le
random(9000)+1000affecte a la variablenun un nombre entre 1000 et 9999.
Turbo Pascal 1.5 fr (4,1 MiB, 303 hits)
Abonnez-vous au flux RSS et vous aurez tous les nouveaux articles délivrés pour vous!
aaaaaaaaaaa vrmt a7ssen 7aja mdrrr
Merci d’avoir un blog interessant
@kissa @jozzy-online:
Ce n’est qu’un plaisir de le partager avec vous
chers ami
j’apprécie votre travail , mais juste une remarque qui sert à rien , (mais pardonnez ma débilité
)
le random(8999)+100 retourne un nombre dans[1000..9998]
pas [1000.9999] mais ça sert à rien puisque le nombre ne doit contenir que des chiffres uniques
@awax_tunisien:
j’utilise le random(9000)+1000 (merci pour l’info du 8999) pour avoir une valeur entre 1000 et 9999, vu que le nombre choisi doit etre composé de 4 chiffres (préférablement different de 0).
Merci d’avoir un blog interessant
merci
c joli
Good job .. thnks !
fama une erreur
if (Nc[i]=p[i]) then
t:=t+1
else if ((ji) AND (Nc[i]=p[j])) then
v:=v+1;
j=i mouch ji :p
j’ai trouver un erreur sur l’instruction
uses wincrt
et
else if ((ji) and (Nc[i]=p[j])) then
v:=v+1;
salut tnajmou ta3mlou el pascal mta3 el jeu par el condition Si.. alors.. Sinon