From 2c27279e0ceab3d33813910d863882a0b44c3702 Mon Sep 17 00:00:00 2001 From: Laurent Mazet Date: Tue, 10 Sep 2024 00:01:55 +0200 Subject: [PATCH] start new option: wide board --- tetris.c | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/tetris.c b/tetris.c index 2a256dc..24de7d7 100644 --- a/tetris.c +++ b/tetris.c @@ -23,19 +23,21 @@ char *filename = NULL; 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; @@ -76,6 +78,14 @@ int main (int argc, char *argv[]) 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; @@ -106,12 +116,7 @@ int main (int argc, char *argv[]) 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: @@ -149,29 +154,29 @@ int main (int argc, char *argv[]) /* 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 */ -- 2.30.2