From: Mazet Laurent Date: Mon, 3 Jun 2024 05:41:30 +0000 (+0200) Subject: cleaner help message X-Git-Tag: v1.0~8 X-Git-Url: https://secure.softndesign.org/git/?a=commitdiff_plain;h=89eeafb06dc158a13c45cc9b6924e298e09680d3;p=bs.git cleaner help message --- diff --git a/battleships.c b/battleships.c index 7fcca9e..5662501 100644 --- a/battleships.c +++ b/battleships.c @@ -19,6 +19,17 @@ char *version = "0.9"; int boats[9] = {1, 1, 1, 1, 2, 2, 3, 4, 0}; +char *help = + " Rotate shirp\n" + " Move up element\n" + " Move left element\n" + " Move down element\n" + " Move right element\n" + "

Put ship or bomb\n" + " Quit\n" + " Toggle case legend\n" + ; + /* help message */ int usage (int ret) { @@ -130,7 +141,7 @@ int main (int argc, char *argv[]) displayboard (boardhuman, xhuman, yhuman, mode, 1); displayboard (boardcomputer, xcomputer, ycomputer, mode, 0); - displayhelp (whelp, xhelp, yhelp); + displayhelp (help, xhelp, yhelp, whelp); displaylogs ("Welcome to Battle Ships", wlogs, hlogs, xlogs, ylogs); displaylogs ("Put your ships on board", wlogs, hlogs, xlogs, ylogs); diff --git a/display.c b/display.c index d3c7f7d..3f6c2e8 100644 --- a/display.c +++ b/display.c @@ -105,24 +105,27 @@ void displayelement (int length, int x, int y, int orient, char symb, int show) setcolor (white); } -void displayhelp (int width, int xoffset, int yoffset) +void displayhelp (char *msg, int xoffset, int yoffset, int length) { - char *message = "Battle Ships\n------------\n- arrow or i, j, k, l to move\n- p to put ship or bomb\n- d to rotate ship\n- q to quit"; - - int i = 0, j = 0, l = 0; - char c; - while ((c = message[l++]) != 0) { - if (c != '\n') { - if (i == width) { - i = 0; - j++; - } - mvaddch (yoffset + j, xoffset + i, c); - i++; - } else { + char *title = "Help message"; + int i, j; + + for (i = 0; (i < length) && (title[i] != '\0'); i++) { + mvaddch (yoffset , xoffset + i, title[i]); + mvaddch (yoffset + 1, xoffset + i, ACS_HLINE); + } + i = j = 0; + yoffset += 2; + while ((msg) && (*msg != '\0')) { + if ((*msg == '\n') || (i == length)) { i = 0; j++; } + if (*msg != '\n') { + mvaddch (yoffset + j, xoffset + i, *msg); + i++; + } + msg++; } } diff --git a/display.h b/display.h index 36cc993..85c5696 100644 --- a/display.h +++ b/display.h @@ -9,7 +9,7 @@ void displayboard (board_t *board, int xoffset, int yoffset, int mode, int show) void displayelement (int length, int x, int y, int orient, char symb, int show); -void displayhelp (int width, int xoffset, int yoffset); +void displayhelp (char *msg, int xoffset, int yoffset, int length); void displaylogs (char *messages, int width, int height, int xoffset, int yoffset);