Avoid leading zeroes on internally generated random seeds, _just_ in
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Mon, 23 May 2005 12:02:37 +0000 (12:02 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Mon, 23 May 2005 12:02:37 +0000 (12:02 +0000)
case they confuse anyone who expects the same seed without the
leading zero to be equivalent.

git-svn-id: svn://svn.tartarus.org/sgt/puzzles@5838 cda61777-01e9-0310-a592-d414129be87e

midend.c

index 1d7087a..070f4f3 100644 (file)
--- a/midend.c
+++ b/midend.c
@@ -135,11 +135,16 @@ void midend_new_game(midend_data *me)
             /*
              * Generate a new random seed. 15 digits comes to about
              * 48 bits, which should be more than enough.
+             * 
+             * I'll avoid putting a leading zero on the number,
+             * just in case it confuses anybody who thinks it's
+             * processed as an integer rather than a string.
              */
             char newseed[16];
             int i;
             newseed[15] = '\0';
-            for (i = 0; i < 15; i++)
+            newseed[0] = '1' + random_upto(me->random, 9);
+            for (i = 1; i < 15; i++)
                 newseed[i] = '0' + random_upto(me->random, 10);
             sfree(me->seedstr);
             me->seedstr = dupstr(newseed);