SAIL - Funkcje losujące

Gotowe kody SAIL'a, informacje na temat moddingu, itd.

Moderator: zoNE

Post Reply
User avatar
zoNE
The Great Uniter & Site Administrator
The Great Uniter & Site Administrator
Posts: 2059
Joined: Fri Feb 17, 2006 3:44 pm
Location: Poland
Contact:

SAIL - Funkcje losujące

Post by zoNE »

Serpent wrote:Funkcja losująca to funkcja która zwraca losową liczbę z podanego zbioru liczb.

Najprostszą tego typu funkcją jest funkcja Rand:

Code: Select all

Rand(min, max); // gdzie min oznacza dolny przedział liczb, a max górny.
Nieco bardziej rozbudową funkcją jest MultiRand:

Code: Select all

MultiRand(min, max, c); // gdzie c oznacza ilość obrotów maszyny losującej  :D 
Schemat działania tej funkcji wygląda następująco:

Code: Select all

Export Function MultiRand2(min, max, c);
var i, d;
begin
for i = 1 to c do
     d := Rand(min, max);

result := d;
End;

Inną funkcją losującą jest Prob. Różnica polega jednak na tym że jest to funkcja logiczna (zwraca prawdę lub fałsz).

Przykład:

Code: Select all

if Prob(90) then // prawda jeśli wynik losowania jest większy od 90
if not Prob(90) then // prawda jeśli wynik nie jest większy od 90
Schemat działania funkcji Prob:

Code: Select all

Export Function Prob2(num);
begin
if Rand(0, 100) > num then
   result := true
    else
     result := false;
End;


Powyższe funkcję są bardzo użyteczne w programowaniu misji. Przykładowo jeśli chcemy aby personel bazy miał "różne skille" to bez funkcji losującej ciężko będzie to osiągnąć.
Author: Serpent
Topic: https://forum.original-war.net/viewtopi ... =42&t=4490
Post Reply