From: Laurent Mazet Date: Mon, 24 Jun 2024 22:01:05 +0000 (+0200) Subject: correct rotate function and add more tests (4) X-Git-Tag: v1.0~11^2 X-Git-Url: https://secure.softndesign.org/git/?a=commitdiff_plain;h=9f78dc795b37d8a66dfc003f59732971fb69e5e1;p=gameoflife.git correct rotate function and add more tests (4) --- diff --git a/bogus.gol b/bogus.gol new file mode 100644 index 0000000..9862375 --- /dev/null +++ b/bogus.gol @@ -0,0 +1,6 @@ +name: "Bogus" +xsize: 5 +ysize: 5 +foo: -1 +bar: "foobar +tab: " X X XXX " diff --git a/function.c b/function.c index b554b5f..2957bb7 100644 --- a/function.c +++ b/function.c @@ -73,12 +73,6 @@ void freeboard (board_t *board) free (board); } -board_t *cleanboard (board_t *board) -{ - memset (board->tab, ' ', board->xsize * board->ysize); - return board; -} - int _makecomments (char *buffer, board_t *board) { int i, j, l = 0; @@ -278,8 +272,7 @@ board_t *rotateelement (board_t *element, int rot) rot = (rot > 0) ? rot % 4 : ((1 - rot / 4) * 4 + rot) % 4; - int maxsize = (element->xsize > element->ysize) ? element->xsize : element->ysize; - board_t *newelement = initboard (maxsize, maxsize); + board_t *newelement = (rot % 2 == 0) ? initboard (element->xsize, element->ysize) : initboard (element->ysize, element->xsize); switch (rot) { case 0: @@ -308,10 +301,6 @@ board_t *rotateelement (board_t *element, int rot) break; } - if (rot % 2 == 1) { - resizeboard (newelement, element->ysize, element->xsize); - } - copyboard (element, newelement); freeboard (newelement); diff --git a/function.h b/function.h index a402ab4..cfca3ff 100644 --- a/function.h +++ b/function.h @@ -21,8 +21,6 @@ board_t *resizeboard (board_t *board, int xsize, int ysize); void freeboard (board_t *board); -board_t *cleanboard (board_t *board); - char *saveboard (board_t *board, char *name); int writedata (char *name, char *data); diff --git a/gameoflife.c b/gameoflife.c index a39ed21..46ecbc7 100644 --- a/gameoflife.c +++ b/gameoflife.c @@ -99,7 +99,7 @@ int main (int argc, char *argv[]) case 'p': arg = (arg[2]) ? arg + 2 : (--argc > 0) ? *(++argv) : NULL; if (arg == NULL) { - VERBOSE (ERROR, fprintf (stderr, "%s: no dictionary specified\n", progname)); + VERBOSE (ERROR, fprintf (stderr, "%s: no playground specified\n", progname)); return usage (1); } mode = 'p'; @@ -143,10 +143,6 @@ int main (int argc, char *argv[]) } } - if (mode == '\0') { - VERBOSE (ERROR, fprintf (stderr, "no mode defined\n")); - return 1; - } if ((speed < 1) || (speed > 255)) { VERBOSE (ERROR, fprintf (stderr, "incorrect speed (%d)\n", speed)); return 1; @@ -338,7 +334,7 @@ int main (int argc, char *argv[]) /* test: gameoflife.exe -e nofile.gol 2>&1 | grep "can't read file" */ /* test: gameoflife.exe -e bogus.gol 2>&1 | grep 'incorrect file' */ /* test: gameoflife.exe -h | grep usage */ -/* test: gameoflife.exe -p 2>&1 | grep 'no play' */ +/* test: gameoflife.exe -p 2>&1 | grep 'no playground' */ /* test: gameoflife.exe -p nofile.gol 2>&1 | grep "can't read file" */ /* test: gameoflife.exe -p bogus.gol 2>&1 | grep 'incorrect file' */ /* test: gameoflife.exe -s 2>&1 | grep 'no speed' */ @@ -348,9 +344,9 @@ int main (int argc, char *argv[]) /* test: gameoflife.exe -y 2>&1 | grep 'no height' */ /* test: gameoflife.exe _ 2>&1 | grep invalid */ /* test: echo -n q | gameoflife.exe -e glider.gol */ -/* test: { echo clllldckkkrcjjjjcxfcilililecs; sleep 5; echo -n q; } | gameoflife.exe -e glider.gol -v 2 -s 2 */ -/* test: { echo icklckcjcjckjs; sleep 2; echo; sleep 1; echo -n q; } | gameoflife.exe -x 10 -y 10 */ -/* test: { echo; sleep 4; echo -n q; } | gameoflife -p board.gol -s 1 */ +/* test: { echo clllldckkkrcjjjjcxfcilililecs; sleep 5; echo -n q; } | gameoflife.exe -e glider.gol -s 2 */ +/* test: { echo icklckcjcjckjs; sleep 2; echo; sleep 1; echo -n q; } | gameoflife.exe -x 10 -y 10 -v 2 */ +/* test: { sleep 4; echo -n q; } | gameoflife.exe -p board.gol -s 1 */ /* test: { echo cllllrckkkkjjd; sleep 3; echo -n q; } | gameoflife.exe -e beehive.gol -s 1 */ /* vim: set ts=4 sw=4 et: */