#include <stdio.h> #include <string> #include "prng.h" int main(int argc, char *argv[]) { std::string str = "testing"; PRNG test_rand; PRNG test_seed (*(unsigned int *) "testing"); int i, results[11] = {0}; printf ("Testing distribution with 10,000 numbers between 1 and 10:\n"); for (i = 0; i < 10000; i++) results[test_rand (10)]++; for (i = 1; i < 11; i++) printf (" %2d: %3d\n", i, results[i]); printf ("\nGenerating 20 random numbers between 1 and 100:\n"); for (i = 1; i < 21; i++) printf ("%3d%c", test_rand (), i % 10 == 0 ? '\n' : ' '); printf ("\nGenerating 20 random numbers between 1 and 25:\n"); for (i = 1; i < 21; i++) printf ("%3d%c", test_rand (25), i % 10 == 0 ? '\n' : ' '); printf ("\nGenerating 20 random numbers between 20 and 50:\n"); for (i = 1; i < 21; i++) printf ("%3d%c", test_rand (20, 50), i % 10 == 0 ? '\n' : ' '); printf ("\nGenerating 20 4d5 dicerolls with no rerolls:\n"); for (i = 1; i < 21; i++) printf ("%3d%c", test_rand (4, 5, 0), i % 10 == 0 ? '\n' : ' '); printf ("\nGenerating 20 4d5 dicerolls with 3 rerolls:\n"); for (i = 1; i < 21; i++) printf ("%3d%c", test_rand (4, 5, 3), i % 10 == 0 ? '\n' : ' '); printf ("\nGenerating 20 random numbers between 1 and 32,000:\n"); for (i = 1; i < 21; i++) printf ("%5d%c", test_rand (32000), i % 10 == 0 ? '\n' : ' '); printf ("\nGenerating 20 random numbers between 1 and 100 with \"testing\" as a seed:\n"); for (i = 1; i < 21; i++) printf ("%3d%c", test_seed (), i % 10 == 0 ? '\n' : ' '); test_seed.set_seed (*(unsigned int *) str.c_str()); printf ("\nGenerating 20 more random numbers between 1 and 100 with \"testing\" as a seed:\n"); for (i = 1; i < 21; i++) printf ("%3d%c", test_seed (), i % 10 == 0 ? '\n' : ' '); return 0; }