2026-10-23 10:51:21 +02:00
2026-10-23 10:51:21 +02:00
2025-09-25 11:11:07 +02:00
2025-09-25 11:11:07 +02:00
2025-09-25 11:11:07 +02:00
2025-09-25 11:11:07 +02:00

Wortsalat

Ein Wortsuchspiel in C, entstanden im Praktikum Informatik 2 (TH Nürnberg). Das Programm liest Wörter aus einer Textdatei, versteckt sie zufällig horizontal oder vertikal in einem 20×20-Buchstabengitter und füllt die restlichen Felder mit zufälligen Buchstaben. Ziel ist es, alle Wörter im Gitter zu finden.

Spielablauf

  1. Beim Start werden die Wörter aus der angegebenen Datei eingelesen und in Großbuchstaben umgewandelt.
  2. Jedes Wort wird an einer zufälligen Position platziert, von links nach rechts oder von oben nach unten. Wörter dürfen sich kreuzen, wenn sie an der Kreuzung denselben Buchstaben haben.
  3. Kann ein Wort nicht platziert werden (z. B. weil es länger als das Gitter ist), bricht das Programm mit einer Fehlermeldung ab.
  4. Es öffnet sich ein Fenster mit dem Buchstabengitter, darunter steht die Liste der gesuchten Wörter.
  5. Sind alle Wörter gefunden, erscheint die Meldung „Congratulations! You won!“.

Bedienung

Aktion Wirkung
Linke Maustaste gedrückt halten und eine Linie genau über die Buchstaben eines Wortes ziehen Wort auswählen
Maustaste loslassen Auswahl prüfen: ein richtiges Wort wird im Gitter grün markiert und in der Liste durchgestrichen
Esc oder Fenster schließen Spiel beenden
hack tippen (nur mit ./wordsalad_cheats) Cheat-Modus ein- bzw. ausschalten: alle noch nicht gefundenen Wörter werden dunkelblau hinterlegt

Bauen und Starten

Voraussetzung ist gcc (unter macOS reicht das Clang aus den Xcode Command Line Tools) und make. Alle Befehle werden im Ordner Startcode/ ausgeführt; das Makefile erkennt Linux, macOS und Windows automatisch.

cd Startcode
make wordsalad
./wordsalad words.txt
Target Inhalt
make wordsalad Das Spiel komplett aus dem eigenen Code
make wordsalad_cheat Eigene main.c, input.c, game.c und graphicalGame+Cheas,c
make wordsalad_initial Die mitgelieferte Referenzversion (libwordsalad_complete.a)
make test Baut die Unit-Tests als runTests
make clean Löscht Objektdateien und erzeugte Programme

Format der Wortdatei

Die Wörter werden durch Leerzeichen, Komma, Semikolon, Tabulator oder Zeilenumbruch getrennt. Groß- und Kleinschreibung spielt keine Rolle. Beispiel (words.txt):

Yeti,Nessie Werwolf; Vampir
Monster
Hydra;Frankenstein

Ein Wort darf höchstens so lang sein wie das Gitter (20 Buchstaben).

Tests

make test && ./runTests

Die Tests (Framework Unity) prüfen das Einlesen der Wörter (readWords) und das Erzeugen des Gitters (createWordSalad).

Projektstruktur

Datei Inhalt
main.c Programmstart: Datei öffnen, Wörter einlesen, Gitter erzeugen, Spiel starten
input.c / input.h readWords: Wörter aus der Datei lesen, trennen und in Großbuchstaben umwandeln
game.c / game.h createWordSalad: Wörter zufällig platzieren und leere Felder auffüllen
graphicalGame.c / graphicalGame.h Fenster, Zeichnen und Mausbedienung mit raylib, inklusive Cheat-Modus
unit_tests.c Unit-Tests
words.txt Beispiel-Wortliste
linux/, macos-*/, windows/ Vorkompilierte Bibliotheken (raylib und Referenzlösung) je Betriebssystem

Repository klonen :)

git clone https://git.efi.th-nuernberg.de/gitea/glockma106904/Info2-Praktikum.git
S
Description
No description provided
Readme
10 MiB
0 Stars 1 Watchers 0 Forks
Languages
C 86.8%
C++ 12.9%
Makefile 0.3%