Véletlen számok, az eljárás randomize

Ebben a cikkben megpróbálom elmondani, hogy mi a véletlenszám-generátor, hogyan kell használni, és hogyan kell mindig nézd példák használata a véletlen számok Delphi.

Ez az eljárás inicializálja (nagyon egyszerűen fogalmazva indít) egy véletlenszám-generátor. Azt is meg kell jegyezni, hogy a véletlenszám-generátor lehet kezdeményezni nemcsak hivatkozva Randomize. hanem hozzárendelésével változó RandSeed (erről beszélni alább).

Kiváltása nélkül véletlenszám-generátor, olvassa el a megfelelő szerepét választotta egy véletlen szám mindig ugyanazt az eredményt adja.

Előállítása a véletlen szám

Annak érdekében, hogy egy véletlen számot kell használni a funkciót Random. Ez a címe:

működnek Random [(Tartomány: Integer)];

Utalva a funkció paraméterek nélkül, visszatér a típusú érték a Real tartományban:

Ha a paraméter megadott k egész szám, a függvény egy egész értéket a tartomány:

vagy az érthetőség kedvéért, akkor írhatjuk:

Fontos, hogy a végrehajtás a véletlenszerű lejátszás funkció függően változhat a fordítóprogram, ezért nem ajánlott használni ezt a funkciót, például titkosítására.

Példa a Random funkciót.

Könnyedén össze egy kis lőtér, egy időzítő és kép, és persze a véletlenszám-generátor.

Azt hogy az űrlapon Timer1 időzítő és képet Image1 (ne felejtsük el, hogy töltse le a képet), és írjuk be a OnTimer eseménykezelő

eljárás TForm1.Timer1Timer (Sender: TObject);
kezdődik
Véletlenszerű; // kezdeni a véletlenszám-generátor
Image1.left: = Random (Form1.width);
Image1.top:=Random(Form1.height);
végén;

Csak minden alkalommal, amikor véletlenszerűen koordináták a kép, ami elkezd mozogni formájában véletlenszerűen. Bár nem lenne logikus, hogy hívja Véletlenszerűsítés egyszer, amikor az űrlap betöltődik.

Most nézzük reakció bekerülni a képet. Természetesen ez onclick esemény a képet:

eljárás TForm1.Image1Click (Sender: TObject);
kezdődik
Timer1.Enabled: = false; // leállítja az időzítőt
ShowMessage (Hit a cél! '); Timer1.Enabled: = true; // fut hátsó végén;

Lehetne nyilvántartást vezetnek a pontot, ami csökkenti a Life Line képek, és még néhány játék feints. Növeli a sebességet a játék, akkor egyszerűen csökkentik az időzítő funkció

Itt van készen egy egyszerű játék.

Töltsük meg a tömb Random

Véletlenszerű;
// töltse ki a tömb
i: = 1-től 10 csinál egy [i]: = Random (10);

// megjeleníti a tömb az űrlap vászon
i: = 1-től 10-do Canvas.TextOut (10 + 10 * i, 10, IntToStr (a [i]));

Array minden esetben tartalmazzák a nem-negatív elemeket, hogy töltse egy sor nem-negatív elemeket és még meg kell írni ezt:

i: = 1-től 10 csinál egy [i]: = Random (20) -10;

Így a tömb értékek között mozog (-10. 9)

Fogadása a véletlen számot RandSeed

Kezdés véletlen generátor is kapott anélkül, hogy Véletlenszerűsítés eljárást. Ezt használja a változó RandSeed. Itt egy példa, hogy ezt szemlélteti:

eljárás TForm1.Button1Click (Sender: TObject);
var RandSeed: LongInt;
kezdődik
RandSeed: = random (10);
ShowMessage (IntToStr (RandSeed));
végén;

Így beszéltünk véletlen számok Delphi. Remélem, hogy mindenki tud szerezni legalább egy kicsit új magamnak ezt a cikket.

Kapcsolódó cikkek