Also, ich würde das nach wie vor über eine Menge lösen (lbZiehung ist eine ListBox):
Delphi-Quellcode:
procedure TFrmLotto.FormCreate(Sender: TObject);
begin
Randomize;
end;
procedure TFrmLotto.btnZiehungClick(Sender: TObject);
var Kugeln: set of byte;
i, Zufall: byte;
begin
lbZiehung.Items.BeginUpdate;
try
lbZiehung.Items.Clear;
Kugeln := [1..49];
for i := 0 to 5 do
begin
Zufall := Random(49) + 1;
while not (Zufall in Kugeln) do
Zufall := Random(49) + 1;
Exclude(Kugeln, Zufall);
lbZiehung.Items.Add(IntToStr(Zufall));
end;
finally
lbZiehung.Items.EndUpdate;
end;
end;
Allerdings ist die ListBox unsortiert, aber ein bisschen Arbeit soll ja auch noch bleiben, gell?
[edit] Und hier die Version mit einer Fußschleife:
Delphi-Quellcode:
procedure TFrmLotto.FormCreate(Sender: TObject);
begin
Randomize;
end;
procedure TFrmLotto.btnZiehungClick(Sender: TObject);
var Kugeln: set of byte;
i, Zufall: byte;
begin
lbZiehung.Items.BeginUpdate;
try
lbZiehung.Items.Clear;
Kugeln := [1..49];
for i := 0 to 5 do
begin
repeat
Zufall := Random(49) + 1;
until Zufall in Kugeln;
Exclude(Kugeln, Zufall);
lbZiehung.Items.Add(IntToStr(Zufall));
end;
finally
lbZiehung.Items.EndUpdate;
end;
end;
@Appolonius: Zur Strafe schreibst Du die nächsten 3 Programme in vi, damit Du weißt, was ich hier durchmache (ich kämpfe hier mehr mit der
IDE, als meinen Gedankengang zu Ende zu bringen [/edit]