From a7d7542dc646a5fd124ef71e71ce260889f1701b Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Tue, 2 Feb 2016 19:24:50 +0100 Subject: Moved to 1415 directory --- 1415/files/practicum/Random.icl | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 1415/files/practicum/Random.icl (limited to '1415/files/practicum/Random.icl') diff --git a/1415/files/practicum/Random.icl b/1415/files/practicum/Random.icl new file mode 100644 index 0000000..2983656 --- /dev/null +++ b/1415/files/practicum/Random.icl @@ -0,0 +1,23 @@ +implementation module Random + +import StdInt, StdClass +import StdTime + +:: RandomSeed :== Int + +nullRandomSeed :: RandomSeed +nullRandomSeed + = 0 + +getNewRandomSeed :: !*env -> (!RandomSeed, !*env) | TimeEnv env +getNewRandomSeed env +# ({hours,minutes,seconds}, env) = getCurrentTime env += (1+(hours+minutes+seconds) bitand 65535, env) + +random :: !RandomSeed -> .(!Int,!RandomSeed) +random seed + = (newSeed,newSeed) +where + newSeed = if (nextSeed>=0) nextSeed (nextSeed+65537) + nextSeed = (seed75 bitand 65535)-(seed75>>16) + seed75 = seed*75 -- cgit v1.2.3