DEADSOFTWARE

Remove ascii crap
[cavecraft.git] / src / randoms.mpsrc
1 unit randoms;
3 interface
4 procedure srand(s:integer);//Устанавливает зерно для ГПСЧ
5 function rand:integer;//Возвращает случайное число
6 function rnd(max:integer):integer;//Возвращает число от 0 до max
7 function rnd_pr(pr,p1,p2:integer):integer;
9 (* Возвращает true с вероятностью x/y *)
10 function RandomBoolean(x, y : Integer) : Boolean;
12 implementation
13 var
14 next:integer;
16 function rand:integer;
17 begin
18 next:=next xor (next << 13);
19 next:=next xor (next >>> 17);
20 next:=next xor (next << 5);
21 rand:=abs(next);
22 end;
24 procedure srand(s:integer);
25 begin
26 //Debug('srand('+s+')');
27 next:=s;
28 end;
30 function rnd(max:integer):integer;
31 begin
32 rnd:=rand mod max;
33 end;
35 function rnd_pr(pr,p1,p2:integer):integer;
36 begin
37 if pr>=rnd(101) then rnd_pr:=p1; else rnd_pr:=p2;
38 end;
40 function RandomBoolean(x, y : Integer) : Boolean;
41 begin
42 RandomBoolean := rnd(y) <= x;
43 end;
45 end.