From fa7ef572c782c9394f60202d950d3380dfdce5c3 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Thu, 29 Apr 2004 18:10:22 +0000 Subject: Implemented text and clipping primitives in the frontend, and added two new simple games `fifteen' and `sixteen'. [originally from svn r4173] --- cube.c | 26 +++----------------------- 1 file changed, 3 insertions(+), 23 deletions(-) (limited to 'cube.c') diff --git a/cube.c b/cube.c index 1bc08f6..6fef4d1 100644 --- a/cube.c +++ b/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); -- cgit v1.1