stalowe gacie [ Konsul ]
Delphi - losowanie bez powtórzeń - moje nie działa
Witam
Męczę się z losowaniem coś w stylu totolotka lecz nie działa. Możecie poprawić?
var
i,j,k:integer;
powt:boolean;
begin
randomize;
for i:=1 to 6 do
k:=random(49)+1;
repeat
powt:= false;
for j:=1 to 6 do
if IntToStr(k) = StringGrid1.Cells[j,0] then
powt:= true;
until powt = false;
StringGrid1.Cells[i,0]:=IntToStr(k);
end;
Po przepisywałem coś z zeszytu. Szczerze jestem cienki z programowania.
Jak najlepiej to zrobić by później móc sprawdzić czy wcześniej podane liczby zgadzają się z wylosowanymi?
redan [ Wiking ]
spróbuj tak:
var
powt: integer;
k,i,j: integer;
begin
for i:=1 to 6 do
begin
powt := 0;
k:=random(48)+1;
repeat
for j:=1 to 6 do
if stringgrid1.Cells[1,j] = inttostr(k) then
begin
powt := 1;
k:=random(48)+1;
end
else powt := 0;
until powt = 0;
stringgrid1.Cells[1,i]:= inttostr(k);
end;
end;
redan [ Wiking ]
musisz poprawić zakres. powinno być random(49) jak u Ciebie, a nie 48