initial score (not working)
authorLaurent MAZET <laurent.mazet@thalesgroup.com>
Fri, 7 Jun 2024 14:07:58 +0000 (16:07 +0200)
committerLaurent MAZET <laurent.mazet@thalesgroup.com>
Fri, 7 Jun 2024 14:07:58 +0000 (16:07 +0200)
function.c
scrabble.c

index 24b6f31cb6257c8750b3441fc2a069c1ee14fb51..718b6f107d102d14d6e164d11d17149f5900c690 100644 (file)
@@ -189,6 +189,41 @@ int evalscore (play_t *play, play_t *turn, bag_t *bag)
 {
     int score = 0;
 
+    int i, j;
+    int accountable = 0;
+
+    /* words in line */
+    for (j = 0; j < play->ysize; j++) {
+        int s = 0;
+        int wfactor = 1;
+        for (i = 0; i < play->xsize; i++) {
+            char letter = play->tab[i + j * play->xsize];
+            if (letter == ' ') {
+                if (accountable) {
+                    score += s * wfactor;
+                }
+                s = 0;
+                accountable = 0;
+                wfactor = 1;
+            } else {
+                int lfactor = 1;
+
+                int k;
+                for (k = 0; k <bag->nbletters; k++) {
+                    if (bag->lettervalues[k].letter == letter) {
+                        score += bag->lettervalues[k].value * lfactor;
+                        break;
+                    }
+                }
+                if (turn->tab[i + j * turn->xsize] != ' ') {
+                    accountable = 1;
+                }
+            }
+        }
+    }
+
+    /* words in column */
+
     return score;
 }
 
index 41c0a8d5e1323d687acbbd9ee7974a80fed6ed1b..d252adfa4344d928049e42c43e813f2cb058381d 100644 (file)
@@ -187,6 +187,8 @@ int main (int argc, char *argv[])
             cleanplay (turn);
             letter = getnextletter (game);
             drawwindow (game, xdrawwin, ydrawwin);
+            score = 0;
+            cleanplay (turn);
             break;
         case KEY_UP:
         case 'i':