Programmierung eines 2D-Sidescrollers im klassischen 8-Bit Look z.B. im Stil von Katakis.
Als Programmiersprache python mit pygame oder auch C++ mit der SDL-Lib (Simple DirectMedia Layer)
Grundlagen zu Sidescrollern
Sprites und Tiles, Aufbau der Spielewelt, Game-Engine
Scrolling und Parallax-Scrolling
Bounding Boxes und Kollisionserkennung
Animation von Kollisionen, Explosionen etc.
Game-Sounds
Intelligente Gegner
...
Da die Details - wenn es schön aussehen soll - auch arbeitsaufwändig werden können,
kann diese Aufgabe auch im Team zu zweit bearbeitet werden.
Wer hat, der kann ;-)
Umsetzung eines von Ihnen mitgebrachten Problems mit den Bedingungen
Das Problem ist zur Umsetzung im Computerpraktikum geeignet
Es fällt in etwa in mein Fach/Interessengebiet, so dass ich es betreuen kann
Dies kann also erst nach detaillierter Absprache starten, aber durchaus für alle Beteiligten interessant werden.
Ehemalige, von mir gestellte Aufgaben:
Voll die Seuche.
Es soll die Ausbreitung einer Seuche agentenbasiert simuliert werden. Dazu gibt es in der Ebene N Agenten (Personen), die
die Zustände gesund(G), infiziert und in der Inkubationszeit (I), krank und ansteckend (K) bzw. tot (T) haben können.
Eine Infektion erfolgt mit Wahrscheinlichkeit p_infect durch Kontakt,
dass heisst wenn der Abstand zweier Personen kleiner epsilon ist und eine davon im Zustand (K) ist.
Die Simulation startet mit einem zu variierenden Anteil I_0 infizierter Personen.
Es sollen die Zeiten der Zustandsübergänge (I)->(K)->(T) oder (G) sowie Genesungswahrscheinlichkeit variiert werden. Vor allem sollen
agressive und schnell tötende Seuchen verglichen werden mit solchen, die lange Inkubations- oder Krankheitszeiten haben. Was führt
zu einer höheren Anzahl von Infektionen ? Wann stirbt die Seuche aus ?
Erweiterung Variante 1 (Thema Impfmuffel)
Wir führen eine Schutzimpfung ein und betrachten wie gross der Mindestanteil der Geimpften sein muss, um
die Ausbreitung einzudämmen.
Eventuell: Erweiterung Variante 2
Wir betrachten zwei Krankheiten mit unterschiedlich schnellem Verlauf und Mortalitätsraten. Jedoch sind
Individuen, die bereits von einer der beiden Seuchen befallen sind empfindlicher für die andere.
Gibt es Konstellationen wo die eine Krankheit die andere ausrottet ?
The (Hyper)-Cube oder: Ist der Würfel noch ganz dicht ?
Wir betrachten zunächst einen dreidimensionalen Würfel, der aus NxNxN kleinen Würfeln zusammengesetzt ist.
Jeder dieser kleinen Würfel besteht
seinerseits mit Wahrscheinlichkeit p aus Stein und mit Wahrscheinlichkeit (1-p) aus Luft.
Die Oberseite des Würfels wird mit Wasser begossen - die Frage ist ob unten Wasser herauskommt. Genauer formuliert:
Gesucht ist nun bis zu welchem p aus [0,1] ein Weg von der Ober- zur Unterseite des grossen Würfels gefunden werden kann.
Ein Weg von einem Luftwürfel zu einem anderen ist möglich, wenn diese aneinandergrenzen.
Es ist ein Simulationsprogramm zu erstellen, welches diese Aufgabe löst und die Wahrscheinlichkeit des Weges P(W) in Abhängigkeit der
Wahrscheinlichkeit für Stein P(S) grafisch darstellt.
Im zweiten Teil soll nun das Programm auf einen d-dimensionalen Hypercube, der analog wie oben aus N^d kleinen Hypercubes zusammengesetzt ist, erweitert werden.
Die Gerüchteküche.
Auf einem in mxn Felder aufgeteilten Campus bewegen sich S Studenten zufällig umher (random walk). Immer wenn sich Studenten auf einem Feld
treffen, tauschen sie untereinander Informationen aus. Es gibt ausser den S Studenten noch zwei besondere Studenten:
Gerd Gernegroß, der immer auf dem Feld (1,1) verweilt, behauptet für Rudi Ratlos das komplette Programmierpraktikum geschrieben zu haben.
Rudi Ratlos, der immer auf dem Feld (m,n) verweilt und -- anfangs ahnungslos -- aber sobald er von Gerds Behauptung
erfährt dies dementiert, und seine Meinung natürlich immer beibehält.
Die Studenten haben zu diesem Thema gar keine Meinung (0), glauben Gerd (G) oder Rudi (R). Dabei wechseln sie beim Zusammentreffen in einem Feld ihre
Ansicht nach folgenden Regeln.
Gibt es auf einem Feld eine klare Mehrheit einer Meinung G oder R so übernehmen die meinungslosen (0) und unterlegenen (G oder R)
diese Mehrheitsmeinung mit Wahrscheinlichkeit p_gerd bzw. p_rudi
Ist das Verhältnis G zu R ausgeglichen, sind alle verunsichert und werden meinungslos (0)
In der Aufgabe soll ein Simulationsprogramm erstellt werden, welches dieses Problem für verschiedene m, n, S, und p_gerd, p_rudi simuliert.
Wann erfährt Rudi im Mittel vom Gerücht ?
Weiterhin soll das Langzeitverhalten des Systems -- ob irgendwann eine Meinung gewinnt -- in Abhängigkeit von den Parametern
durch Simulationen ermittelt werden. Vor allem die Fälle p_gerd=1 und/oder p_rudi=1 sollen betrachtet werden und Konstellationen p_gerd,p_rudi ermittelt werden, bei
denen ein qualitativer Umschlag des Langzeitverhaltens stattfindet.
Als Erweiterung sind denkbar:
Gerd und Rudi bewegen sich auch.
Einer der beiden (Gerd oder Rudi) gibt zu, gelogen zu haben, wenn er mit mind. T Studenten anderer Meinung zusammentrifft, gesucht ist das kleinste Z für
das dies mit Wkt. von p_t ( z.B. 0.95 ) nicht passiert.
Grafische Visualisierung einzelner Verläufe
... eigene Erweiterungen
Raytracing selbst gemacht
Einarbeiten in die Grundlagen des Raytracings
Programmierung eines simplen Demo-Raytracer, der
einfache geometrische Objekte (Kugel) erkennen kann.
Einbau eines Beleuchtungsmodelles in das Programm, so dass
die Objekte als dreidimensionale Körper und
nicht nur als Farbkleckse sichtbar werden.