diff options
author | Christian Cleberg <hello@cleberg.net> | 2025-05-05 18:09:27 -0500 |
---|---|---|
committer | Christian Cleberg <hello@cleberg.net> | 2025-05-05 18:09:27 -0500 |
commit | 3ec668ac415d2d92b28e658b17d8932d0cbe2b3b (patch) | |
tree | 7bfb32b5b0d5731e9d9468809b3b0cdd1e744201 /hare/rgb | |
download | learn-3ec668ac415d2d92b28e658b17d8932d0cbe2b3b.tar.gz learn-3ec668ac415d2d92b28e658b17d8932d0cbe2b3b.tar.bz2 learn-3ec668ac415d2d92b28e658b17d8932d0cbe2b3b.zip |
initial commit
Diffstat (limited to 'hare/rgb')
-rw-r--r-- | hare/rgb/rgb.ha | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/hare/rgb/rgb.ha b/hare/rgb/rgb.ha new file mode 100644 index 0000000..2a8f221 --- /dev/null +++ b/hare/rgb/rgb.ha @@ -0,0 +1,26 @@ +use datetime; +use fmt; +use math::random; + +export fn main() void = { + const rgb = generate_rgb(); + fmt::printfln("RGB: ({}, {}, {})", rgb[0], rgb[1], rgb[2])!; +}; + +fn generate_rgb() []u64 = { + // Use the current Unix epoch time as the seed value + let datetime = datetime::epochunix(&datetime::now()); + + // Generate initial pseudo-random value + // You must cast the datetime from int to u64 + let x = random::init(datetime: u64); + + // Generate RGB values between (0, 255) using pseudo-random init value + let r = random::u64n(&x, 255); + let g = random::u64n(&x, 255); + let b = random::u64n(&x, 255); + + // Structure data as array and return + let rgb_array: [3]u64 = [r, g, b]; + return rgb_array; +}; |