Hallo!
Ich habe ein kleines Problem:
Ich versuche in moment ein Lotto Generator zu Programmieren.
Ich habe nix weiteres außer if... then und repeat...until eingesetzt.
Aber irgendwie klappt das nicht und es kommen doppelte Zahlen raus.
Guckt euch das mal an:
Delphi-Quellcode:
....
var zahl:array[1..6] of integer;
nr1,nr2:integer;
procedure TForm1.Button1Click(Sender: TObject);
begin
randomize;
zahl[1]:=random(49)+1;
zahl[2]:=random(49)+1;
zahl[3]:=random(49)+1;
zahl[4]:=random(49)+1;
zahl[5]:=random(49)+1;
zahl[6]:=random(49)+1;
panel1.caption:=inttostr(zahl[1]);
panel2.caption:=inttostr(zahl[2]);
panel3.caption:=inttostr(zahl[3]);
panel4.caption:=inttostr(zahl[4]);
panel5.caption:=inttostr(zahl[5]);
panel6.caption:=inttostr(zahl[6]);
if zahl[1] = zahl[2] or zahl[3] or zahl[4] or zahl[5] or zahl[6] then
begin
repeat
zahl[1]:=random(49)+1;
panel1.Caption:=inttostr(zahl[1]);
until zahl[1] <> zahl[2] or zahl[3] or zahl[4] or zahl[5] or zahl[6];
end;
if zahl[2] = zahl[1] or zahl[3] or zahl[4] or zahl[5] or zahl[6] then
begin
repeat
zahl[2]:=random(49)+1;
panel2.Caption:=inttostr(zahl[2]);
until zahl[2] <> zahl[1] or zahl[3] or zahl[4] or zahl[5] or zahl[6];
end;
if zahl[3] = zahl[2] or zahl[1] or zahl[4] or zahl[5] or zahl[6] then
begin
repeat
zahl[3]:=random(49)+1;
panel3.Caption:=inttostr(zahl[3]);
until zahl[3] <> zahl[2] or zahl[1] or zahl[4] or zahl[5] or zahl[6];
end;
if zahl[4] = zahl[2] or zahl[3] or zahl[1] or zahl[5] or zahl[6] then
begin
repeat
zahl[4]:=random(49)+1;
panel4.Caption:=inttostr(zahl[4]);
until zahl[4] <> zahl[2] or zahl[3] or zahl[1] or zahl[5] or zahl[6];
end;
if zahl[5] = zahl[2] or zahl[3] or zahl[4] or zahl[1] or zahl[6] then
begin
repeat
zahl[5]:=random(49)+1;
panel5.Caption:=inttostr(zahl[5]);
until zahl[5] <> zahl[2] or zahl[3] or zahl[4] or zahl[1] or zahl[6];
end;
if zahl[6] = zahl[2] or zahl[3] or zahl[4] or zahl[5] or zahl[1] then
begin
repeat
zahl[6]:=random(49)+1;
panel6.Caption:=inttostr(zahl[6]);
until zahl[6] <> zahl[2] or zahl[3] or zahl[4] or zahl[5] or zahl[1];
end;