From 2fdd14d7d5d77860f901abcfbe5691d43ea87f9e Mon Sep 17 00:00:00 2001 From: Laurent Mazet Date: Fri, 7 Jun 2024 00:00:02 +0200 Subject: [PATCH] sceletum for score evaluation --- function.c | 11 +++++++++++ function.h | 4 ++++ scrabble.c | 8 ++++++++ 3 files changed, 23 insertions(+) diff --git a/function.c b/function.c index e138664..6a5ca6c 100644 --- a/function.c +++ b/function.c @@ -36,6 +36,11 @@ void freeplay (play_t *play) free (play); } +void cleanplay (play_t *play) +{ + memset (play->tab, ' ', play->xsize * play->ysize); +} + int putletter (play_t *play, char letter, int x, int y) { int ret = (letter != '\0') && (play->tab[x + play->xsize * y] == ' '); @@ -156,5 +161,11 @@ void moveletter (draw_t *game, int move) game->index = index; } +int evalscore (play_t *play, play_t *turn, bag_t *bag) +{ + int score = 0; + + return score; +} /* vim: set ts=4 sw=4 et: */ diff --git a/function.h b/function.h index 79934e5..6d70d63 100644 --- a/function.h +++ b/function.h @@ -21,6 +21,8 @@ draw_t *initdraw (bag_t *bag); void freedraw (draw_t *draw); +void cleanplay (play_t *play); + draw_t *retrievetiles (draw_t *draw, int nbtiles, draw_t *game); void freedraw (draw_t *draw); @@ -33,6 +35,8 @@ int returnletter (draw_t *game, char letter); void moveletter (draw_t *game, int move); +int evalscore (play_t *play, play_t *turn, bag_t *bag); + #endif /* __FUNCTION_H__ */ /* vim: set ts=4 sw=4 et: */ diff --git a/scrabble.c b/scrabble.c index 3c64e54..5d8abe6 100644 --- a/scrabble.c +++ b/scrabble.c @@ -131,6 +131,8 @@ int main (int argc, char *argv[]) draw_t *game = retrievetiles (draw, board->length, NULL); VERBOSE (DEBUG, printf ("bag: 0x%p\ndraw: 0x%p\ngame: 0x%p\n", bag, draw, game)); + play_t *turn = initplay (board->xsize, board->ysize); + initscr (); noecho (); cbreak (); @@ -157,6 +159,7 @@ int main (int argc, char *argv[]) char current, letter = getnextletter (game); drawwindow (game, xdrawwin, ydrawwin); + int score = 0; int stop = 0; while (!stop) { char highlight = current = gessletter (play, x, y); @@ -177,6 +180,7 @@ int main (int argc, char *argv[]) case '\r': case 'd': game = retrievetiles (draw, board->length, game); + cleanplay (turn); letter = getnextletter (game); drawwindow (game, xdrawwin, ydrawwin); break; @@ -214,6 +218,7 @@ int main (int argc, char *argv[]) case ' ': case 'v': if (putletter (play, letter, x, y)) { + putletter (turn, letter, x, y); letter = getnewletter (game); drawwindow (game, xdrawwin, ydrawwin); } @@ -227,6 +232,7 @@ int main (int argc, char *argv[]) if (current != ' ') { if (returnletter (game, current)) { removeletter (play, x, y); + removeletter (turn, x, y); letter = getnextletter (game); drawwindow (game, xdrawwin, ydrawwin); } @@ -246,11 +252,13 @@ int main (int argc, char *argv[]) default: } showboard (play, board, xoffset, yoffset, mode); + score = evalscore (play, turn, bag); } endwin (); freeplay (play); + freeplay (turn); freedraw (game); freedraw (draw); -- 2.30.2