Zitat von
chaosben:
Delphi-Quellcode:
procedure TForm1.btn_Button1Click(Sender: TObject);
const
BILDER_GESAMT=10;
var
Bilder : array[0..BILDER_GESAMT-1] of Cardinal;
Schokoladen : Cardinal;
BilderKomplett : Boolean;
BildIndex : Cardinal;
begin
Schokoladen:=0;
for BildIndex:=Low(Bilder) to High(Bilder) do
Bilder[BildIndex]:=0;
Randomize;
BilderKomplett:=false;
while not BilderKomplett do
begin
Inc(Schokoladen);
Inc(Bilder[Random(BILDER_GESAMT)]);
BilderKomplett:=true;
for BildIndex:=Low(Bilder) to High(Bilder) do
BilderKomplett:=BilderKomplett and (Bilder[BildIndex]>0);
end;
btn_Button1.Caption:=IntToStr(Schokoladen);
end;
Du kannst dir die 2. Forschleife ersparen:
Delphi-Quellcode:
{VAR}
Fehlend, rnd : Cardinal;
{ANSTELLE DER WHILE-SCHLEIFE}
Fehlend := Length(Bilder);
while Fehlend > 0
do
begin
Inc(Schokoladen);
rnd := Random(BILDER_GESAMT);
Inc(Bilder[rnd]);
if Bilder[rnd] = 1
then
Dec(Fehlend);
end;
Du brauchst hier natürlich "BilderKomplett" nicht mehr.