Platzieren der zu suchenden Wörter in game.c

This commit is contained in:
timoh committed 2026-10-26 08:45:19 +01:00
1 parent 0bd55e367a
commit 40a1743c0b
1 file changed
+68
+68
View File
@@ -10,6 +10,74 @@
/* * 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)
{