mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 16:05:44 -07:00
Files
26 lines
389 B
C
26 lines
389 B
C
/*
|
|
* misc.c: Miscellaneous helpful functions.
|
|
*/
|
|
|
|
#include <assert.h>
|
|
#include <stdlib.h>
|
|
|
|
#include "puzzles.h"
|
|
|
|
int rand_upto(int limit)
|
|
{
|
|
unsigned long divisor = RAND_MAX / (unsigned)limit;
|
|
unsigned long max = divisor * (unsigned)limit;
|
|
unsigned long n;
|
|
|
|
assert(limit > 0);
|
|
|
|
do {
|
|
n = rand();
|
|
} while (n >= max);
|
|
|
|
n /= divisor;
|
|
|
|
return (int)n;
|
|
}
|