LAB-Ergebnisse

robert.n
Nerd
Nerd
Beiträge: 673
Registriert: 29. Sep 2008 19:17

LAB-Ergebnisse

Beitrag von robert.n » 3. Okt 2008 11:29

Ich denke hier sollten mal alle ihre LAB-Entwicklungen vorstellen. :)

Miguel und ich haben SnakeCube entwickelt, also ein wirklich 3dimensionales Snake, bei dem sich die Schlange in alle 3 Dimensionen bewegen kann.
Im Anhang die Dateien für Windows (Benutzer anderer Betriebssysteme müssen die Dateien im libs-Ordner entsprechend ersetzen, wie auf dem Aufgabenblatt beschrieben ist). run.bat und compile.bat sind Skripte für Windows, die ihr starten könnt um SnakeCube zu starten bzw. zu kompilieren, wenn ihr etwas geändert habt.
Ich habe den Code heute nochmal ein bisschen mit Kommentaren ergänzt, sodass es einfacher werden sollte zu verstehen, was wir da eigentlich wie gemacht haben.
Ursprünglich war auch eine relative Steuerung geplant, bei der die Steuerung immer aus Sicht der Schlange erfolgt ("nach oben" = nach oben aus Sicht der Schlange). Das ist allerdings ziemlich kompliziert und ich habe es erstmal gelassen. Die absolute Steuerung (s.u.) stammt von Miguel.
* Die Steuerung:
* q = beenden
* w, a, s, d / Mausklick = Kamera bewegen
* + = zoom hinein
* - = zoom heraus
*
* p = pause
* i = oben
* k = unten
* j = links
* l = rechts
* o = rein (weg von der Kamera)
* u = raus (zur Kamera)
Falls euch die Ideen ausgegangen sind: Wie wäre es mit Snake4D (diese perverse Idee kommt von Miguel^^ *mit Finger auf ihn zeig*) mit Zurückspulfunktion oder FirstPersonSnake (natürlich müsste man da die Kamera irgendwie bewegen können)? :mrgreen:
Dateianhänge
SnakeCube.zip
(1.08 MiB) 32-mal heruntergeladen
Zuletzt geändert von robert.n am 4. Okt 2008 14:42, insgesamt 2-mal geändert.

Benutzeravatar
olg
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 297
Registriert: 1. Okt 2008 19:24

Re: LAB-Ergebnisse

Beitrag von olg » 3. Okt 2008 16:01

Ich schlage dann vor, die Ergebnisse auch alle hier in diesem Thread zu präsentieren (Du hast den Thread hoffentlich aus Absicht so genannt), daher poste ich mein bisheriges Ergebnis auch einfach mal rein
Eure Version ist von der Idee her echt geil, mir wird da nur etwas schummrig - Nach 5 Sekunden hatte ich zudem einen netten Freeze, da half nur Hard Reset ;)
Meine erste Version von 3dSnake mit den üblichen Standardfunktionen von Snake.
- Kollision mit den Wänden -> GameOver (bzw. Zurücksetzen des Spielfelds/der Snake)
- Kollision mit der Snake
- Cookies zum Aufheben, die der Snake +1 Wachstum geben (es gibt sogar mehrere Farben/Grössen, die allerdings noch keine weitere Funktionalität haben.)


