add central messages
authorLaurent Mazet <mazet@softndesign.org>
Sun, 8 Sep 2024 21:46:07 +0000 (23:46 +0200)
committerLaurent Mazet <mazet@softndesign.org>
Sun, 8 Sep 2024 21:46:07 +0000 (23:46 +0200)
display.c
display.h
snake.c

index 38b8b77e21e9b35c89aae13454103cba7a115678..4e9ba2d9022cf408ff1b985b441fca06b09691cb 100644 (file)
--- a/display.c
+++ b/display.c
@@ -241,6 +241,20 @@ void msgwindow (char *msg, int xoffset, int yoffset, int length)
     setcolor (black_gray);
 }
 
+void msg2window (char *msg, int xoffset, int yoffset)
+{
+    int i;
+    setcolor (gray_black);
+    int length = strlen (msg) + 2;
+    xoffset -= length / 2;
+    _dobound (length, 1, xoffset, yoffset);
+    for (i = 0; i < length; i++) {
+        mvaddch (yoffset, xoffset + i, ' ');
+    }
+    mvaddstr (yoffset, xoffset + 1, msg);
+    setcolor (black_gray);
+}
+
 void displaysnake (board_t *board, snake_t *snake)
 {
     int i;
index 63f2a354b8cd3da0f082f283e910e8ada9d0e02a..98b8159871e7538924beeb63b1e08f6b0f9de506 100644 (file)
--- a/display.h
+++ b/display.h
@@ -34,6 +34,8 @@ char *savewindow (int length, int xoffset, int yoffset);
 
 void msgwindow (char *msg, int xoffset, int yoffset, int length);
 
+void msg2window (char *msg, int xoffset, int yoffset);
+
 void displaysnake (board_t *board, snake_t *snake);
 
 void scorewindow (int xoffset, int yoffset, int length, int score, int duration);
diff --git a/snake.c b/snake.c
index b1a2ac3591c2fadb9f5c8f34f5e86d407a24b92e..222a305a066d2f2ab617e543442ca8e16aaf1e1e 100644 (file)
--- a/snake.c
+++ b/snake.c
@@ -249,13 +249,15 @@ int main (int argc, char *argv[])
         switch (mode) {
         case 0:
             msgwindow ("Press <p> to start", xmsg, ymsg, lmsg);
+            msg2window ("Game passed", xboard + board->xsize / 2, yboard + (board->ysize - 1) / 2);
             break;
         case 1:
             sprintf (msg, "Speed %d", (turnspanmax - turnspan) / spangap + 1);
             msgwindow (msg, xmsg, ymsg, lmsg);
             break;
         case 2:
-            msgwindow ("End of game", xmsg, ymsg, lmsg);
+            msgwindow ("Press <q> to quit", xmsg, ymsg, lmsg);
+            msg2window ("End of game", xboard + board->xsize / 2, yboard + (board->ysize - 1) / 2);
             break;
         }