correct rotate function and add more tests (4)
authorLaurent Mazet <mazet@softndesign.org>
Mon, 24 Jun 2024 22:01:05 +0000 (00:01 +0200)
committerLaurent Mazet <mazet@softndesign.org>
Mon, 24 Jun 2024 22:02:45 +0000 (00:02 +0200)
bogus.gol [new file with mode: 0644]
function.c
function.h
gameoflife.c

diff --git a/bogus.gol b/bogus.gol
new file mode 100644 (file)
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     "
index b554b5f25a706f3d9141feae80384c5b5679bbfc..2957bb7ffcbaeee3230a66005942df00e50b3634 100644 (file)
@@ -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);
 
index a402ab4951b3b40367a1853ce680c6c0938eb1f1..cfca3ff53bd5375c41ff63f9ef74f5bc66cb9c92 100644 (file)
@@ -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);
index a39ed2139d2f3b080fe508f1323366306ebb721a..46ecbc761d5655a3fcf95e84f13ee4ea68d14e51 100644 (file)
@@ -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: */