Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kleines Sokoban-Spielchen^^



Manuel
14.05.2006, 22:24
Hi @ all,

Damit wenigstens ein bisschen Leben in die Bude (= Unterforum) kommt, dachte ich, ich stelle hier mal mein Sokoban-Spielchen vor^^.

Tjoar, das Spielprinzip kann leicht beschrieben werden: Man ist Lagerarbeiter und muss versuchen, Kisten in gekennzeichnete Positionen zu bringen. Allerdings kann man immer nur eine Kiste gleichzeitig bewegen. Außerdem kann man Kisten nur schieben, nicht ziehen.

Im Downloadpaket sind 155 Levels enthalten von einem gewissen David W. Skinner, der seine Levels kostenlos und ohne irgendwelche Arten von Auflagen zur freien Verfügung stellt. Seine Levels sind vom ersten Augenblick an sehr anspruchsvoll, der Schwierigkeitsgrad ist - wie alle meine Spiele - recht hoch^^.

Da ich im Bereich der Windows-Programmierung (ja, im Gegensatz zu meinen früheren "Kunstwerken" handelt es sich hier um ein Windows-Spiel) noch ein N%b bin, gibts dementsprechend kleinere Einschränkungen^^. Die Bedienung erfolgt komplett per Tastatur. Die Shortcuts sind:

Pfeiltasten = Spielfigur lenken
S = Spielstand speichern (und dabei gleichzeitig den vorigen überschreiben!)
L = Spielstand laden
N = Level neu beginnen
ALT + F4 = (eh klar) Spiel beenden

Hintergründe
Programmiert habe ich dieses Spiel in AutoIt (http://de.wikipedia.org/wiki/AutoIt), einer Freeware-Skriptsprache, die ursprünglich für unbeaufsichtigte Installation geschrieben wurde. Der Quellcode meines Spiels ist die Datei "sokoban.au3" und kann mit jedem ANSI-Texteditor betrachtet werden.
AutoIt erlaubt - im Gegensatz zu anderen Programmier-/Skriptsprachen - leider nur eindimensionale Arrays. Wer also den Quellcode ansieht, wird vielleicht einige Stellen entdecken, die etwas... ressourcenfressend sind^^.

Nun denn, hier mal der Download-Link:

http://home.arcor.de/mk-gamemaker/downloads/sokoban.zip

Ynnus
14.05.2006, 23:45
Diese Scriptsprache wie du es nanntest sieht irgendwie aus wie Basic. ^^

Und ich war soooo weit gekommen (naja, Level 10 oder so aber das ist für meine Verhältnisse schon gut ^^) und dann friert das Spiel ein. :(
Gibt's eine Console um wieder bei Level XX anzufangen, wenn man noch nicht gespeichert hat?

Manuel
15.05.2006, 11:16
Ich weiß leider nicht, warum das Spiel einfriert^^. Sollte normalerweise nicht passieren...

Aber bei der Levelwahl kann man ganz einfach cheaten: Einfach die Datei "autosave.sav" mit einem Texteditor öffnen und in der zweiten Zeile die Levelnummer eintragen ;) . Dann im Spiel die L-Taste drücken.

Jep, das ist eine Basic-ähnliche Syntax. Aber um Welten besser als andere kostenlose Programmiersprachen, die ich bis jetzt kennengelernt habe^^. Irgendwann muss ich auch mal von QBasic runterkommen :D .

Crash-Override
15.05.2006, 12:49
Irgendwann muss ich auch mal von QBasic runterkommen :D .

Pascal-Syntax ist viel cooler. Delphi aka Object Pascal bzw. den Free-Pascal Delphi-Clon Compiler Lazarus (ohne Änderung Quellcode auf Win, Linux, OSX lauffähig*) sind sehr praktische Programmierteile.

* = Zugegeben sind die Exen ... *hust* etwas *hust* Groß (so 7-8 MB fürn' Texteditor, aber mit upx (Open Source Exe Compressor) lässt es sich auf etwa 30-40% pressen. Immer noch viel, aber naja -_-"

Dingsi
15.05.2006, 14:00
Pascal-Syntax ist viel cooler. Delphi aka Object Pascal bzw. den Free-Pascal Delphi-Clon Compiler Lazarus (ohne Änderung Quellcode auf Win, Linux, OSX lauffähig*) sind sehr praktische Programmierteile.Ruby > C-artige Syntax > Alles > Pascal-artige Syntax.

Jesus_666
15.05.2006, 17:15
Ruby > C-artige Syntax > Alles > Pascal-artige Syntax.
C-artige Syntax > Ruby > alles > Pascal-artige Syntax > Haskell.


write :: [String] -> Handle -> IO ()
write [] out = do hClose out
putStrLn("Beende.")
write (x:xs) out = catch (do hPutStrLn out x
write xs out)
(\e -> if (isFullError e) then errDiskFull
else errGenWrite)



Das Spiel werde ich mir mal ansehen, wenn ich zuhause bin. Mal sehen, ob es Wine mag.
Nachtrag: Weder Wine noch Cedega können das Spiel emulieren. In beiden Fällen erscheint ein bildschirmfüllendes Fenster und man kann das Levelset auswählen, aber unter Wine funktioniert der Input nicht und Cedega zeigt nicht mal die Grafik an.

DFYX
15.05.2006, 23:13
Richtig klasse Idee, ich werds bei Gelegenheit mal ausprobieren, auch wenn ich hier noch ein Original Sokoban mit 99 Levels hab. Das Menü in Form von nem Aufzug war einfach genial.