From: Laurent Mazet Date: Fri, 28 Jun 2024 06:10:05 +0000 (+0200) Subject: clean board display X-Git-Tag: v1.0~12 X-Git-Url: https://secure.softndesign.org/git/?a=commitdiff_plain;h=3a6067dd896c2471fa9f7e492ffee8e94e86da41;p=solitaire.git clean board display --- diff --git a/display.c b/display.c index e8601cc..10cf02e 100644 --- a/display.c +++ b/display.c @@ -9,8 +9,6 @@ #include "display.h" -#define LIBWIDTH 11 - typedef enum { white = 1, red, @@ -108,54 +106,40 @@ int helpwindow (char *msg, int xoffset, int yoffset) return j; } -void librarywindow (char *msg, int xoffset, int yoffset) -{ - _dobound (LIBWIDTH, 2, xoffset, yoffset); - mvaddstr (yoffset, xoffset + (LIBWIDTH - 7) / 2, "Library"); - set_color (black); - - int i; - for (i = 0; i < LIBWIDTH; i++) { - mvaddch (yoffset + 1, xoffset + i, ' '); - } - - char str[LIBWIDTH + 1] = {0}; - strncpy (str, msg, LIBWIDTH); - mvaddstr (yoffset + 1, xoffset + (LIBWIDTH - (int)strlen (str)) / 2, str); - set_color (white); -} - -void boardwindow (board_t *board, int xoffset, int yoffset, int bound) +void boardwindow (board_t *board, int xoffset, int yoffset) { int i, j; - if (bound) { - _dobound (board->xsize, board->ysize, xoffset, yoffset); - } + set_color (black); + _dobound (board->xsize, board->ysize, xoffset, yoffset); + set_color (white); for (i = 0; i < board->xsize; i++) { for (j = 0; j < board->ysize; j++) { + int element = ' '; char cell = *getcell (board, i, j); switch (cell) { - case '1': - set_color (yellow); - break; - case 'N': + case 'H': + element = ACS_DIAMOND; set_color (green); break; - case 'O': + case 'P': + element = ACS_DIAMOND; set_color (red); break; + case 'O': + set_color (white); + break; case 'X': - set_color (black); + element = ACS_DIAMOND; break; case ' ': - set_color (white); + set_color (black); break; default: VERBOSE (WARNING, printf ("unknown code '%c'\n", cell)); } - mvaddch (yoffset + j, xoffset + i, ' '); + mvaddch (yoffset + j, xoffset + i, element); set_color (white); } } diff --git a/display.h b/display.h index 3f4ce7d..3b4611d 100644 --- a/display.h +++ b/display.h @@ -8,11 +8,7 @@ int helpwindow (char *msg, int xoffset, int yoffset); -void librarywindow (char *msg, int xoffset, int yoffset); - -void boardwindow (board_t *board, int xboard, int yboard, int bound); - -void elementwindow (board_t *board, int xoffset, int yoffset, board_t *element, int x, int y); +void boardwindow (board_t *board, int xboard, int yboard); char *savewindow (int length, int xoffset, int yoffset); diff --git a/solitaire.c b/solitaire.c index 6d8fe13..7dde7ae 100644 --- a/solitaire.c +++ b/solitaire.c @@ -143,7 +143,7 @@ int main (int argc, char *argv[]) while (!stop) { char *ptr = NULL; - boardwindow (board, xboard, yboard, 1); + boardwindow (board, xboard, yboard); int ch = getch (); switch (ch) {