Sokoban Clone

Status
Nicht offen für weitere Antworten.

Manfred

Bekanntes Mitglied
Also das Spiel aus den frühen Jahren sollte eigentlich jedem bekannt sein!

Angefangen hat es so, dass ich zuerst nur ein Labyrinth darstellen wollte. Gut, dem nicht genug wollte ich noch quasi eine Figur durchbewegen können. Tja und wie es eben so ist, will man immer mehr und dann kam ich auf den Sokoban Gedanken!

Hier ein Screenshot:

http://members.chello.at/manfred.fettinger/soko.JPG

Rot ist der Spieler, Gelb die Fässer, Blau das Ziel

Hier das JAR File

http://members.chello.at/manfred.fettinger/java/SokobanJay.jar

Sourcecode ist im JAR File mit drinnen

Also von der programmierung her ist es sicher nicht vorbildlich.... :roll:

Das Level wird aus einem Textfile eingelesen, welches ebenfalls im jar File vorhanden ist! Man kann ganz einfach auch ein neues Level erstellen (jar in zip umbenennen und das maze.txt ändern).

Also so sieht z.B. das Standardlevel aus:

Code:
2
13
1111111111111111111
1   111   11  11  1
1       1   1     1
1   1         1   1
1 1111 111  1  1  1
11  2        P    1
111   333    2    1
1 11  33          1
1       111     2 1
1 2 11       11   1
1       2         1
11     11     11  1
1111111111111111111

1 = Mauer
2 = die zu verschiebenden Barrels
3 = das Ziel, wo die Barrels hinmüssen
P = Startposition Spieler
blank = der Raum in dem man sich bewegt

Das Programm prüft jedoch das Level nicht ab. Also ob gleich viele 2 wie 3 vorkommen.
Und wichtig, ganz am Anfang der Datei steht die Anzahl der gesamten Levels, dannach die Anzahl der Zeilen des folgenden Levels.

Pfeiltasten bewegen, ESC = Level Neustart


Na, was meint ihr?
 

Anubis

Bekanntes Mitglied
Als ich das erste Level geschafft hatte, kamen Fertig-Meldungen ohne ende, schnaller als ich klicken konnte. Musste die Application gewaltsam beenden.
 

Manfred

Bekanntes Mitglied
Anubis hat gesagt.:
Als ich das erste Level geschafft hatte, kamen Fertig-Meldungen ohne ende, schnaller als ich klicken konnte. Musste die Application gewaltsam beenden.

Seltsam, habs gerade nochmal gespielt und ging ohne Probleme..

Laut dieser Code Zeile sollte es auch so sein?!

Code:
            Object[] options = { "OK" };
            JOptionPane.showOptionDialog(null, "Geschafft in "+moves+" Zügen!", "Fertig!", 
                JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE , null, options, options[0]);
            System.exit(0);


Ich hab trotzdem eine kleine Änderung gemacht, probiers hier mal:

http://members.chello.at/manfred.fettinger/soko2.jar
 

Anubis

Bekanntes Mitglied
Diesmal alles Ok.
Nur noch ein paar Tipss zum Leveldesign:
Nur die Felder, die zum Lösen des Levels nötig sind, sollen begehbar sein.
Nach möglichkeit den Spieler denekn lassen.
 

0xdeadbeef

Top Contributor
Manchmal ist nach dem Drücken von Escape der "Spieler" (das rote Quadrat) ganz links oben außerhalb des Spielfeldes.
 

skaal

Mitglied
coole sache. mach aber nochmal ein menu damit man neu starten kann ohne das programm immer neu aufzurufen. ist gut für leute wie mich, die da nicht so begabt sind und mehere versuche brauchen.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben