int multi = 0;
int scale = 1;
unsigned int seed = 0;
+int wide = 0;
int usage (int ret)
{
FILE *fd = ret ? stderr : stdout;
- fprintf (fd, "usage: %s [-c] [-f file] [-h] [-r int] [-s int] [-v int] [-w int]\n", progname);
+ fprintf (fd, "usage: %s [-c] [-f file] [-h] [-l int] [-r int] [-s int] [-v int]\n", progname);
fprintf (fd, " -c: time penalty (%s)\n", (chrono) ? "yes" : "no" );
fprintf (fd, " -f: file name (%s)\n", (filename) ? filename : "none");
fprintf (fd, " -h: help message\n");
+ fprintf (fd, " -l: board length [%d, %d] (%d)\n", minwidth, maxwidth, width);
fprintf (fd, " -m: multi players (%s)\n", (multi) ? "yes" : "no" );
fprintf (fd, " -r: random seed (%u)\n", seed);
fprintf (fd, " -s: scale [0..3] (%d)\n", scale);
fprintf (fd, " -v: verbose level (%d)\n", verbose);
- fprintf (fd, " -w: board width [%d, %d] (%d)\n", minwidth, maxwidth, width);
+ fprintf (fd, " -w: wide board (%d)\n", wide);
fprintf (fd, "%s version %s\n", progname, version);
return ret;
filename = arg;
multi = 0;
break;
+ case 'l':
+ arg = (arg[2]) ? arg + 2 : (--argc > 0) ? *(++argv) : NULL;
+ if (arg == NULL) {
+ VERBOSE (ERROR, fprintf (stderr, "%s: no length specified\n", progname));
+ return usage (1);
+ }
+ width = atoi (arg);
+ break;
case 'm':
multi = 1;
filename = NULL;
verbose = atoi (arg);
break;
case 'w':
- arg = (arg[2]) ? arg + 2 : (--argc > 0) ? *(++argv) : NULL;
- if (arg == NULL) {
- VERBOSE (ERROR, fprintf (stderr, "%s: no width specified\n", progname));
- return usage (1);
- }
- width = atoi (arg);
+ wide = 1;
break;
case 'h':
default:
/* test: tetris.exe -f nofile.ttr 2>&1 | grep "can't read file" */
/* test: tetris.exe -f bogus.ttr 2>&1 | grep 'incorrect file' */
/* test: tetris.exe -h | grep usage */
+/* test: tetris.exe -l 2>&1 | grep 'no length' */
+/* test: tetris.exe -l 6 2>&1 | grep incorrect */
/* test: tetris.exe -r 2>&1 | grep 'no seed' */
/* test: tetris.exe -s 2>&1 | grep 'no scale' */
/* test: tetris.exe -s 4 2>&1 | grep incorrect */
/* test: tetris.exe -v 2>&1 | grep missing */
-/* test: tetris.exe -w 2>&1 | grep 'no width' */
-/* test: tetris.exe -w 6 2>&1 | grep incorrect */
/* test: tetris.exe _ 2>&1 | grep invalid */
/* test: { sleep 1; echo -n s; sleep 1; echo -n ouuljki; sleep 1; echo q; } | tetris.exe -s 0 */
/* test: { sleep 1; echo -n s; sleep 1; echo -n ouuljki; sleep 1; echo q; } | tetris.exe -s 1 */
/* test: { sleep 1; echo -n s; sleep 1; echo -n ouuljki; sleep 1; echo q; } | tetris.exe -s 2 */
/* test: { sleep 1; echo -n s; sleep 1; echo -n ouuljki; sleep 1; echo q; } | tetris.exe -s 3 */
/* test: { sleep 1; echo -n skkkkkkkkkkkkkkkkkk; sleep 6; echo -n kkkkkkkkkkkkkkkkk; sleep 1; echo q; } | tetris.exe */
-/* test: { sleep 1; echo -n s; sleep 1; echo oup; sleep 1; echo -n puljki; sleep 1; echo -ne 'sb.ttr\e'; sleep 1; echo -e 'sab\b.ttr'; sleep 1; echo q; } | tetris.exe -w 9 -v 3 */
+/* test: { sleep 1; echo -n s; sleep 1; echo oup; sleep 1; echo -n puljki; sleep 1; echo -ne 'sb.ttr\e'; sleep 1; echo -e 'sab\b.ttr'; sleep 1; echo q; } | tetris.exe -l 9 -v 3 */
/* test: { sleep 1; echo -n s; sleep 1; echo q; } | tetris.exe -f a.ttr && rm a.ttr && test \! -f b.ttr */
-/* test: { echo -n s; sleep 1; echo -n ooollllki; sleep 1; echo -n uuukjjjji; sleep 1; echo -n ooollllki; sleep 1; echo -n uuukjjjji; sleep 1; echo -n ooollllki; sleep 1; echo -n uuukjjjji; sleep 1; echo -n ooollllki; sleep 1; echo -n uuukjjjji; sleep 1; echo -n iii; sleep 1; echo q; } | tetris.exe -w 9 */
-/* test: { echo -n s; sleep 1; echo -n lllololoi; sleep 1; echo -n jjjujujui; sleep 1; echo -n lllololoi; sleep 1; echo -n jjjujujui; sleep 1; echo q; } | tetris.exe -w 9 */
+/* test: { echo -n s; sleep 1; echo -n ooollllki; sleep 1; echo -n uuukjjjji; sleep 1; echo -n ooollllki; sleep 1; echo -n uuukjjjji; sleep 1; echo -n ooollllki; sleep 1; echo -n uuukjjjji; sleep 1; echo -n ooollllki; sleep 1; echo -n uuukjjjji; sleep 1; echo -n iii; sleep 1; echo q; } | tetris.exe -l 9 */
+/* test: { echo -n s; sleep 1; echo -n lllololoi; sleep 1; echo -n jjjujujui; sleep 1; echo -n lllololoi; sleep 1; echo -n jjjujujui; sleep 1; echo q; } | tetris.exe -l 9 */
/* test: { echo -n s; sleep 1; echo -n iiiiiiiiiiiii; sleep 1; echo q; } | tetris.exe */
/* test: { echo -n s; sleep 1; echo -n jjuuui; sleep 1; echo -n jjoi; sleep 1; echo q; } | tetris.exe -f lines.ttr */
/* test: { echo -n s; sleep 1; echo -n jjuuui; sleep 1; echo -n jjoi; sleep 1; echo q; } | tetris.exe -c -f lines.ttr */
/* test: { echo -n siiiiiii; sleep 50; echo q; } | tetris.exe -c */
-/* test: { echo -n s; sleep 1; echo -n ooollllkieeeddddszp; sleep 1; echo -n puuukjjjjiaaasqqqqz; sleep 1; echo -n ooollllkieeeddddsz; sleep 1; echo -n uuukjjjjiaaaasqqqqz; sleep 1; echo -n ooollllkieeedddddsz; sleep 1; echo -n uuukjjjjiaaaasqqqqz; sleep 1; echo -n ooollllkieeeedddddsz; sleep 1; echo -n uuukjjjjiaaaasqqqqz; sleep 1; echo -n izizizizzi; sleep 1; echo -ne '\e'; } | tetris.exe -m -w 9 */
-/* test: { echo -n s; sleep 1; echo -n lllololoidddededez; sleep 1; echo -n jjjujujuiqqqaqaqaz; sleep 1; echo -n lllololoidddededez; sleep 1; echo -n jjjujujuiqqqaqaqaz; sleep 1; echo -ne '\e'; } | tetris.exe -m -w 9 */
+/* test: { echo -n s; sleep 1; echo -n ooollllkieeeddddszp; sleep 1; echo -n puuukjjjjiaaasqqqqz; sleep 1; echo -n ooollllkieeeddddsz; sleep 1; echo -n uuukjjjjiaaaasqqqqz; sleep 1; echo -n ooollllkieeedddddsz; sleep 1; echo -n uuukjjjjiaaaasqqqqz; sleep 1; echo -n ooollllkieeeedddddsz; sleep 1; echo -n uuukjjjjiaaaasqqqqz; sleep 1; echo -n izizizizzi; sleep 1; echo -ne '\e'; } | tetris.exe -m -l 9 */
+/* test: { echo -n s; sleep 1; echo -n lllololoidddededez; sleep 1; echo -n jjjujujuiqqqaqaqaz; sleep 1; echo -n lllololoidddededez; sleep 1; echo -n jjjujujuiqqqaqaqaz; sleep 1; echo -ne '\e'; } | tetris.exe -m -l 9 */
/* test: { echo -n s; sleep 1; echo -n iziziziziziziziziziziziziz; sleep 1; echo -ne '\e'; } | tetris.exe -m */
/* test: { echo -n sddddzdzdzqz; sleep 1; echo -n oollliooiujijjjji; sleep 1; echo -n aaqqqqzojjji; sleep 1; echo -ne '\e'; } | tetris.exe -m -r 1 */