Jak wykonać zdarzenia losowe w Delphi

0

[???] Chcę stworzyć quiz w Delphi 6.0 lecz nie potrafię tworzyć procedury losującej pytania?
Proszę o pomoc lub o kod zrodlowy!!!!!!!!!!

0

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ć

0

Case Random[iles tam] of
0: begin
cos tam...
end;
1: ...

0

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.

0

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;

0

Pochwalony!
Na końcu pliku (ale przed end.) napisz:

initialize
Randomize;

To załatwi sprawę... :)

0

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

0

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1