sceletum for score evaluation
authorLaurent Mazet <mazet@softndesign.org>
Thu, 6 Jun 2024 22:00:02 +0000 (00:00 +0200)
committerLaurent Mazet <mazet@softndesign.org>
Thu, 6 Jun 2024 22:00:02 +0000 (00:00 +0200)
function.c
function.h
scrabble.c

index e138664b452f526dbed4d25895dbd6b1b2f49083..6a5ca6ccc1e2678d4dfa4f06786edae441ac8d38 100644 (file)
@@ -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: */
index 79934e51b5e75a3d578f6ce39ae3e8c90419a247..6d70d63c21b6caa1ce77a10ae6213249fa64f685 100644 (file)
@@ -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: */
index 3c64e54da73fea3872b0db73d6ff66ed2b375441..5d8abe64d4c14a85e000b803acfb7ed1b525c239 100644 (file)
@@ -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);