From f1fdbb542415994a6c9b05e0d27c701c088a198f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ida=20R=C3=B6ssel?= Date: Wed, 21 Oct 2026 15:07:56 +0200 Subject: [PATCH] game.c bearbeitet --- Wordsalad/game.c | 72 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) diff --git a/Wordsalad/game.c b/Wordsalad/game.c index 399bf8d..a417cec 100644 --- a/Wordsalad/game.c +++ b/Wordsalad/game.c @@ -11,10 +11,13 @@ /* * Wörter aus der Wortliste zufällig horizontal oder vertikal platzieren * restliche Felder mit zufälligen Buchstaben füllen */ +int clearField(); +int placeWords(); + // 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) { - srand(time(NULL)); + /*srand(time(NULL)); char bustaben[] = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z"; char zufall = bustaben[rand() % 26]; @@ -24,5 +27,72 @@ int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsi + return 0; */ + + srand(time(NULL)); + + clearField[ROWS, COLS]; + placeWords(); + return 0; } + +int clearField() { + for (int r=0; r < ROWS; r++) { + for (int c =0; c < COLS; c++) { + grid[r][c] = '.'; + } + } +} + +int placeWords() { + //Wörter plazieren + for (unsigned int w = 0; w< wordCount; w++) { + int wordLen = strlen(words[w]); + int placed = 0; + while (!placed) { + int direction = rand() % 2; + int row; + int col; + int fits = 1; + if (direction == 0) { + row = rand() % ROWS; + col = rand() % (COLS - wordLen +1); + for (int i = 0; i< wordLen; i++) { + if (grid[row][col +i] != '.') { + fits = 0; + } + } + if (fits) { + for (int i=0; i < wordLen; i++) { + grid[row][col +i] = words[w][i]; + } + placed = 1; + } + } + else { + row = rand() % (ROWS - wordLen +1); + col = rand() % COLS; + for (int i = 0; i< wordLen; i++) { + if (grid[row+i][col] != '.') { + fits = 0; + } + } + if (fits) { + for (int i = 0; i