diff options
Diffstat (limited to 'src/sprite_test/util.pde')
-rw-r--r-- | src/sprite_test/util.pde | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/sprite_test/util.pde b/src/sprite_test/util.pde new file mode 100644 index 0000000..7fbf70d --- /dev/null +++ b/src/sprite_test/util.pde @@ -0,0 +1,33 @@ +int atxy(int x, int y) +{ + return (y << 6) + x; +} + +// ---------------------------------------------------------------------- +// qrand: quick random numbers +// ---------------------------------------------------------------------- + +static uint16_t lfsr = 1; + +static void qrandSeed(int seed) +{ + if (seed) { + lfsr = seed; + } else { + lfsr = 0x947; + } +} + +static byte qrand1() // a random bit +{ + lfsr = (lfsr >> 1) ^ (-(lfsr & 1) & 0xb400); + return lfsr & 1; +} + +static byte qrand(byte n) // n random bits +{ + byte r = 0; + while (n--) + r = (r << 1) | qrand1(); + return r; +} |