mirror of
https://github.com/krgamestudios/Toy.git
synced 2026-04-16 07:14:07 +10:00
36 lines
900 B
Plaintext
36 lines
900 B
Plaintext
/*
|
|
|
|
Since this is a pseudo-random generator, and there's no internal state to the algorithm other
|
|
than the generator opaque, there needs to be a "call counter" (current depth) to shuffle the
|
|
initial seeds, otherwise generators created from other generators will resemble their parents,
|
|
but one call greater.
|
|
|
|
*/
|
|
|
|
import standard;
|
|
import random;
|
|
|
|
var DEPTH: int const = 20;
|
|
var levels = [];
|
|
|
|
//generate the level seeds
|
|
var generator: opaque = createRandomGenerator(clock().hash());
|
|
|
|
for (var i: int = 0; i < DEPTH; i++) {
|
|
levels.push(generator.generateRandomNumber());
|
|
}
|
|
|
|
generator.freeRandomGenerator();
|
|
|
|
//generate "levels" of a roguelike
|
|
for (var i = 0; i < DEPTH; i++) {
|
|
var rng: opaque = createRandomGenerator(levels[i] + i);
|
|
|
|
print "---";
|
|
print levels[i];
|
|
print rng.generateRandomNumber();
|
|
print rng.generateRandomNumber();
|
|
print rng.generateRandomNumber();
|
|
|
|
rng.freeRandomGenerator();
|
|
} |