3dSnake
Starten über den runLAB-Befehl (falls die .bashrc vorhanden ist), alternativ
./runLAB.sh
im Verzeichnis. Unter Windows sollte die Batch-Datei funktionieren (nicht getestet!)
Die enthaltenen LIBs sind für Linux32bit ( http://d120.de/vorkurs-materialien/)

Beim ersten Starten muss man das OpenGL Fenster zunächst anklicken, bevor Eingaben erkannt werden. Beim Resetten der Snake wird zudem in den ersten zwei updateStates() zuwenige Elemente der Snake angezeigt - "das wird dann in der final behoben" :roll:

Steuerung
i = oben
j = links
k = unten
l = rechts
Danke an Wolfgang/Daniel für die sehr informative und humorvolle Gestaltung des Vorkurses und natürlich an die Tutoren des Pools!
Oliver
Dateianhänge
3dsnake-olg.zip
(1.24 MiB) 27-mal heruntergeladen
Zuletzt geändert von olg am 3. Okt 2008 20:59, insgesamt 5-mal geändert.
"To Perl, or not to Perl, that is the kvetching." ~Larry Wall

Benutzeravatar
leviathan
Computerversteher
Computerversteher
Beiträge: 307
Registriert: 30. Jul 2008 14:26
Wohnort: Darmstadt
Kontaktdaten:

Re: LAB-Ergebnisse

Beitrag von leviathan » 3. Okt 2008 16:05

@robert.n
Eine ähnliche Idee habe ich auch ursprünglich gehabt, dachte allerdings, dass die Steuerung sehr kontra-intuitiv werde und dass man die Spielweltgrenzen schlecht anschaulich darstellen könne. Zumindest das Zweite ist euch gut gelungen, die Steuerung finde ich immer noch etwas gewöhnungsbedürftig - aber insgesamt definitiv nicht schlecht.

Mein eigenes Snake habe ich an der klassischen Version und dem, was uns Wofgang und Daniel gezeigt haben, orientiert. Deswegen verfügt sie über keine außergewöhnlichen Funktionen, außer Zoom (+/-, nützlich für größere Spielfelder), Pausenfunktion (P), Punkte- und Level-Anzeige, sich mit den Levels erhöhenden Geschwindigkeit und einer Reset-Möglichkeit (O) wenn man verliert (Kollision mit einer Wand oder mit sich selbst). Zudem kann man einen "verbesserten" Snake-Darstellungsmodus wählen, den ich aber nach dem Implementieren zu hässlich gefunden habe um als standart an zu lassen :). Die Steuerung ist IJKL.

Die zip-Datei habe ich genau so angelegt, auch mit run.bat und compile.bat (@robert.n: ich hoffe, ihr nehmt's mir nicht übel, dass ich sie euch ein bisschen geklaut habe :) ). Zudem, wer Eclipse benutzt, die Projekt-Dateien sind ebenfalls mit dabei. Kommentare sind alle in Englisch - sorry, Gewöhnung :)

Weitere Ideen (die ich vielleicht später auch implementiere) - Multiplayer (zwei Snakes und entsprechend zwei Kontrollsets), ein aus einer Textdatei ladendes Spielfeld (z.B. mit Hindernissen in der Mitte, die dann in der Textdatei ASCII-Art ähnlich gespeichert sind) und eine (online?) Toplist.
Dateianhänge
JavaSnake3D.zip
(1.08 MiB) 55-mal heruntergeladen
Ein Programmierer hat immer eine Lösung. Die passt nur nicht immer zum Problem.

Hiwi für Weiterentwicklung des Lernportals (Moodle).

Der_olle_Schwoebel
Mausschubser
Mausschubser
Beiträge: 62
Registriert: 3. Okt 2008 18:22
Wohnort: Erbach (Odenwald)
Kontaktdaten:

Re: LAB-Ergebnisse

Beitrag von Der_olle_Schwoebel » 3. Okt 2008 19:21

Gude,

SnakeCube find ich ne tolle Idee, nur die Steuerung ist etwas schwierig. Ist aber ein interessanter Ansatz ;)

sonderlich "kreativ" war ich bislang noch nicht, erstmal die Grundfunktionen implementiert. Was ich jetzt noch einbauen würde wäre eine Funktion/Klasse, um ein Labyrinth aus einer Datei auszulesen, bisher passiert das eintragen noch ziemlich "manuell".
Aber erstmal Wochenende^^

