display speed in wide mode
authorLaurent Mazet <mazet@softndesign.org>
Mon, 9 Sep 2024 21:10:13 +0000 (23:10 +0200)
committerLaurent Mazet <mazet@softndesign.org>
Mon, 9 Sep 2024 21:10:13 +0000 (23:10 +0200)
function.c
snake.c
type.h

index 90aa293fa54c4389475664d8b051a737e4d57c88..ab56b331bf9d4c6642bb764d86fa95e415f34690 100644 (file)
@@ -134,7 +134,7 @@ int _sprinttab (char *buffer, char *name, int *tab, int nb)
 
 char *saveboard (data_t *data)
 {
-    int size = 6 * (7 + 3 + 3) + 1 + 6;
+    int size = 7 * (7 + 3 + 3) + 1 + 6;
     size += 5 + 5 + data->board->width * data->board->height + 1;
     size += 2 * (5 + 5 + data->snake->length + 1);
     VERBOSE (INFO, size += data->board->height * (8 + data->board->width));
@@ -149,6 +149,7 @@ char *saveboard (data_t *data)
     l += sprintf (buffer + l, "score: %d\n", data->score);
     l += sprintf (buffer + l, "tab: \"%s\"\n", data->board->tab);
     l += sprintf (buffer + l, "turnspan: %d\n", data->turnspan);
+    l += sprintf (buffer + l, "wide: %d\n", data->wide);
     l += sprintf (buffer + l, "width: %d\n", data->board->width);
     l += _sprinttab (buffer + l, "xsnake", data->snake->x, data->snake->length);
     l += _sprinttab (buffer + l, "ysnake", data->snake->y, data->snake->length);
@@ -222,6 +223,7 @@ data_t *loaddata (char *str)
     int score = 0;
     char *tab = NULL;
     int turnspan = 0;
+    int wide = 0;
     int width = 0;
     char *xsnake = NULL;
     char *ysnake = NULL;
@@ -252,6 +254,8 @@ data_t *loaddata (char *str)
             tab = atos (value);
         } else if (strcmp (keyword,  "turnspan") == 0) {
             turnspan = atoi (value);
+        } else if (strcmp (keyword,  "wide") == 0) {
+            wide = atoi (value);
         } else if (strcmp (keyword,  "width") == 0) {
             width = atoi (value);
         } else if (strcmp (keyword,  "xsnake") == 0) {
@@ -277,6 +281,7 @@ data_t *loaddata (char *str)
         data->duration = duration;
         data->score = score;
         data->turnspan = turnspan;
+        data->wide = wide;
         data->snake->dir = direction;
         data->snake->length = length;
         for (i = 0; i < length; i++) {
diff --git a/snake.c b/snake.c
index 1d51419ac77786f26f15d469496f3ac4db91c4dc..1dbb864c97435ede19d3e42957ce6518ab8b4e1e 100644 (file)
--- a/snake.c
+++ b/snake.c
@@ -145,6 +145,7 @@ int main (int argc, char *argv[])
         score = data->score;
         snake = data->snake;
         turnspan = data->turnspan;
+        wide = data->wide;
         free (data);
     }
 
@@ -306,6 +307,7 @@ int main (int argc, char *argv[])
                 data->duration = duration;
                 data->score = score;
                 data->turnspan = turnspan;
+                data->wide = wide;
                 char *ptr = saveboard (data);
                 if (writedata (savename, ptr)) {
                     VERBOSE (WARNING, printf ("issue writing Board\n"));
@@ -361,6 +363,7 @@ int main (int argc, char *argv[])
 /* test: snake.exe -s 4 2>&1 | grep incorrect */
 /* test: snake.exe -v 2>&1 | grep missing */
 /* test: snake.exe _ 2>&1 | grep invalid */
+/* test: { for c in p i j h x k l q; do sleep 1; echo -ne $c; done; } | snake.exe -w */
 /* test: { for c in p i j k l 'stest.snk\n' q; do sleep 1; echo -ne $c; done; } | snake.exe -v 2 */
 /* test: { for c in p i j k l '' k '' j 'stest.snk\n' q; do sleep 1; echo -ne $c; done; } | snake.exe -s 0 */
 /* test: { for c in p k q; do sleep 1; echo -n $c; done; } | snake.exe -s 0 -f test.snk && rm test.snk*/
diff --git a/type.h b/type.h
index 25438ce6ba35211856c17a2b9ca24c29e9cf6cc8..c9293f53cdcb90fe106bc08897a94fda65c5d78f 100644 (file)
--- a/type.h
+++ b/type.h
@@ -33,6 +33,7 @@ typedef struct {
     int duration;
     int score;
     int turnspan;
+    int wide;
     snake_t *snake;
 } data_t;