4
4
* Created by Gustav Hartivgsson.
6
[CCode (cname = "V", cprefix = "v_")]
10
10
* At the moment this just wraps the GLib Rand things.
12
12
* This also provides a static version of the methods.
14
[CCode (cname = "VRandom", cprefix = "v_random_")]
15
15
public class Random {
17
private static GLib.Once<Utils.Random> _instance;
17
private static GLib.Once<Vee.Random> _instance;
19
19
private GLib.Rand rand;
21
[CCode (cname = "v_random_new")]
22
22
private Random () {
23
23
this.rand = new GLib.Rand ();
26
[CCode (cname = "v_random_get_instance")]
27
27
public static Random get_instance () {
28
28
return _instance.once (() => {
29
29
return new Random ();
33
33
/* **** Instance versions *** */
34
[CCode (cname = "v_random_get_double")]
35
35
public double get_double () {
36
36
return rand.next_double ();
39
[CCode (cname = "v_random_get_range")]
40
40
public double get_double_range (double begin, double end) {
41
41
return rand.double_range (begin, end);
44
[CCode (cname = "v_random_get_int")]
45
45
public int32 get_int () {
46
46
return (int32) rand.next_int ();
49
[CCode (cname = "v_random_get_int_range")]
50
50
public int32 get_int_range (int32 begin, int32 end) {
51
51
return rand.int_range ((int32) begin, (int32) end);
54
[CCode (cname = "v_random_seed")]
55
55
public void seed (int32 seed) {
56
56
rand.set_seed (seed.abs());
60
60
/* **** Static versions *** */
61
[CCode (cname = "v_random_get_static_int")]
62
62
public static int32 get_static_int () {
63
63
Random r = Random.get_instance ();
64
64
return r.get_int ();
67
[CCode (cname = "v_random_get_static_double")]
68
68
public static double get_static_double () {
69
69
Random r = Random.get_instance ();
70
70
return r.get_double ();
73
[CCode (cname = "v_random_get_static_int_range")]
74
74
public static int32 get_static_int_range (int32 begin, int32 end) {
75
75
Random r = Random.get_instance ();
76
76
return r.get_int_range (begin, end);
79
[CCode (cname = "v_random_get_static_double_range")]
80
80
public static double get_static_double_range (double begin, double end) {
81
81
Random r = Random.get_instance ();
82
82
return r.get_double_range (begin, end);