[???] Chcę stworzyć quiz w Delphi 6.0 lecz nie potrafię tworzyć procedury losującej pytania?
Proszę o pomoc lub o kod zrodlowy!!!!!!!!!!
Jeżeli pytania przechowujesz w stringach (stałych) to zrób coś takiego:
Const
Pytanka:Array[0..255] of string=('Pytanie jeden','pytanie 2'...,'pytanie 256');
a z funkcją losującą to no problem:
Function Pytanie: String
begin
Randomize;//co wywołanie randomize, aby maxymalnie zminimalizować powtórki
Result:=Pytanka[Random(255)];
end;
Resztę to no problem dorobić
Case Random[iles tam] of
0: begin
cos tam...
end;
1: ...
Randomize;//co wywołanie randomize, aby maxymalnie zminimalizować powtórki
Problem jest bo randomize powinien być wywoływany tylko raz np w zdarzeniu OnCreate formatki.
begin
randomize;
case random(3) of //tam gdzie jest 2 wpisz taką liczbę ile ma być pytań
0 : Label1.Caption := 'Pytanie numer 1';
1 : Label1.Caption := "Pytanie numer 2';
2 : Label1.Caption := 'Pytanie numer 3';
end;
end;
Pochwalony!
Na końcu pliku (ale przed end.) napisz:
initialize
Randomize;
To załatwi sprawę... :)
Problem jest bo randomize powinien być wywoływany tylko raz np w zdarzeniu OnCreate formatki.
Wcale że nie... Randomize po prostu ustawia wartość randseed na oblicząną na podstawie aktualnej daty, czasu i konfiguracji sprzęta
Problem jest bo randomize powinien być wywoływany tylko raz np w zdarzeniu OnCreate formatki.
Wcale że nie... Randomize po prostu ustawia wartość randseed na oblicząną na podstawie aktualnej daty, czasu i konfiguracji sprzęta
O ile wiem tylko czasu (i moze daty). Czytalem w jakiejs madrej ksiazce ze wielokrotne wywolywanie Randomize moze spowodowac utrate losowsci. Wiec lepiej raz.
Help Delphi:
Do not combine the call to Randomize in a loop with calls to the Random function. Typically, Randomize is called only once, before all calls to Random.