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.