Beschreibung für game.c hinzugefügt.

This commit is contained in:
LukVal54 2025-11-02 19:16:27 +01:00
parent 12ac6ad0ad
commit ce06e43179
2 changed files with 24 additions and 4 deletions

View File

@ -37,7 +37,17 @@ void showWordSalad(const char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN],
}
}
//Logik für createWordSalad: Ein Wort nach dem anderen bis entweder alle Wörter drinnen,
//Logik für createWordSalad:
/* Salat ist das Wortsalat Array.
1. Salat wird mit "." befüllt. Diese "." symbolisieren leere noch nicht befüllte Stellen
2. Für jedes Wort aus dem Wort - Array werden nacheinander mögliche Punkte gesucht, welche als Start um dieses Wort
ins Array zu schreiben funktionieren. Diese Positionen werden in einer struct gespeichert.
3. Für das Wort wird dann per Zufall aus den möglichen Positionen eine ausgewählt
4. Das Wort wird an der ausgewählten Position in den Salat geschrieben.
5. Dies passiert für alle Wörter. Gibt es keinen Platz mehr wird das Wort nicht in den Salat geschrieben
6. Restliche leere "." Stellen des Salats werden mit zufälligen Buchstaben befüllt
*/
//Funktion dafür den gesammten Salat mit . zu befüllen.
void clearWordSalad(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned int searchFieldLen)
{
@ -68,6 +78,7 @@ void fillWordsaladRand(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], u
//b.) alle zu besetzenden Felder leer sind (.).
//Positionamount gibt aus wie viele mögliche Positionen es für dieses Wort gibt.
//Wird mit 0 initialisiert. Wenns null bleibt, bedeutet dies es gibt keine verfügbaren Positionen.
//rechtsfrei und untenfrei werden für jeden Position neu auf 1 initialisiert. Trifft a.) oder b.) nicht zu auf null gesetzt
int findPossiblePositions(char salad[MAX_SEARCH_FIELD_LEN][MAX_SEARCH_FIELD_LEN], unsigned int searchFieldLen, const char words[][MAX_WORD_LEN], int wordidx, Position positions[])
{
const char *word = words[wordidx];

View File

@ -1,6 +1,6 @@
CC = gcc
CFLAGS = -g -Wall -I$(raylib_folder) # <- KORRIGIERT
LDFLAGS = -lGL -lX11 -lm
LDFLAGS = -lGL -lX11 -lm #Linker Flags binden verschiedene Bibliotheken ein. Include "bib_name" -> -l"bib_name"
BINARIES = ./linux
raylib_folder = ./raylib
@ -20,7 +20,7 @@ wordsalad: main.o input.o game.o graphicalGame.o $(BINARIES)/libraylib.a
main.o: main.c
$(CC) $(CFLAGS) -c $< -o $@ # <- KORRIGIERT
#bedeutung: $< erste Abhängigkeit (in diesem Fall main.c), %@ erstelle daraus eine main.o Datei.
input.o: input.c input.h
$(CC) $(CFLAGS) -c $< -o $@ # <- KORRIGIERT (Zeile 25/26)
@ -51,4 +51,13 @@ wordsalad_myversion: main.o $(BINARIES)/libwordsalad.a
clean:
rm -f *.o wordsalad $(TEST_BIN)
# Tests starten mit ./runTests
# Tests starten mit ./runTests
#Erklärung der veränderungen im Vergleich zu davor <- Korrigiert;
#Das war nötig, weil make deinen alten Befehl ignoriert hat.
# Das Problem mit dem alten Befehl: make hat deine Regel input.o: ... gesehen und wollte input.o erstellen. Es hat sich deinen Befehl $(CC) $(CFLAGS) -c input.c angesehen.
# Für make war dieser Befehl "unvollständig". Es stand dort nicht explizit, dass dieser Befehl die Datei input.o erstellt (obwohl gcc das automatisch tun würde).
# make ignoriert den Befehl: Weil make deinen Befehl als unzureichend ansah, verwarf es ihn stillschweigend.
# make nutzt seine eingebaute Regel: Stattdessen griff make auf seine eigene, eingebaute (implizite) Regel zurück, um eine .o-Datei zu erstellen.
# Diese eingebaute Regel ist jedoch falsch für uns: Sie versucht, die .c-Datei zu linken, nicht nur zu kompilieren.
# Der Fehler: Diese (falsche) eingebaute Regel von make war es, die den Linker aufrief und den Fehler undefined reference to 'main' verursachte.