changes to game.c

This commit is contained in:
Alexei Keller 2025-11-10 15:01:36 +01:00
parent ff8384e9ee
commit 8bff068cee
4 changed files with 12 additions and 11 deletions

View File

@ -15,15 +15,15 @@
// 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 addedWords = 0;
int attempts = 0; //Anzahl an Versuchen ein Wort hinzuzufügen
int added = 0; //0 Wort nicht hinzugefügt , 1 Wort hinzugefügt
int space = 0; // 1 = Wort zu lang für diese Stelle
int attempts = 0;
int added = 0; // = 1 wäre Wort hinzugefügt
int space = 0; // = 1 wäre Wort zu lang für diese Stelle
unsigned long long wordLength = 0;
srand(time(NULL));
for (int i = 0; i < searchFieldLen; i++) {
for (int j = 0; j < searchFieldLen; j++) {
salad[i][j] = '.'; //Füllen des gesamten Arrays mit Nullen
salad[i][j] = '.'; //Füllen des gesamten Arrays mit '.'
}
}
for (int i=0; i < wordCount; i++)
@ -32,30 +32,31 @@ int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsi
wordLength = strlen(words[i]);
while (attempts <= MAX_RAND_TRIES_PER_WORD && added != 1) {
int direction = rand() % 2;// 0 Horizontal, 1 Vertikal
if (direction == 0) {
int direction = rand() % 2;// 0 = Horizontal, 1 = Vertikal
if (direction == 0) //Horizontal
{
int spalte = rand() % searchFieldLen;
int reihe = rand() % searchFieldLen;
for (int j = 0; j < wordLength; j++)
{
if (salad[reihe][spalte+j] != '.') //Prüfen ob das Wort ein bereits vorhandenes Wort überspeichern würde
if (salad[reihe][spalte+j] != '.') //Prüfen das Wort mit einem anderem Wort überlappen würde
{
space = 1;
break;
}
}
if ((spalte + wordLength >= searchFieldLen-1) || (space == 1))
if ((spalte + wordLength >= searchFieldLen-1) || (space == 1)) // überprüfung, ob das Wort an der Stelle ins Array passt
{
attempts++;
}
//Prüfen ob Wort an der Stelle (Zeile, Spalte) in das Array passt
else
{
for (int j = 0; j < wordLength; j++)
{
salad[reihe][spalte+j] = words[i][j]; //Einfügen des Wortes Buchstabe für Buchstabe
salad[reihe][spalte+j] = words[i][j]; //Einfügen er Chars des Wortes
}
added=1;
addedWords++;
@ -99,7 +100,7 @@ int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsi
for (int j = 0; j < searchFieldLen; j++) {
if (salad[i][j] == '.')
{
salad[i][j] = rand()%('Z'-'A'+1)+'A';//Alle Felder, die noch nicht befüllt sind, werden zufällig befüllt
salad[i][j] = rand()%('Z'-'A'+1)+'A';//Zufällige Befüllung der noch nicht befüllten Felder
}
}
}

BIN
Start_Windows/game.o Normal file

Binary file not shown.

Binary file not shown.

BIN
Start_Windows/wordsalad.exe Normal file

Binary file not shown.