fix word validation logic

This commit is contained in:
Gregory Gauthier 2025-12-18 09:13:20 +00:00
parent e055d9eee4
commit 9a6f8e16d5
3 changed files with 9 additions and 6 deletions

View File

@ -3,7 +3,7 @@
mkdir -p build/cordle
echo "Building application."
gcc -std=c90 -o build/cordle/cordle src/*.c -Iinclude -lncurses
gcc -std=c90 -pedantic -Wall -o build/cordle/cordle src/*.c -Iinclude -lncurses
export RESULT=$?
if (( RESULT == 0 )); then

View File

@ -4,6 +4,7 @@
/* game.c - Game logic implementation */
#include "../include/game.h"
#include "../include/ui.h"
#include "../include/words.h"
#include <string.h>
#include <ctype.h>
@ -99,6 +100,10 @@ int make_guess(GameState *game, const char *guess) {
upper_guess[i] = toupper(upper_guess[i]);
}
if (!is_valid_word(game, upper_guess)) {
return 0;
}
strcpy(game->guesses[game->guess_count], upper_guess);
check_guess(game, guess, game->guess_colors[game->guess_count]);
game->guess_count++;

View File

@ -176,11 +176,9 @@ int main_game_loop(int argc, char *argv[]) {
game.current_guess_length = 0;
strcpy(message, "");
} else {
/* Check if word is valid */
if (!is_valid_word(&game, temp_guess)) {
strcpy(message, "Not in word list!");
message_color = COLOR_ABSENT;
}
/* Validation failed in make_guess or is_valid_word */
strcpy(message, "Not in word list!");
message_color = COLOR_ABSENT;
}
} else {
sprintf(message, "Word must be %d letters!", WORD_LENGTH);