* Steuerung / Controls:
* -----------------------
* u = up / nach oben
* j = down / nach unten
* l = right / nach rechts
* h = left / nach links
* x = pause
* + = zoom in
* - = zoom out
* i = restart game
* n = remove all walls
* --
* 1 = insert smilie labyrinth (place "smilie-walls" on gamearea, reads maps/smilie.txt)
* 2 = insert cross labyringth (place a cross on gamearea, reads out maps/cross.txt)
* 0 = default labyrinth (reads out maps/default.txt)

Kommentare sind alle auf Englisch.

Ciao, Lukas
Dateianhänge
DoSJavaSnake.zip
(1.08 MiB) 23-mal heruntergeladen
Zuletzt geändert von Der_olle_Schwoebel am 5. Okt 2008 13:48, insgesamt 1-mal geändert.
Life's a climb. But the view is great...
Bild

mzittel
Gast

Re: LAB-Ergebnisse

Beitrag von mzittel » 4. Okt 2008 04:03

Ich hab das 3-D Snake heute Abend auch mal programmiert allerdings
finde ich ist es bei mir jedenfalls nicht mehr vernünftig spielbar.

Ich sammle die Cookies eher zufällig als geplant ein :wink:

Die 1st-Person Variant wäre da sicher schöner :wink:

robert.n
Nerd
Nerd
Beiträge: 673
Registriert: 29. Sep 2008 19:17

Re: LAB-Ergebnisse

Beitrag von robert.n » 4. Okt 2008 14:46

Habe SnakeCube nochmal neu hochgeladen und den Eingangspost aktualisiert. U.a. hat sich die Steuerung geändert, dafür gibt es jetzt einen Bug bei zu schneller Richtungsänderung weniger. (War wahrscheinlich der einzige :P .) Außerdem kann man jetzt auch bei SnakeCube herein- und herauszoomen (hier häufig besonders praktisch), das Spiel pausieren und das Spielfenster wird bei GameOver nicht gleich geschlossen (so kann man sehen, was man eigentlich falsch gemacht hat, zudem der Schlangenkopf bei GameOver jetzt auch gelb markiert wird). Achja, es gibt jetzt immer 2 Futterstellen und die Spielgeschwindigkeit ist (anti)proportional zur Schlangenlänge. :) (Maximaler Speed ab 19 Punkten, wenn ich mich nicht irre.)

Ich denke ich werde es bei diesem Stand belassen.

tanne
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 162
Registriert: 30. Sep 2008 16:05

Re: LAB-Ergebnisse

Beitrag von tanne » 4. Okt 2008 20:57

so, hatte nun auch endlich mal zeit meine version "fertig" zu stellen, zumindest die erste beta ^^

zusätzliche features:
- man kann durch wände gehn
- das spiel hat 2 ebenen, also auch wirklich snake in 3D , allerdings auf 2 ebenen begrenzt, da es so meiner meinung auch noch spielbar ist (auch farblich gekennzeichnet in welcher man und das futter sich befindet)

bekannte bugs:
- hin un wieder färbt er ein element der schlange wenn ein neues futter gesetzt wird, noch absolut keine ahnung wo das herkommt^^

unten rechts sollen die punkte angezeigt werden, das konnte ich leider nich testen bei mir, denn bei mir funktioniert setDisplayText() nicht richtig (siehe andres topic) , vllt kann da ja mal jdm ein feedback geben, thx :)

zum 'installieren', einfach entpacken, falls nötig die libs für euer system austauschen
un dann normal ausführen über die shell , hf :)
Dateianhänge
iSnake.zip
(1.44 MiB) 20-mal heruntergeladen

Benutzeravatar
martin
Mausschubser
Mausschubser
Beiträge: 83
Registriert: 28. Sep 2008 20:50
Wohnort: Dieburg...die Stadt im Grünen :)
Kontaktdaten:

Re: LAB-Ergebnisse

Beitrag von martin » 5. Okt 2008 01:54

