Random module

This module provides a simple random number generator based on a Linear Congruential Generator (LCG), along with functions to generate random numbers of different types and ranges. It also provides functions to set and get the random seed.

To use this module, include the following line in your project file:

require engine.math.random_core // or require engine.core

Some useful random functions are also available in the Daslang standard module random.

Constants

MAX_INT_RANDOM = 2147483647

Maximum random int value, equals (2^31 - 1)

Functions

randomize_seed()

Randomizes the random seed using the current time.

get_random_seed(): uint4

Returns the current random seed.

set_random_seed(new_seed: uint4)

Sets the random seed.

Arguments:
  • new_seed : uint4

set_random_seed(int_seed: int)

Sets the random seed.

Arguments:
  • int_seed : int

random_float(): float

Returns a random float value in the range [0..1).

random_float4(): float4

Returns a random float4 value in the range [0..1).

random_int(): int

Returns a random int value in the range [0..MAX_INT_RANDOM].

random_int4(): int4

Returns a random int4 value in the range [0..MAX_INT_RANDOM].

random_uint(): uint

Returns a random uint value in the range [0..0xFFFFFFFF].

random_uint4(): uint4

Returns a random uint4 value in the range [0..0xFFFFFFFF].

random_bool(): bool

Returns a random boolean value.

random_range(from: int; to: int): int

Returns a random int value in the range [from..to). If to is less than from then the arguments will be swapped. If to is equal to from then this value will be returned.

Arguments:
  • from : int

  • to : int

random_range(from: uint; to: uint): uint

Returns a random uint value in the range [from..to). If to is less than from then the arguments will be swapped. If to is equal to from then this value will be returned.

Arguments:
  • from : uint

  • to : uint

random_range(from: float; to: float): float

Returns a random float value between [from..to).

Arguments:
  • from : float

  • to : float

random_range(from: float2; to: float2): float2

Returns a random float2 value between [from..to).

Arguments:
  • from : float2

  • to : float2

random_range(from: float3; to: float3): float3

Returns a random float3 value between [from..to).

Arguments:
  • from : float3

  • to : float3

random_range(from: float4; to: float4): float4

Returns a random float4 value between [from..to).

Arguments:
  • from : float4

  • to : float4

random_unit_vector_2d(): float2

Returns a random unit vector in 2D.

random_unit_vector(): float3

Returns a random unit vector in 3D.

random_point_inside_unit_sphere(): float3

Returns a random point inside the unit sphere.

random_point_inside_unit_circle(): float2

Returns a random point inside the unit circle.

random_point_on_segment(start_point: float|float2|float3|float4; end_point: float|float2|float3|float4): auto

Returns a random point on the segment defined by the two points start_point and end_point.

Arguments:
  • start_point : option<float|float2|float3|float4>

  • end_point : option<float|float2|float3|float4>

random_element(array_of_elements: array<auto(TT)>|array<auto(TT)>#|auto(TT)[]|auto(TT)[]#): TT

Returns a random element from the given array.

Arguments:
  • array_of_elements : option<array<auto(TT)>|array<auto(TT)>#|auto(TT)[-1]|auto(TT)[-1]#>