use 3 colors for a snake
authorLaurent MAZET <laurent.mazet@thalesgroup.com>
Fri, 30 Aug 2024 16:03:26 +0000 (18:03 +0200)
committerLaurent MAZET <laurent.mazet@thalesgroup.com>
Fri, 30 Aug 2024 16:03:26 +0000 (18:03 +0200)
display.c
function.c

index a71d43b7e1d48ab99da2009651bac3ae3f04e58f..38b8b77e21e9b35c89aae13454103cba7a115678 100644 (file)
--- a/display.c
+++ b/display.c
@@ -82,9 +82,12 @@ void _put_color_block (int y, int x, char symb)
         mvaddcb (y, x, darkgreen);
         break;
     case '4':
-        mvaddcb (y, x, yellow);
+        mvaddcb (y, x, darkergreen);
         break;
     case '5':
+        mvaddcb (y, x, yellow);
+        break;
+    case '6':
         mvaddcb (y, x, red);
         break;
     }
@@ -242,11 +245,11 @@ void displaysnake (board_t *board, snake_t *snake)
 {
     int i;
 
-    char symb = '2';
-    for (i = 0; i < snake->length; i++) {
-        _element (board, snake->x[i], snake->y[i], symb);
-        symb = '3';
+    _element (board, snake->x[0], snake->y[0], '2');
+    for (i = 1; i < snake->length - 1; i++) {
+        _element (board, snake->x[i], snake->y[i], '3');
     }
+    _element (board, snake->x[snake->length - 1], snake->y[snake->length - 1], '4');
 }
 
 void scorewindow (int xoffset, int yoffset, int length, int score, int duration)
index d1867390ac0f9049d95542e51899498672057209..63e8c564974d700605e3824d8d4b1ffe04761ab2 100644 (file)
@@ -299,7 +299,7 @@ int movesnake (board_t *board, snake_t *snake, int dir)
 
         char *cell = getcell (board, x, y);
         switch (*cell) {
-        case '5': /* decrease size */
+        case '6': /* decrease size */
             if (snake->length > 2) {
                 snake->length--;
                 snake->x[snake->length] = 0;
@@ -312,7 +312,7 @@ int movesnake (board_t *board, snake_t *snake, int dir)
                 snake->y[i] = snake->y[i - 1];
             }
             break;
-        case '4': /* increase size */
+        case '5': /* increase size */
             for (i = snake->length - 1; i >= 0; i--) {
                 snake->x[i + 1] = snake->x[i];
                 snake->y[i + 1] = snake->y[i];
@@ -344,7 +344,7 @@ void drawbonus (board_t *board, snake_t *snake, int malus, int bonus)
             x = rand () % board->width;
             y = rand () % board->height;
         } while (isown (snake, x, y));
-        *getcell (board, x, y) = '4';
+        *getcell (board, x, y) = '5';
     }
 
     for (i = 0; i < bonus; i++) {
@@ -352,7 +352,7 @@ void drawbonus (board_t *board, snake_t *snake, int malus, int bonus)
             x = rand () % board->width;
             y = rand () % board->height;
         } while (isown (snake, x, y));
-        *getcell (board, x, y) = '5';
+        *getcell (board, x, y) = '6';
     }
 }