From: Laurent Mazet Date: Wed, 24 Jul 2024 18:37:36 +0000 (+0200) Subject: cosmetic changes X-Git-Tag: v1.0~4 X-Git-Url: https://secure.softndesign.org/git/?a=commitdiff_plain;h=97769040b0fb6c10fbd3dacfd44010c17a2bd489;p=tetris.git cosmetic changes --- diff --git a/display.c b/display.c index c725ebf..03cc1d6 100644 --- a/display.c +++ b/display.c @@ -203,11 +203,11 @@ void _element (board_t *board, int x, int y, int symb) } } -void boardwindow (board_t *board) +void boardwindow (board_t *board, int mode) { int i, j; - set_color (black); + set_color ((mode) ? white : black); _dobound (board->xsize, board->ysize, board->xoffset, board->yoffset); set_color (white); @@ -221,51 +221,32 @@ void boardwindow (board_t *board) void scorewindow (int xoffset, int yoffset, int length, int score, int level) { set_color (black); - _dobound (length + 7, 2, xoffset, yoffset); + _dobound (length + 9, 2, xoffset, yoffset); set_color (white); char fmt[12], msg[32]; sprintf (fmt, "%% %dd", length); - sprintf (msg, "score: "); + sprintf (msg, " score: "); sprintf (msg + strlen (msg), fmt, score); mvaddstr (yoffset, xoffset, msg); - sprintf (msg, "level: % 3d", level); + sprintf (msg, " level: % 3d", level); mvaddstr (yoffset + 1, xoffset, msg); } -void nextwindow (block_t *blocks, int nb, int xoffset, int yoffset, int next) +void displayblock (board_t *board, block_t *block, int x, int y) { - int height = maxblockheight (blocks, nb); - int width = maxblockwidth (blocks, nb) + 2; - - set_color (black); - _dobound (width, height, xoffset, yoffset); - set_color (white); - int i, j; - for (i = 0; i < width; i++) { - for (j = 0; j < height; j++) { - mvaddch (yoffset + j, xoffset + i, ' '); - } + + if (x == -1) { + x = board->width / 2; } - block_t *block = blocks + next; - for (i = 0; i < block->width; i++) { - for (j = 0; j < block->height; j++) { - if (*getcell (block, i, j) == '.') { - _set_symb_color ('0' + block->color); - mvaddch (yoffset + (height - block->height) / 2 + j, xoffset + (width - block->width) / 2 + i, ' '); - set_color (white); - } - } + if (y == -1) { + y = (board->height - block->height) / 2; } -} -void displayblock (board_t *board, block_t *block, int x, int y) -{ - int i, j; for (i = 0; i < block->width; i++) { for (j = 0; j < block->height; j++) { if (*getcell (block, i, j) != ' ') { diff --git a/display.h b/display.h index a26ea1f..17b72b1 100644 --- a/display.h +++ b/display.h @@ -8,12 +8,10 @@ int helpwindow (char *msg, int xoffset, int yoffset); -void boardwindow (board_t *board); +void boardwindow (board_t *board, int mode); void scorewindow (int xoffset, int yoffset, int length, int score, int level); -void nextwindow (block_t *blocks, int nb, int xoffset, int yoffset, int next); - void displayblock (board_t *board, block_t *block, int x, int y); char *savewindow (int length, int xoffset, int yoffset); diff --git a/tetris.c b/tetris.c index e6293a2..a94199d 100644 --- a/tetris.c +++ b/tetris.c @@ -153,6 +153,10 @@ int main (int argc, char *argv[]) /* get blocks */ int nb_blocks = 0; block_t *blocks = getblocks ("std", &nb_blocks); + board_t *nextblock = initboard (maxblockwidth (blocks, nb_blocks) + 2, maxblockheight (blocks, nb_blocks)); + setscale (nextblock, scale); + + /* get first bloc */ int current = rand () % nb_blocks; block_t *cblock = copyblock (blocks + current); int xblock = board->width / 2; @@ -174,10 +178,10 @@ int main (int argc, char *argv[]) int yboard = board->yoffset = xoffset + 1; int xscore = xboard + xoffset + 2 + board->xsize; int yscore = yboard; - int xnext = xscore; - int ynext = yscore + xoffset + maxblockheight (blocks, nb_blocks); - int xhelp = xnext - 1; - int yhelp = ynext + 1 + maxblockheight (blocks, nb_blocks) + xoffset; + nextblock->xoffset = xscore + (9 + nbdigit + 1 - nextblock->xsize) / 2; + int ynext = nextblock->yoffset = yscore + 1 + 2 + yoffset; + int xhelp = xscore - 1; + int yhelp = ynext + nextblock->ysize + yoffset; int xsave = max (xboard + (board->xsize - savelen) / 2, 1); int ysave = yboard + (board->ysize - 1) / 2; char *savename = NULL; @@ -203,12 +207,14 @@ int main (int argc, char *argv[]) switch (mode) { case -1: - nextwindow (blocks, nb_blocks, xnext, ynext, current); + boardwindow (nextblock, 1); + displayblock (nextblock, blocks + current, -1, -1); sprintf (msg, "Get ready player One. Press to start"); break; case 0: halfdelay (0); - nextwindow (blocks, nb_blocks, xnext, ynext, current); + boardwindow (nextblock, 1); + displayblock (nextblock, blocks + current, -1, -1); sprintf (msg, "Game in pause. Pause

to continue"); break; case 1: @@ -236,7 +242,8 @@ int main (int argc, char *argv[]) mode = 2; sprintf (msg, "To bad, you loose. Score is %d", score); } - nextwindow (blocks, nb_blocks, xnext, ynext, next); + boardwindow (nextblock, 1); + displayblock (nextblock, blocks + next, -1, -1); break; case 2: freeblock (cblock); @@ -247,10 +254,10 @@ int main (int argc, char *argv[]) msgwindow (msg, xmsg, ymsg, lmsg); int nblines = checkline (board, &score, &level); while (nblines-- > 0) { - boardwindow (board); + boardwindow (board, 0); stackboard (board); } - boardwindow (board); + boardwindow (board, 0); scorewindow (xscore, yscore, nbdigit, score, (level / 10) + 1); int newspeed = 10 + 4900 / (level / 10 + 1); if (newspeed != speed) {