Einzelnen Beitrag anzeigen

Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Sammelbilder [lineares Feld]

  Alt 27. Apr 2007, 19:34
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.
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat