From 46a6f8c682308f1ac7f0554624defe51327eae66 Mon Sep 17 00:00:00 2001 From: D2A62006 Date: Thu, 6 Nov 2025 12:33:13 +0100 Subject: [PATCH] Fixing warnings and errors, unit tests run --- Start_Linux/game.c | 37 ++++++++++++++++++++++--------------- Start_Linux/main.c | 16 ++++++++++------ 2 files changed, 32 insertions(+), 21 deletions(-) diff --git a/Start_Linux/game.c b/Start_Linux/game.c index eb700d0..795ae6e 100644 --- a/Start_Linux/game.c +++ b/Start_Linux/game.c @@ -23,24 +23,28 @@ int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsi } } - int wordsPlaced = 0; // Track number of words successfully placed + int wordsPlaced = 0; //Track number of words successfully placed - // Try to place each word + //Try to place each word for(int w = 0; w < wordCount; w++){ int wordLen = strlen(words[w]); int placed = 0; - // Try multiple times to find a valid position + if(wordLen > searchFieldLen){ + printf("Word %s is too long!\n", words[w]); + break; + } + //Try multiple times to find a valid position for(int attempt = 0; attempt < MAX_RAND_TRIES_PER_WORD && !placed; attempt++){ - // Random orientation: 0 = horizontal, 1 = vertical + //Random orientation: 0 = horizontal, 1 = vertical int orientation = rand() % 2; int row, col; - if(orientation == 0){ // Horizontal + if(orientation == 0){ //Horizontal row = rand() % searchFieldLen; - col = rand() % (searchFieldLen - wordLen + 1); // Ensure word fits + col = rand() % (searchFieldLen - wordLen + 1); //Ensure word fits - // Check if position is free + //Check if position is free int canPlace = 1; for(int i = 0; i < wordLen; i++){ if(salad[row][col + i] != EMPTY_CHAR && salad[row][col + i] != words[w][i]){ @@ -49,7 +53,7 @@ int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsi } } - // Place word if position is valid + //Place word if(canPlace){ for(int i = 0; i < wordLen; i++){ salad[row][col + i] = words[w][i]; @@ -58,11 +62,11 @@ int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsi wordsPlaced++; } } - else{ // Vertical - row = rand() % (searchFieldLen - wordLen + 1); // Ensure word fits + else{ //Vertical + row = rand() % (searchFieldLen - wordLen + 1); //Ensure word fits col = rand() % searchFieldLen; - // Check if position is free + //Check if position is free int canPlace = 1; for(int i = 0; i < wordLen; i++){ if(salad[row + i][col] != EMPTY_CHAR && salad[row + i][col] != words[w][i]){ @@ -71,7 +75,7 @@ int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsi } } - // Place word if position is valid + //Place word if position is valid if(canPlace){ for(int i = 0; i < wordLen; i++){ salad[row + i][col] = words[w][i]; @@ -83,7 +87,7 @@ int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsi } } - // Fill remaining empty cells with random letters + //Fill remaining empty cells with random letters for(int i = 0; i < searchFieldLen; i++){ for(int j = 0; j < searchFieldLen; j++){ if(salad[i][j] == EMPTY_CHAR){ @@ -92,22 +96,25 @@ int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsi } } - return wordsPlaced; // Return number of words successfully placed + return wordsPlaced; } // Prints the word salad to console + void showWordSalad(const char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned int searchFieldLen) { for(int i = 0; i < searchFieldLen; i++){ for(int j = 0; j < searchFieldLen; j++){ - puts(salad[i][j]); + printf("%c ", salad[i][j]); } + puts("\n"); } } + //Fill up Word salad void fillWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN]){ diff --git a/Start_Linux/main.c b/Start_Linux/main.c index ade1bef..4a3973f 100644 --- a/Start_Linux/main.c +++ b/Start_Linux/main.c @@ -5,7 +5,8 @@ #include "graphicalGame.h" #define MAX_NUMBER_OF_WORDS 100 -#define SALAD_SIZE 20 +#define SALAD_SIZE 10 + int main(int argc, char *argv[]) { @@ -32,14 +33,17 @@ int main(int argc, char *argv[]) // Read words from file and store in 'words' array wordCount = readWords(file, words, MAX_NUMBER_OF_WORDS); fclose(file); - + // Create the word salad by placing words into grid placedWords = createWordSalad(wordSalad, SALAD_SIZE, words, wordCount); - // TODO: - // Check if all words were successfully placed - // Start the game if successful - // error message if some words couldn't be placed + if(placedWords < wordCount){ + printf("%d Words didn't fit!\n", wordCount-placedWords); + return -1; + } + + showWordSalad(wordSalad, SALAD_SIZE); + startGame(wordSalad, SALAD_SIZE, words, wordCount, 600);