#include "game.h" #include #include #include #define MAX_RAND_TRIES_PER_WORD 10 #define EMPTY_CHAR 0 //TODO: Spiellogik implementieren: /* * Wörter aus der Wortliste zufällig horizontal oder vertikal platzieren * restliche Felder mit zufälligen Buchstaben füllen */ //Erstellt den Wortsalat 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 anzahlPlatziert = 0; //1. Feld leeren for (unsigned int zeile = 0; zeile < searchFieldLen; zeile++) for (unsigned int spalte = 0; spalte < searchFieldLen; spalte++) salad[zeile][spalte] = EMPTY_CHAR; //2. Wörter platzieren for (unsigned int w = 0; w < wordCount; w++) { unsigned int laenge = strlen(words[w]); if (laenge > searchFieldLen) continue; //Wort zu lang for (int versuch = 0; versuch < MAX_RAND_TRIES_PER_WORD; versuch++) { int waagrecht = rand() % 2; //1 = horizontal, 0 = vertikal unsigned int zeile, spalte; if (waagrecht) { zeile = rand() % searchFieldLen; spalte = rand() % (searchFieldLen - laenge + 1); } else if (!waagrecht) { zeile = rand() % (searchFieldLen - laenge + 1); spalte = rand() % searchFieldLen; } //Prüfen, ob Platz frei ist int passt = 1; for (unsigned int i = 0; i < laenge; i++) { char feld = waagrecht ? salad[zeile][spalte + i] : salad[zeile + i][spalte]; if (feld != EMPTY_CHAR && feld != words[w][i]) passt = 0; } //Wort eintragen if (passt) { for (unsigned int i = 0; i < laenge; i++) { if (waagrecht) salad[zeile][spalte + i] = words[w][i]; else salad[zeile + i][spalte] = words[w][i]; } anzahlPlatziert++; break; } } } //3. Leere Felder mit Zufallsbuchstaben füllen for (unsigned int zeile = 0; zeile < searchFieldLen; zeile++) for (unsigned int spalte = 0; spalte < searchFieldLen; spalte++) if (salad[zeile][spalte] == EMPTY_CHAR) salad[zeile][spalte] = 'A' + rand() % 26; return anzahlPlatziert; } // 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) { }