mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 08:01:30 -07:00
Implemented text and clipping primitives in the frontend, and added
two new simple games `fifteen' and `sixteen'. [originally from svn r4173]
This commit is contained in:
26
cube.c
26
cube.c
@ -511,15 +511,7 @@ char *new_game_seed(game_params *params)
|
||||
|
||||
for (i = 0; i < data.nclasses; i++) {
|
||||
for (j = 0; j < facesperclass; j++) {
|
||||
unsigned long divisor = RAND_MAX / data.nsquares[i];
|
||||
unsigned long max = divisor * data.nsquares[i];
|
||||
unsigned long n;
|
||||
|
||||
do {
|
||||
n = rand();
|
||||
} while (n >= max);
|
||||
|
||||
n /= divisor;
|
||||
int n = rand_upto(data.nsquares[i]);
|
||||
|
||||
assert(!flags[data.gridptrs[i][n]]);
|
||||
flags[data.gridptrs[i][n]] = TRUE;
|
||||
@ -529,7 +521,7 @@ char *new_game_seed(game_params *params)
|
||||
* better data structure for this, but for such small
|
||||
* numbers it hardly seems worth the effort.
|
||||
*/
|
||||
while ((int)n < data.nsquares[i]-1) {
|
||||
while (n < data.nsquares[i]-1) {
|
||||
data.gridptrs[i][n] = data.gridptrs[i][n+1];
|
||||
n++;
|
||||
}
|
||||
@ -567,19 +559,7 @@ char *new_game_seed(game_params *params)
|
||||
/*
|
||||
* Choose a non-blue square for the polyhedron.
|
||||
*/
|
||||
{
|
||||
unsigned long divisor = RAND_MAX / m;
|
||||
unsigned long max = divisor * m;
|
||||
unsigned long n;
|
||||
|
||||
do {
|
||||
n = rand();
|
||||
} while (n >= max);
|
||||
|
||||
n /= divisor;
|
||||
|
||||
sprintf(p, ":%d", data.gridptrs[0][n]);
|
||||
}
|
||||
sprintf(p, ":%d", rand_upto(m));
|
||||
|
||||
sfree(data.gridptrs[0]);
|
||||
sfree(flags);
|
||||
|
Reference in New Issue
Block a user