so hatte heute abend auch endlich mal zeit mich drum zu kümmern....

bisherige "special" features:
- Wände durchlässig oder fest einstellbar
- Punktezähler
- Resetfunktion (n)
- Pausefunktion (p)

Steuerungen und Erweiterungsideen findet ihr unter readme.txt :mrgreen:
achja spiel ist für win32 ausgelegt...
Dateianhänge
snake.zip
(1.08 MiB) 16-mal heruntergeladen
Zuletzt geändert von martin am 5. Okt 2008 19:07, insgesamt 1-mal geändert.
Wer Rechtschreibfehler findet, darf sie behalten...

Der_olle_Schwoebel
Mausschubser
Mausschubser
Beiträge: 62
Registriert: 3. Okt 2008 18:22
Wohnort: Erbach (Odenwald)
Kontaktdaten:

Re: LAB-Ergebnisse

Beitrag von Der_olle_Schwoebel » 5. Okt 2008 13:55

Ich hab meine Version heut morgen mal ein wenig überarbeitet und neu hochgeladen (siehe Beitrag oben), es ist jetzt möglich eigene Labyrinthe einzubauen, die man in Textdateien als Ascii definiert.
Dazu hab ich die Klasse readMap eingefügt, die eine Textdatei einliest und Zeichen für Zeichen "analysiert". Bisher wird nur überprüft ob es ein Leerzeichen ist oder nicht und falls nicht, gilt dieses Zeichen als "Wand". Hier könnte man eventuell noch einbauen, was für eine Wand es sein soll (das ist aber nur wichtig für die grafische Ausgabe, als obs ein Zylinder, eine Box, eine Kugel, Platte oder sonstwas sein soll).

Mit "n" werden nun auch sämtliche Wände entfernt und daher ist es jetzt auch möglich über den Rand hinaus zu gehn (die Schlange kommt dann am gegenüberliegenden Rand wieder raus).

Das war jetzt ein bisschen "File-" und "Stringhandling" in Java und erstmal genug mit Snake^^ Interessant fänd ich es jetzt mal einen Formelinterpreter zu schreiben, der Strings wie "2*x^2+3*x+sin(x)" auswertet. Das könnte ne kleine Herausforderung werden.
Life's a climb. But the view is great...
Bild

Osterlaus
BSc Spammer
BSc Spammer
Beiträge: 1263
Registriert: 23. Aug 2007 12:46
Wohnort: DA

Re: LAB-Ergebnisse

Beitrag von Osterlaus » 5. Okt 2008 15:17

Der_olle_Schwoebel hat geschrieben:Das war jetzt ein bisschen "File-" und "Stringhandling" in Java und erstmal genug mit Snake^^ Interessant fänd ich es jetzt mal einen Formelinterpreter zu schreiben, der Strings wie "2*x^2+3*x+sin(x)" auswertet. Das könnte ne kleine Herausforderung werden.
Geht an sich auch "relativ" einfach: Du musst nur zunächst eine Liste an Symbolen aufstellen, die dein Interpreter lesen können soll, also +, -, Klammern, Winkelfunktionen,... Die sortierst du nach absteigender Priorität und zerlegst dann deinen übergebenen String rekursiv.

Benutzeravatar
martin
Mausschubser
Mausschubser
Beiträge: 83
Registriert: 28. Sep 2008 20:50
Wohnort: Dieburg...die Stadt im Grünen :)
Kontaktdaten:

Re: LAB-Ergebnisse

Beitrag von martin » 5. Okt 2008 18:50

@Der_olle_Schwoebel: nette idee mit den wänden :)
aber ich hab mal ne kleine bitte an dich: bitte entferne diesen scheiß käfer aus deiner signatur...ich bekomm jedes mal angst, dass irgendwas auf meinem bildschirm nicht ok ist :mrgreen:
Wer Rechtschreibfehler findet, darf sie behalten...

Antworten

Zurück zu „Archiv“