Problème de random...
2 participants
Page 1 sur 1
Problème de random...
Salut la compagnie, j'ai commencé le program eurovision tantôt...
Voici mon code :
Je soupconne que le problème vient du fait que plus on avance dans les pays, plus la variable 'AuHasard' aura moins de chance d'être 'Libre'...
Et donc le programme ne réagit/fonctionne plus après l'encodage de quelques pays...
Comment résoudre ce problème?
Merci et a+
Voici mon code :
- Spoiler:
- Code:
program Eurovision;
uses crt;
type Pays=Record
Numero: integer;
Nom : string;
Score : integer;
Points: array[1..10] of integer;
end;
const Taille=14;
var MesPays: array[1..Taille] of Pays;
procedure EncodagePays;
var i,j,AuHasard: integer;
Libre : Boolean;
begin
for i:=1 to Taille do
begin
clrscr;
Libre:=True;
randomize;
repeat
begin
AuHasard:=random(Taille)+1;
for j:=1 to i do
begin
if (AuHasard=MesPays[j].Numero) then
begin
Libre:=False;
end;
end;
if (Libre=True) then
begin
MesPays[i].Numero:=AuHasard;
end;
end;
until (Libre=True);
WriteLn('Nom du pays numero ',i,' :');
ReadLn(MesPays[i].Nom);
MesPays[i].Score:=0;
for j:=1 to 8 do
begin
MesPays[i].Points[j]:=j;
end;
MesPays[i].Points[9]:=10;
MesPays[i].Points[10]:=12;
end;
end;
procedure TriSurNumero;
var i,j,NumeroTemp,ScoreTemp: integer;
PointsTemp : array[1..10] of integer;
NomTemp : string;
begin
for i:=1 to Taille-1 do
begin
for j:=i+1 to Taille do
begin
if (MesPays[i].Numero>MesPays[j].Numero) then
begin
NumeroTemp:=MesPays[i].Numero;
NomTemp:=MesPays[i].Nom;
ScoreTemp:=MesPays[i].Score;
PointsTemp:=MesPays[i].Points;
MesPays[i].Numero:=MesPays[j].Numero;
MesPays[i].Nom:=MesPays[j].Nom;
MesPays[i].Score:=MesPays[j].Score;
MesPays[i].Points:=MesPays[j].Points;
MesPays[j].Numero:=NumeroTemp;
MesPays[j].Nom:=NomTemp;
MesPays[j].Score:=ScoreTemp;
MesPays[j].Points:=PointsTemp;
end;
end;
end;
end;
procedure AffichageIntermediaire;
var i: integer;
begin
clrscr;
Write('Numero');
Write('Pays');
WriteLn('Score');
for i:=1 to Taille do
begin
Write(MesPays[i].Numero);
Write(MesPays[i].Nom);
WriteLn(MesPays[i].Score);
end;
end;
begin
EncodagePays();
TriSurNumero();
AffichageIntermediaire();
ReadLn();
end.
Je soupconne que le problème vient du fait que plus on avance dans les pays, plus la variable 'AuHasard' aura moins de chance d'être 'Libre'...
Et donc le programme ne réagit/fonctionne plus après l'encodage de quelques pays...
Comment résoudre ce problème?
Merci et a+
Devilbull- Geek
- Nombre de messages : 200
Age : 36
Localisation : Grez-Doiceau
Classe : 1TM1
Date d'inscription : 28/10/2007
Re: Problème de random...
je ne vois pas trop le but de ta methode...
Pourquoi ta variable AuHazard !
Pourrais-tu essayer de décrire ce qu'est sencé faire cette procedure...
Pourquoi ta variable AuHazard !
Pourrais-tu essayer de décrire ce qu'est sencé faire cette procedure...
yrejk- Admin
- Nombre de messages : 1013
Age : 35
Localisation : Wavre-LLn
Classe : 1TIM2
Date d'inscription : 24/09/2007
Re: Problème de random...
yrejk a écrit:je ne vois pas trop le but de ta methode...
Pourquoi ta variable AuHazard !
Pourrais-tu essayer de décrire ce qu'est sencé faire cette procedure...
Variable au hasard = numéro de passage des groupes...
Procedure --> encodage des pays
Devilbull- Geek
- Nombre de messages : 200
Age : 36
Localisation : Grez-Doiceau
Classe : 1TM1
Date d'inscription : 28/10/2007
Sujets similaires
» [problème] jeux du random
» random??
» Le jeu avec random(100)
» Problème pour un menu
» [probleme] case of
» random??
» Le jeu avec random(100)
» Problème pour un menu
» [probleme] case of
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|