summaryrefslogtreecommitdiff
path: root/src/rng.moon
diff options
context:
space:
mode:
authorAlexander M Pickering <alex@cogarr.net>2025-01-12 22:45:37 -0600
committerAlexander M Pickering <alex@cogarr.net>2025-01-12 22:45:37 -0600
commit90ee66a3a6aae10fd84f3f43844db55229933e37 (patch)
treef723f918871c3296636ef2538a1a29a23050e520 /src/rng.moon
parentdecb72f936060a65bff18e9cbf33642ea3a71cd0 (diff)
downloadggj25-90ee66a3a6aae10fd84f3f43844db55229933e37.tar.gz
ggj25-90ee66a3a6aae10fd84f3f43844db55229933e37.tar.bz2
ggj25-90ee66a3a6aae10fd84f3f43844db55229933e37.zip
work
Diffstat (limited to 'src/rng.moon')
-rw-r--r--src/rng.moon30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/rng.moon b/src/rng.moon
new file mode 100644
index 0000000..d732386
--- /dev/null
+++ b/src/rng.moon
@@ -0,0 +1,30 @@
+
+rng = {}
+totally_random_seed = tonumber(os.date("%Y%H%M%S"))
+math.randomseed(totally_random_seed)
+
+rng.generator = (seed, m, n) ->
+ seed = seed or tonumber(os.date("%Y%S"))
+ co = coroutine.wrap(() ->
+ while true
+ math.randomseed(seed)
+ seed = math.random(m,n)
+ coroutine.yield(seed)
+ )
+ co, seed
+
+rng.randomstring = (charset, length) ->
+ t = {}
+ charset_len = #charset
+ for i = 1, length
+ char = math.random(charset_len)
+ t[i] = charset\sub(char,char)
+ table.concat(t)
+
+rng.hexstring = (length) ->
+ rng.randomstring("0123456789ABCDEF", length)
+
+rng.numstring = (length) ->
+ rng.randomstring("0123456789", length)
+
+rng