GRY-Online.pl --> Archiwum Forum

Delphi - losowanie bez powtórzeń - moje nie działa

24.05.2010
20:53
smile
[1]

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?

24.05.2010
23:21
[2]

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;

25.05.2010
00:02
[3]

redan [ Wiking ]

musisz poprawić zakres. powinno być random(49) jak u Ciebie, a nie 48

© 2000-2025 GRY-OnLine S.A.