- if (params)
- par = thegame.decode_params(params);
- else
- par = thegame.default_params();
- parstr = thegame.encode_params(par);
+ par = thegame.default_params();
+ if (params) {
+ if ( (seed = strchr(params, '#')) != NULL )
+ *seed++ = '\0';
+ thegame.decode_params(par, params);
+ }
+ if ((error = thegame.validate_params(par)) != NULL) {
+ fprintf(stderr, "%s: %s\n", pname, error);
+ return 1;
+ }
+ parstr = thegame.encode_params(par, FALSE);
+
+ {
+ void *seeddata;
+ int seedlen;
+ if (seed) {
+ seeddata = seed;
+ seedlen = strlen(seed);
+ } else {
+ get_random_seed(&seeddata, &seedlen);
+ }
+ rs = random_init(seeddata, seedlen);
+ }