From b26eb961c944156218a11e6b3608ff62c60ee442 Mon Sep 17 00:00:00 2001 From: Simon Schuerer Date: Fri, 7 Nov 2025 07:28:00 +0000 Subject: [PATCH] Start_Windows/game.c aktualisiert --- Start_Windows/game.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/Start_Windows/game.c b/Start_Windows/game.c index e2ce592..77ac30f 100644 --- a/Start_Windows/game.c +++ b/Start_Windows/game.c @@ -3,30 +3,31 @@ #include // Für Funktionen wie rand(), srand(), malloc() etc. #include // Für Stringfunktionen wie strlen() -#define MAX_RAND_TRIES_PER_WORD 10 // Maximale Versuche pro Wort (nicht direkt verwendet im Code) -#define EMPTY_CHAR 0 // Definition eines leeren Zeichens (nicht direkt verwendet im Code) +#define MAX_RAND_TRIES_PER_WORD 10 // Maximale Versuche pro Wort +#define EMPTY_CHAR 0 // Definition eines leeren Zeichens /* Wörter aus der Wortliste zufällig horizontal oder vertikal platzieren * restliche Felder mit zufälligen Buchstaben füllen */ // Aufzählungstyp zur Richtungsprüfung -typedef enum { +typedef enum { // DIR wegen Direktion - Richtung DIR_DOWN, // Wort wird vertikal nach unten platziert DIR_RIGHT, // Wort wird horizontal nach rechts platziert DIR_FAILURE, // Platzierung nicht möglich -} check_dir_e; +} check_dir_e; // Variable vom Typ der Aufzählung zu deklarieren // Prüft, ob ein Wort an einer bestimmten Position und Richtung platziert werden kann -static check_dir_e check_field(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], +static check_dir_e check_field(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], //nur innerhalb der aktuellen Datei sichtbar ( static ) unsigned int searchFieldLen, const unsigned int word_len, const int pos_x, const int pos_y) { - const int random_direction = rand() % 2; // Zufällige Richtung: 0 = unten, 1 = rechts + const int random_direction = rand() % 2; // Zufällige Richtung: 0 = unten, 1 = rechts ( zufall für Wortplatzierung) + // Prüft welche Richtuung möglich ist // Prüft, ob Richtung rechts möglich ist if (random_direction == 1) { - for (int i = 0; i < word_len; i++) { - if (pos_x + i >= searchFieldLen || salad[pos_y][pos_x + i] != '\0') { + for (int i = 0; i < word_len; i++) { // Platziert die Buchstaben. Falls keine "0" ist wird abgebrochen und wort gelöscht + if (pos_x + i >= searchFieldLen || salad[pos_y][pos_x + i] != '\0') { // Bedingung für die Pltzierung break; // Abbruch, wenn außerhalb des Feldes oder Feld bereits belegt } if (i == word_len - 1) { @@ -71,7 +72,7 @@ int createWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], // Schleife über alle Wörter for (cnt = 0; cnt < wordCount; cnt++) { check_dir_e direction = DIR_FAILURE; // Anfangszustand: keine Richtung möglich - int tries = 0; + int tries = 0; // fehlercounterzähler für nicht platzierte Wörter // Versucht bis zu 1000-mal ein Wort zu platzieren while (direction == DIR_FAILURE && tries < 1000) {