From 7b7feed20e69e9633e1ae04ad8fd8cb5a1b1a752 Mon Sep 17 00:00:00 2001 From: Laurent Mazet Date: Sun, 8 Sep 2024 23:46:07 +0200 Subject: [PATCH] add central messages --- display.c | 14 ++++++++++++++ display.h | 2 ++ snake.c | 4 +++- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/display.c b/display.c index 38b8b77..4e9ba2d 100644 --- 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; diff --git a/display.h b/display.h index 63f2a35..98b8159 100644 --- 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 b1a2ac3..222a305 100644 --- a/snake.c +++ b/snake.c @@ -249,13 +249,15 @@ int main (int argc, char *argv[]) switch (mode) { case 0: msgwindow ("Press

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 to quit", xmsg, ymsg, lmsg); + msg2window ("End of game", xboard + board->xsize / 2, yboard + (board->ysize - 1) / 2); break; } -- 2.30.2