summaryrefslogtreecommitdiff
path: root/hare/rgb
diff options
context:
space:
mode:
authorChristian Cleberg <hello@cleberg.net>2025-05-05 18:09:27 -0500
committerChristian Cleberg <hello@cleberg.net>2025-05-05 18:09:27 -0500
commit3ec668ac415d2d92b28e658b17d8932d0cbe2b3b (patch)
tree7bfb32b5b0d5731e9d9468809b3b0cdd1e744201 /hare/rgb
downloadlearn-3ec668ac415d2d92b28e658b17d8932d0cbe2b3b.tar.gz
learn-3ec668ac415d2d92b28e658b17d8932d0cbe2b3b.tar.bz2
learn-3ec668ac415d2d92b28e658b17d8932d0cbe2b3b.zip
initial commit
Diffstat (limited to 'hare/rgb')
-rw-r--r--hare/rgb/rgb.ha26
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;
+};