diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/Info2V.iml b/.idea/Info2V.iml new file mode 100644 index 0000000..bc2cd87 --- /dev/null +++ b/.idea/Info2V.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/editor.xml b/.idea/editor.xml new file mode 100644 index 0000000..226ca24 --- /dev/null +++ b/.idea/editor.xml @@ -0,0 +1,580 @@ + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..f5b4d89 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Start_Windows/game.c b/Start_Windows/game.c index 61a8e0b..632ece3 100644 --- a/Start_Windows/game.c +++ b/Start_Windows/game.c @@ -17,7 +17,7 @@ // Creates the word salad by placing words randomly and filling empty spaces int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned int searchFieldLen, const char words[][MAX_WORD_LEN], unsigned int wordCount) { - int placedChar = 0; + int placedWords = 0; srand(time(NULL)); int usedWords[MAX_NUMBER_OF_WORDS]; @@ -25,19 +25,11 @@ int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsi usedWords[i] = -1; } - fillSalad(salad, searchFieldLen, words, wordCount, usedWords); - showWordSalad(salad, searchFieldLen); - for(int i= 0; i < MAX_SEARCH_FIELD_LEN; i++) - { - for(int j=0; j < MAX_SEARCH_FIELD_LEN; j++) - { - if(salad[i][j] != '\0') - { - placedChar++; - } - } - } - return placedChar; + placedWords = fillSalad(salad, searchFieldLen, words, wordCount, usedWords); + //showWordSalad(salad, searchFieldLen); + printf("\nPlacedWords: %d\n", placedWords); + return placedWords; + } // Prints the word salad to console @@ -74,8 +66,9 @@ int emptyPlaces(unsigned int wordCount) // fills salad array with max. words from word array either horizontally or vertically -void fillSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned int searchFieldLen, const char words[][MAX_WORD_LEN], unsigned int wordCount, int usedWords[MAX_NUMBER_OF_WORDS]) +int fillSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned int searchFieldLen, const char words[][MAX_WORD_LEN], unsigned int wordCount, int usedWords[MAX_NUMBER_OF_WORDS]) { + int addedWords = 0; // empties salad for(int i = 0; i < searchFieldLen; i++) { for(int j = 0; j < searchFieldLen; j++) { @@ -104,17 +97,18 @@ void fillSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned if(wordLen <= searchFieldLen) { int startCol = rand() % (searchFieldLen - wordLen + 1); int canPlace = 1; - for(int i = 0; i < wordLen; i++) { + for(int i = 0; i < wordLen; i++) { //checks if word fits if(salad[row][startCol + i] != '\0') { canPlace = 0; break; } } - if(canPlace) { + if(canPlace) { //word fits and is inserted for(int i = 0; i < wordLen; i++) { salad[row][startCol + i] = words[numWord][i]; } placed = 1; + addedWords++; } } } else { @@ -135,6 +129,7 @@ void fillSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned salad[startRow + i][col] = words[numWord][i]; } placed = 1; + addedWords++; } } } @@ -142,7 +137,8 @@ void fillSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned tries++; } } - fillRandom(salad, searchFieldLen, words, wordCount, 1); + fillRandom(salad); + return addedWords; } @@ -210,7 +206,8 @@ void fillWordinRow(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN],unsign //Fills word in salad and deletes row of words of the used word, vertical from top to bottom void fillWordinColumn(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned int searchFieldLen, const char words[][MAX_WORD_LEN], unsigned int wordCount, int numWord, int column) -{int wordLen = strlen(words[numWord]); +{ + int wordLen = strlen(words[numWord]); if (wordLen > searchFieldLen || wordLen == 0) return; @@ -233,10 +230,8 @@ void fillWordinColumn(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], un // if emptyPlaces, fill these with random letters -void fillRandom(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned int searchFieldLen, const char words[][MAX_WORD_LEN], unsigned int wordCount, int empty) +void fillRandom(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN]) { - if(empty) - { for(int j=0; j < MAX_SEARCH_FIELD_LEN; j++) { for(int h= 0; h < MAX_SEARCH_FIELD_LEN; h++) @@ -249,5 +244,4 @@ void fillRandom(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned } } } - } -} \ No newline at end of file + } \ No newline at end of file diff --git a/Start_Windows/game.h b/Start_Windows/game.h index 5cab3e2..d8e8d0a 100644 --- a/Start_Windows/game.h +++ b/Start_Windows/game.h @@ -10,11 +10,11 @@ int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsi void showWordSalad(const char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned int searchFieldLen); int printHorizontal(unsigned int wordCount); int emptyPlaces(unsigned int wordCount); -void fillSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned int searchFieldLen, const char words[][MAX_WORD_LEN], unsigned int wordCount, int usedWords[MAX_NUMBER_OF_WORDS]); +int fillSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned int searchFieldLen, const char words[][MAX_WORD_LEN], unsigned int wordCount, int usedWords[MAX_NUMBER_OF_WORDS]); int whichWord(const char words[][MAX_WORD_LEN], unsigned int wordCount, int usedWords[MAX_NUMBER_OF_WORDS]); void fillWordinRow(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned int searchFieldLen, const char words[][MAX_WORD_LEN], unsigned int wordCount, int numWord, int row); void fillWordinColumn(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned int searchFieldLen, const char words[][MAX_WORD_LEN], unsigned int wordCount, int numWord, int column); -void fillRandom(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned int searchFieldLen, const char words[][MAX_WORD_LEN], unsigned int wordCount, int empty); +void fillRandom(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN]);