optimize call to spell checker
authorLaurent MAZET <laurent.mazet@thalesgroup.com>
Wed, 12 Jun 2024 08:19:27 +0000 (10:19 +0200)
committerLaurent MAZET <laurent.mazet@thalesgroup.com>
Wed, 12 Jun 2024 08:19:27 +0000 (10:19 +0200)
scrabble.c

index 5d64b699485b41c21727ae1429b7a89cb606a91d..5f059535a32f6a02581edcf4f43f5d2cbfd7da3e 100644 (file)
@@ -228,8 +228,6 @@ int main (int argc, char *argv[])
         valuewindow (bag, xvaluewin, yvaluewin, 10, highlight);
         scorewindow (nbpoints, xscorewin, yscorewin);
 
-        findwords (words, play, turn[n]);
-        checkspelling (words, dict);
         spellwindow (words, xspellwin, yspellwin, 1);
         int ch = getch ();
         spellwindow (words, xspellwin, yspellwin, 0);
@@ -247,6 +245,7 @@ int main (int argc, char *argv[])
             score[n] += nbpoints;
             drawwindow (game[n], score[n], xdrawwin[n], ydrawwin[n], 0);
             cleanplay (turn[n]);
+            findwords (words, play, turn[n]);
             n = (n + 1) % nbplayers;
             letter = getnextletter (game[n]);
             drawwindow (game[n], score[n], xdrawwin[n], ydrawwin[n], 1);
@@ -286,6 +285,8 @@ int main (int argc, char *argv[])
         case 'v':
             if (putletter (play, letter, x, y)) {
                 putletter (turn[n], letter, x, y);
+                findwords (words, play, turn[n]);
+                checkspelling (words, dict);
                 letter = getnewletter (game[n]);
                 drawwindow (game[n], score[n], xdrawwin[n], ydrawwin[n], 1);
             }
@@ -300,6 +301,8 @@ int main (int argc, char *argv[])
                 if (returnletter (game[n], current)) {
                     removeletter (play, x, y);
                     removeletter (turn[n], x, y);
+                    findwords (words, play, turn[n]);
+                    checkspelling (words, dict);
                     letter = getnextletter (game[n]);
                     drawwindow (game[n], score[n], xdrawwin[n], ydrawwin[n], 1);
                 }