Skip to content

noluyorAbi/C-Project

Repository files navigation

Neunermühle-Client

Client für das Systempraktikum der LMU München

license last-commit repo-top-language repo-language-count

CI - Format Check


Made with ♥ by:


Inhaltsverzeichnis


Überblick

Willkommen im Systempraktikum der Ludwig-Maximilians-Universität München. Im Rahmen dieses Praktikums entwickeln wir einen Client für das strategische Brettspiel Neunermühle in der Programmiersprache C. Ziel ist es, die Logik des Spiels zu implementieren und den Client über eine TCP-Verbindung mit einem zentralen Gameserver zu verbinden. Der Gameserver überwacht das Spielgeschehen und stellt sicher, dass die Regeln eingehalten werden, während unser Client als aktiver Mitspieler agiert.

Das Projekt wird in mehreren Schritten im Verlauf des Praktikums entwickelt, und jeder Schritt führt uns näher zur fertigen Version des Clients.


Funktionen

Feature Zusammenfassung
⚙️ Programmiersprache C
🔌 Netzwerkprotokoll TCP zur Kommunikation mit dem Gameserver
🗃️ Systemzugriff Nutzung von Shared Memory zur Speicherung von Spielfeldinformationen
🌐 Gameserver-Zugriff Nur über das Münchener Wissenschaftsnetzwerk (MWN) möglich
🧩 Hauptfunktionen
  • Verbindung zum Gameserver
  • Spielelogik
  • Signalverarbeitung
  • Shared Memory

Projektstruktur

.
├── README.md
├── compile_commands.json
├── docs
│   └── README.md
├── lib
│   └── README.md
├── main.c
├── makefile
├── modules
│   ├── README.md
│   ├── args_parser
│   │   ├── args_parser.c
│   │   └── args_parser.h
│   └── tcp_performConnection
│       ├── performConnection.c
│       └── tcp_connection.c
├── neunermuehle-client
│   └── build
│       ├── main.o
│       └── modules
│           └── args_parser
│               └── args_parser.o
├── scripts
│   └── README.MD
└── tests
    └── README.md

Erläuterungen zur Projektstruktur

  • README.md: Diese Datei enthält die Projektdokumentation.
  • compile_commands.json: Enthält Kompilierungsbefehle für die Quellcode-Dateien, nützlich für Tools wie Clang.
  • docs/: Dokumentationsdateien zum Projekt.
  • lib/: Bibliotheken oder externe Abhängigkeiten.
  • main.c: Der Haupteinstiegspunkt des Programms.
  • makefile: Makefile zur Automatisierung des Build-Prozesses.
  • modules/: Enthält die verschiedenen Module des Projekts.
    • args_parser/: Modul zur Verarbeitung von Kommandozeilenargumenten.
      • args_parser.c und args_parser.h: Quellcode und Header für den Argumentenparser.
    • tcp_performConnection/: Modul zur Herstellung der TCP-Verbindung.
      • performConnection.c und tcp_connection.c: Quellcode für die Netzwerkverbindung.
  • neunermuehle-client/: Build-Verzeichnis für den Client.
    • build/: Enthält die kompilierten Objektdateien.
      • main.o: Objektdatei für main.c.
      • modules/args_parser/args_parser.o: Objektdatei für den Argumentenparser.
  • scripts/: Skripte zur Automatisierung von Aufgaben.
  • tests/: Testfälle und zugehörige Dokumentation.

Erste Schritte

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass folgende Voraussetzungen erfüllt sind:

  • Programmiersprache: C
  • Compiler: Ein C-Compiler wie GCC oder Clang
  • Make: Zur Verwendung des Makefiles
  • Netzwerkzugriff: Zugang zum Münchener Wissenschaftsnetzwerk (MWN)

Installation

  1. Projekt klonen:

    git clone https://github.com/noluyorAbi/neunermuehle-client.git
  2. Kompilieren des Clients:

    make

    Dies erstellt die ausführbare Datei und legt sie im neunermuehle-client/ Verzeichnis ab.

Benutzung

Um den Client zu starten, verwenden Sie:

./neunermuehle-client/neunermuehle_client

Zugriff auf Gameserver und Webinterface

Das Webinterface ist unter folgender Adresse verfügbar:

http://sysprak.priv.lab.nm.ifi.lmu.de

Um das Webinterface und den Gameserver aus dem MWN zu erreichen, können Sie eine SSH-Portweiterleitung zu einem CIP-Rechner nutzen:

ssh -L localhost:PORT:sysprak.priv.lab.nm.ifi.lmu.de:PORT [email protected]

Funktionen des Webinterfaces

Das Webinterface ermöglicht das Erstellen von Partien, in denen der Client gegen andere Spieler antreten oder gegen sich selbst getestet werden kann. Zudem kann man als Beobachter in eine Partie einsteigen, um Einblicke in den Spielablauf zu erhalten und die korrekte Funktion des Clients zu überprüfen.


Spielregeln und Ressourcen

Die Spielregeln für Neunermühle und weitere Hilfen zur Entwicklung des Clients finden Sie unter folgendem Link:

http://sysprak.priv.lab.nm.ifi.lmu.de/help/


Projekt-Roadmap

  • Phase 1: Verbindung zum Gameserver herstellen
  • Phase 2: Spielelogik implementieren
  • Phase 3: Signalverarbeitung hinzufügen
  • Phase 4: Shared Memory nutzen

Beitragende

Dieses Projekt wird von Studierenden der LMU im Rahmen des Systempraktikums entwickelt.

Richtlinien für Beiträge

⚠️ Wichtiger Hinweis:
Da dieses Projekt ein modulinternes Projekt ist, können leider keine Beiträge von Außenstehenden berücksichtigt werden.


Lizenz

Dieses Projekt steht unter der MIT License. Weitere Details finden Sie in der LICENSE Datei.


Danksagungen

  • Wir danken der Ludwig-Maximilians-Universität München für die Bereitstellung dieses Praktikums.
  • Besonderer Dank gilt den Betreuern und Professoren für ihre Unterstützung.

About

Systempraktikum für C im WS2024/25

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published