Générer des entiers aléatoires différents
Coucou :D
J'essaie de générer des nombres au hasard pour les utiliser dans un programme et vérifier quelle est la probabilité approchée de perdre ou de gagner à un jeu dans un exemple précis. Pour le fun 8-)
Voici mon problème : dans la boucle while, random(n) donne toujours le même nombre dans une exécution. Puis un autre nombre pour une autre exécution. Je n'arrive pas à trouver l'erreur. :mrgreen:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| program blackjack ;
var n, banque, compteuras, win, i : integer ;
begin
compteuras:=0;
banque:=10;
win:=0;
for i:=1 to 100 do begin
while banque<17 do begin
randomize ;
n:=random(13)+1;
if n>9 then n:=10;
if (n=1) and (banque<11) then begin
n:=11;
compteuras:=1;
end;
if ((banque+n)>21) and (compteuras=1) then begin
compteuras:=compteuras-1 ;
banque:=banque+n-10;
end
else banque:=banque+n;
end;
if banque<22 then win:=win+1;
writeln(banque); //j'ai mis ça pour vérifier le résultat, et sur les 100 appels, banque vaut exactement la même valeur
end;
writeln(win);
end. |