This commit is contained in:
zidanmo99094 committed 2026-10-30 15:21:29 +01:00
1 parent 2f0857c711
commit 49f1a06e02
1 file changed
+7 -11
+7 -11
View File
@@ -7,25 +7,21 @@
#define MAX_RAND_TRIES_PER_WORD 1000
#define EMPTY_CHAR 0
// Enum zur sauberen Unterscheidung der Platzierungsrichtung
typedef enum {
DIR_HORIZONTAL = 0,
DIR_VERTICAL = 1
} Direction;
int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned int wordCount, char words[][100], unsigned int gridSize)
int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned int wordCount, char words[][MAX_WORD_LEN], unsigned int gridSize)
{
// 1. Spielfeld vollständig mit EMPTY_CHAR initialisieren
// 1. Spielfeld vollständig mit EMPTY_CHAR zurücksetzen
memset(salad, EMPTY_CHAR, MAX_SEARCH_FIELD_LEN * MAX_SEARCH_FIELD_LEN);
int placedWordsCount = 0;
// 2. Wörter im Spielfeld platzieren
for (unsigned int i = 0; i < wordCount; i++) {
// Wortlänge ermitteln und evtl. Steuerzeichen/Zeilenumbrüche am Ende ignorieren
// Wortlänge ermitteln
size_t len = strlen(words[i]);
while (len > 0 && (words[i][len - 1] == '\n' || words[i][len - 1] == '\r' || words[i][len - 1] == ' ')) {
len--;
// Unsichtbare Steuerzeichen / Leerzeichen am Ende abschneiden
while (len > 0 && (words[i][len - 1] == '\n' || words[i][len - 1] == '\r' || words[i][len - 1] == ' ' || words[i][len - 1] == '\t')) {
words[i][--len] = '\0';
}
// Wörter ignorieren, die leer oder zu lang für das Spielfeld sind