| Projekt Name | Projekt Beschreibung | Projekt Type | Projekt Status |
|---|---|---|---|
| PushSwap |
Ein Sorting algorythmus mit nur 2 Stacks, wobei nur die folgenden befehle benutzt werden dürfen: |
Programm: Algorythmus | Komplett |
| SoLong |
Ein kleines graphisches spiel, in grid basis, wo ein player alle "Collectables" auf einer karte |
Programm: | Komplett |
| Minitalk |
Ein Text server, welcher von einem client signale geschickt bekommt und diese als text anzeigt. |
Programm: Signalstruktur | Komplett |
| Philosophers |
N Philosophen sind an einem tisch, jeder hat eine Gabel, eine esszeit, eine schlaflänge und eine denkpause. |
Programm: Recourcen management in Threads | Komplett |
| Minishell |
Ein Programm, welches das Terminal von Linux imitiert. es hat eingebaute funktionen, kann aber auch auf externe programme zugreifen. |
Programm: Raycasting | Komplett |
| Cub3d |
Ein Raycasting algorythmus, welcher eine 2d engine, dazu benutzt eine 3d umgebung zu erzeugen. |
Programm: Raycasting | Komplett |
| WebServ |
Ein Webserver in C++, welcher eine Config file als argument nimmt |
Programm: WebServer | Nicht gestartet |
| ChatGodApp |
Eine webseite, welche GPT, Openai Whisper und Elevenlabs verwendet um mit GPT reden zu können und in verschiedenen aspekten eingesetzt zu werden. |
Programm: AI | Hold |
PushSwap
Push Swap ist ein Projekt der 42 Coding Schule, in dem es darum geht, eine gegebene Folge von Zahlen mit möglichst wenigen Operationen zu sortieren. Das Besondere: Es dürfen nur zwei Stacks verwendet werden (Stack A und Stack B) und nur eine festgelegte Menge an Operationen wie Swap, Push und Rotate.
Typische Operationen sind: sa, sb, ss (Tauschen der obersten Elemente), pa, pb (Push zwischen den Stacks), ra, rb, rr (Rotationen nach oben) und die entsprechenden Reverse-Rotationen rra, rrb, rrr.
In diesem Projekt werden Konzepte wie Greedy-Algorithmen, Partitionierung, sowie Analyse von Worst- und Average-Case-Befehlsanzahlen vermittelt.
Minitalk
Minitalk demonstriert die Übertragung von Nachrichten zwischen einem Client und einem Server mithilfe von Signalen (POSIX signals). Der Client kodiert Text in einzelne Bits und sendet sie sequenziell an den Server, der die empfangenen Bits zu Zeichen zusammensetzt und die Nachricht darstellt.
Wichtige Aspekte sind die richtige Bitkodierung, Handshakes oder Acknowledgements, sowie das zuverlässige Verarbeiten asynchroner Signale.
Philosophers
Das Philosophers-Projekt simuliert das klassische "Dining Philosophers"-Problem und veranschaulicht Probleme des Nebenläufigkeitsmanagements: Deadlocks, Race Conditions und Verhungern (starvation). Jeder Philosoph cyclicht durch Denken, Essen und Schlafen und benötigt zwei Ressourcen (Gabeln), um zu essen.
Die Implementierung demonstriert verschiedene Lösungsansätze: Mutexes oder Semaphoren zur Vermeidung gleichzeitiger Ressourcennutzung, festgelegte Pickup-Reihenfolgen, oder Überwachungs-Threads, die Timeouts erkennen.
SoLong
SoLong ist ein kleines, rasterbasiertes Spiel, bei dem der Spieler ein Level vollständig erkunden muss, um alle Sammelobjekte (Collectables) einzusammeln und anschließend das Ziel zu erreichen. (note, das bild ist nicht meine version)
Minishell
Minishell ist eine vereinfachte Umsetzung einer UNIX-Shell, die grundlegende Konzepte der Kommandozeile vermittelt. Dazu gehören das Parsen von Befehlen, Ausführung externer Programme via fork()/exec() sowie interne Builtins wie cd, echo und exit.
Cub3d
Cub3d implementiert einen Raycasting-Algorithmus, der aus einer 2D-Kartenansicht eine pseudo-3D-Ansicht erzeugt.
WebServ
WebServ ist ein in C++ umgesetzter Webserver, der Konfigurationsdateien liest und HTTP-Anfragen verarbeitet.
ChatGodApp
ChatGodApp kombiniert Sprach- und Text-KI-Technologien, um eine interaktive Chat-Erfahrung zu bieten.