home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 2 / goldfish_vol2_cd1.bin / files / comm / bbs / eazybbs / contrib / eazysokoban_216.lha / EazySokoban.doc < prev    next >
Text File  |  1993-05-31  |  16KB  |  307 lines

  1.                              EazySokoban V2.15
  2.                             -------------------
  3.  
  4.                      Copyright © 1993 Carsten Gerlach
  5.  
  6. Copyright-Notice
  7. ----------------
  8. Der Programmierer von EazySokoban (im Folgenden als 'ich' bezeichnet ;-)
  9. lehnt jede Art von Garantien ab, welche die Tauglichkeit der Software für
  10. einen bestimmten Zweck versprechen. Ich hafte nicht für Fehler in der 
  11. Dokumentation und auch nicht für Schäden, die durch den Gebrauch dieser
  12. Dokumentation, deren Inhalt oder meiner Software direkt oder indirekt
  13. entstehen.
  14. Ich behalte mir vor, jederzeit Änderungen an dieser Dokumentation oder
  15. deren Software vorzunehmen, ohne jeden Anwender davon zu benachrichtigen.
  16. Das Archiv und alle darin enthaltenen Files dürfen nur unverändert weiter-
  17. verbreitet werden.
  18.  
  19. EazySokoban ist Shareware
  20. -------------------------
  21. Shareware bedeutet, daß ich gerne etwas Geld für EazySokoban haben möchte,
  22. wenn es im Boxbetrieb eingesetzt wird. Für 20DM (ich nehme auch gerne mehr ;-)
  23. werdet ihr registrierter User und bekommt regelmäßig neue Programmversion,
  24. auf Wunsch via E-Mail oder als Binary-PM in einer EazyBBS-Box. Natürlich
  25. werden Wünsche registrierter User eher berücksichtigt als die normaler.
  26.  
  27. Einleitung
  28. ----------
  29. EazySokoban stellt ein weiteres (das zweite mir bekannte :-) Onlinespiel
  30. für das Mailboxsystem EazyBBS dar. EazySokoban ist eine Implementation des
  31. aus der UNIX- und PC-Welt bekannten Spiels Sokoban und enthält 80 Level des
  32. Original-UNIX-Sokobans. Eigene Level können leicht selbst erstellt werden.
  33. Die Einbindung in das EazyBBS-System ist 100%ig systemkonform, EazySokoban
  34. unterstützt beliebig viele Ports, berücksichtigt User-Status, Userzeit und
  35. alle anderen EazyBBS-seitigen Einstellungen. EazySokoban kann auch ohne
  36. EazyBBS gespielt werden.
  37.  
  38. Systemanforderungen und Installation
  39. ------------------------------------
  40. EazySokoban braucht mindestens die EazyBBS-Version 2.9 und AmigaOS 2.0
  41. oder höher.
  42. Das Programm benötigt ein Systemverzeichnis, in dem sich unter anderem
  43. die Leveldateien und die Highscoreliste befinden. Legen sie deshalb
  44. ein Verzeichnis an und kopieren sie alle im Unterverzeichnis 'sokoban'
  45. des Archivs enthaltenen Dateien dort hinein. Damit EazySokoban weiß, wo
  46. sich sein Systemverzeichnis befinden, erstellen sie einen Assign 'SOKOBAN:'
  47. auf dieses Verzeichnis (das ist nicht unbedingt nötig, siehe dazu Abschnitt
  48. "Aufruf").
  49. Beispiel:
  50.  mkdir dh0:mailbox/Sokoban             ; wir legen ein Verzeichnis an
  51.  assign SOKOBAN: dh0:mailbox/Sokoban   ; Assign darauf erstellen
  52.  copy -r ram:sokoban/* SOKOBAN:        ; alle Dateien und Unterverzeichnisse
  53.                                        ; kopieren
  54.  
  55. Installieren sie dann das File 'EazySokoban' als EazyBBS-Userprogramm (wie
  56. das geht, steht in der EazyBBS-Anleitung). Damit ist die Installation
  57. beendet.
  58.  
  59. Aufruf und Kommandozeilenparamter
  60. ---------------------------------
  61. EazySokoban kann jetzt von EazyBBS aus wie ein normales Userprogramm mit dem
  62. 'run' oder 'execute program' - Kommando gestartet werden. Dabei sind auch
  63. Parameter zulässig:
  64. EazySokoban [-p<Username>] [-d<Directory>]
  65.  
  66. Nach dem Start versucht EazySokoban das lokale EazyBBS-Environmet zu lesen,
  67. um dadurch Informationen über den aufrufenden Port zu bekommen (nähere
  68. Informationen stehen in der EazyBBS-Anleitung). EazySokoban übernimmt
  69. dann die serielle Schnittstelle des entsprechenden Ports und/oder öffnet
  70. ein Console-Window mit dem Titel 'EazySokoban<Portnr.>'. Läuft auf dem
  71. aufrufenden Port ein Console-Login, gehen alle Ein- und Ausgaben über das
  72. entsprechende Window, sonst werden Eingaben in das Window nicht akzeptiert
  73. (damit die bösen Sysops den armen Usern nicht in's Spiel pfuschen können ;-).
  74. Wenn möglich, wird das Window auf dem Screen geöffnet, auf dem auch der
  75. aufrufende EazyBBS-Port läuft. Wird EazySokoban ohne EazyBBS gespielt, wird
  76. der default public screen (meistens Workbench) benutzt. Als Font wird
  77. unabhängig vom Default-Font immer topaz.8 benutzt.
  78.  
  79. Der Paramter -d beim Aufruf dient dazu, das Sokoban-Systemverzeichnis fest-
  80. zulegen. Nach -d muß ein gültiger Verzeichnisname folgen, z.B.
  81. 'EazySokoban -dHarddisk:trash/sokoban'. Wird dieser Paramter weggelassen,
  82. nimmt EazySokoban an, daß ein Assign 'SOKOBAN:' auf das Systemverzeichnis
  83. existiert.
  84. Der Paramter -p dient dazu, Sokoban ohne EazyBBS zu spielen. Das heißt,
  85. EazySokoban liest kein Environment und öffnet ein Window, über das alle
  86. Ein- und Ausgaben laufen. Nach -p kann ein Username folgen, mit dem gespielt
  87. wird, z.B. 'EazySokoban -pGerlo'. Wird kein Username spezifiziert, wird unter
  88. dem Namen 'Sokoban-Fan' gespielt.
  89.  
  90. Beim Start können folgende Fehlerfälle auftreten:
  91. 1) Meldung "ERROR: can't read environment"
  92.    Das Environment (die lokalen, von EazyBBS übergebenen Variablen) konnte
  93.    nicht gelesen werden. Vielleicht ist eine falsche EazyBBS-Version
  94.    installiert ?
  95. 2) Meldung "ERROR: no memory"
  96.    Es ist nicht ausreichend Speicher vorhanden.
  97. 3) Meldung "ERROR: can't initialize console"
  98.    Das Console-Window konnte nicht geöffnet werden. Eventuell ist zuwenig
  99.    Speicher für das Window vorhanden. Normalerweise sollte diese
  100.    Fehlermeldung nicht auftreten.
  101. 4) Meldung "ERROR: can't initialize serial port"
  102.    Die serielle Schnittstelle konnte nicht geöffnet werden. Normalerweise
  103.    sollte diese Fehlermeldung nicht auftreten.
  104. 5) Meldung "ERROR: can't initialize timer"
  105.    Das timer.device konnte nicht geöffnet werden.  Normalerweise
  106.    sollte diese Fehlermeldung nicht auftreten.
  107. 6) Meldung "Sorry, but guests can't play :-("
  108.    Ein User mit Gaststatus wollte da doch wirklich die Box blockieren ;-)
  109.  
  110. Das Programm (ab geht's)
  111. ------------------------
  112. HINWEIS: für einen korrekten Bildschirmaufbau sollte der EazyBBS-User
  113. ein VT100/102-Color-Emulation verwenden. Für Müll auf dem Bildschirm
  114. wird sonst keine Garantie übernommen ;-) User mit Gaststatus haben keinen
  115. Zugriff auf das Spiel.
  116. Nach erfolgreichem Start bekommt der User eine Kommandozeile mit folgendem
  117. Aussehen vorgesetzt:
  118.  Select Level ('?' for help) [12] :
  119. In dieser Kommandozeile ist edieren mit der BackSpace-Taste möglich, alle
  120. Eingaben werden mit RETURN abgeschlossen. Die Zahl in den eckigen Klammern
  121. zeigt den aktuellen Level des Benutzers an. Dazu ist folgendes zu sagen:
  122. jeder Benutzer (unterschieden wird anhand des übergebenen Usernamens) muß
  123. das Spiel "durchspielen", d.h. bei Level 1 anfangen und nach und nach
  124. weiterkommen. EazySokoban merkt sich für jeden Benutzer den höchsten Level,
  125. den er geschafft hat - dieser wird in den eckigen Klammern angezeigt.
  126. Folgende Befehle sind verfügbar:
  127. '?' gibt eine kurze Online-Hilfe für die Kommandozeile aus
  128. 'h' zeigt die Hiscore-Liste an
  129. 'q' verläßt EazySokoban, es wird zur Box zurückgekehrt
  130. 'm' wählt den Display-Update-Modus (Erklärung unten)
  131. 'l' lädt und spielt den gespeicherten Level (Erklärung unten)
  132. <RETURN> wählt den aktuellen Level (der in den []) zum Spielen an
  133. Durch Eingabe einer Zahl (z.B. '1','01','12') kann ein Level direkt
  134. angewählt werden, aber nur wenn der Benutzer ihn bereits durchgespielt hat.
  135. D.h. ist der aktuelle Level eines Benutzers 12 kann er nur die Level 1-12
  136. direkt anwählen.
  137. Es kann passieren, daß EazySokoban einen Level nicht laden kann. Der
  138. häufigste Grund dafür ist, daß der gewünschte Level nicht existiert ;-)
  139. Jedenfalls erscheint dann die Fehlermeldung 'Sorry, can't load level'.
  140. Mit 'm' läßt sich einstellen, ob die Statuszeile im Spiel nach jedem
  141. Zug oder alle fünf Züge neu aufgebaut wird. Dadurch läßt sich
  142. die Geschwindigkeit der Bildschirmausgabe erhöhen.
  143. Durch 'l' ist es möglich, eine gespeicherte Spielsituation (siehe Abschnitt
  144. "Spiel") zu laden und zu spielen. Falls keine gefunden wurde, gibt EazySokoban
  145. die Fehlermeldung 'Sorry, can't load level' aus.
  146.  
  147. Das Spiel
  148. ---------
  149. Hat der Benutzer in der Kommandozeile einen Level gewählt, versucht
  150. EazySokoban diesen Level zu laden und wechselt dann in das eigentliche
  151. Spiel. Für diejenigen, die Sokoban nicht kennen, folgt eine kurze
  152. Beschreibung.
  153. Man kontrolliert eine Spielfigur ('*') die durch das Labyrinth jedes Levels
  154. bewegt werden kann. Ziel ist, alle Geldstücke ('$') in den Safe (farbige
  155. Felder) zu schieben. Die Geldstücke können nur geschoben werden, nicht etwa
  156. gezogen oder aufgehoben. Alle Bewegungen und Schiebevorgänge werden mit-
  157. gezählt - für einen besseren Hiscore kann versucht werden, den Level mit
  158. weniger Bewegungen zu lösen. Sind alle Geldstücke im Safe kann der nächste
  159. Level gespielt werden.
  160. Im Spiel sind folgende Tasten belegt:
  161.         8
  162.        4 6
  163.         2
  164. auf dem Zehnerblock bewegt die Spielfigur in die entsprechende Richtung.
  165. 'q' verläßt den Level und kehrt zur Kommandozeile zurück.
  166. CTRL-R bewirkt einen Neuaufbau des Bildschirms.
  167. Vor einer unsicheren Aktion läßt sich mit 's' (wie 'save') der aktuelle
  168. Zustand (Bildschirmaufbau, Cursorposition und Status) speichern. Dieser
  169. Zustand kann mit 'r' (wie 'restore') wieder zurückgeholt werden.
  170. Ein Zustand kann mit 'w' (wie 'write') als Datei gespeichert werden.
  171. Im Gegensatz zum Speichern mit 's' bleibt diese Datei bestehen, und kann
  172. aus der Kommandozeile wieder geladen und gespielt werden (siehe Abschnitt
  173. "Das Programm"). So kann der Benutzer eine Situation speichern, EazySokoban
  174. beenden, und beim nächsten Login weiterspielen.
  175. Der zuletzt ausgeführte Schub läßt sich mit 'u' (wie 'undo') rückgängig
  176. machen.
  177. Die Statuszeile zeigt an, wieviele Züge (Moves) und Schübe (Pushes)
  178. durchgeführt wurden, wieviele Geldstücke (Packets) sich im Level und
  179. wieviele davon sich schon im Safe (Saved) befinden. Achja, die Levelnummer
  180. wird auch noch angezeigt. Und ein inverses 'S' zeigt an, ob ein Zustand
  181. gespeichert wurde.
  182. Unter der Statuszeile können zwei Informationszeilen stehen, in denen sich
  183. z.B. der Ersteller des Levels verewigt hat.
  184.  
  185. Die Highscoreliste
  186. ------------------
  187. Wurde in der Kommandozeile der Befehl 'h' eingegeben oder hat der Spieler
  188. nach dem erfolgreichen Beenden eines Levels einen Highscore erreicht, wird
  189. die Highscoreliste angezeigt. Der zuletzt erreichte Highscore wird invers
  190. angezeigt. Die erreichte Platzierung ist umso höher, je höher der
  191. bewältigte Level war und je weniger Züge dazu gebraucht wurden.
  192. Hat also ein User das Spiel durchgespielt (BTW: bei den 80 höllich schweren
  193. Levels ist das höchstens per Cheat-Modus möglich ;-)) kann er versuchen,
  194. jeden Level mit möglichst wenig Zügen zu schaffen.
  195.  
  196. Erstellen eigener Levels
  197. ------------------------
  198. Es ist möglich, eigene Spielfelder für EazySokoban zu erzeugen. Alle Levels
  199. sind als Textdateien abgelegt und können mit einem Texteditor (z.B. dem CEd)
  200. ediert und neu erstellt werden. Der Aufbau einer Leveldatei muß allerdings
  201. bestimmten Regeln folgen. In einer Leveldatei werden bestimmte Schlüsselwörter
  202. verwendet. Folgende werden erkannt:
  203. 'MSG1:','MSG2:' - der Text nach dem Doppelpunkt bis zum Zeilenende wird als
  204. Messagezeile #1 bzw. #2 erkannt. Diese Messagezeilen werden unter dem
  205. entsprechenden Level angezeigt. Hier können Informationen über den Level,
  206. den Ersteller und nette Botschaften an den Spieler stehen. Erscheinen diese
  207. Schlüsselwörter nicht in einer Leveldatei, werden Leerzeilen ausgegeben
  208. (das ist bei allen mitgelieferten Spielfeldern der Fall). Die Messagezeile
  209. (nach dem Doppelpunkt) darf nicht länger als 80 Zeichen sein.
  210. 'PLAYFIELD:' - nach diesen Schlüsselwort folgt die Spielfelddefinition.
  211. WICHTIG: nach dem Schlüsselwort _muß_ aus technischen Gründen eine Leerzeile
  212. folgen. Nach der Leerzeile werden alle folgenden Zeilen bis zum Fileende
  213. als Definitionszeilen für das Spielfeld ausgewertet. Eine Zeile darf
  214. maximal 80 Zeichen breit sein, das Spielfeld darf maximal 20 Zeilen hoch
  215. sein. Nach 20 ausgewerteten Zeilen bricht EazySokoban ab. Als Bausteine für
  216. das Spielfeld sind folgende Zeichen zulässig:
  217. '$' - Geldstück
  218. '#' - Mauer
  219. 'H' - Safe
  220. 'X' - Geldstück im Safe
  221. '*' - Spieler, Startposition
  222. Man sollte darauf achten, daß der Spieler in einem abgeschlossenen
  223. Labyrinth startet und daß der Level beendbar ist, d.h. genausoviele Safes
  224. wie Geldstücke vorhanden sind. EazySokoban testet nicht, ob die Level
  225. sinnvoll sind, z.B. ob überhaupt eine Spielfigur vorhanden ist, oder ob
  226. es wirklich nur eine ist.
  227. Wer das alles nicht versteht, kann sich einfach den Level 01 des mit-
  228. gelieferten Sets ansehen. Wer's dann noch nicht versteht ....
  229. EazySokoban sucht die Leveldateien immer im Unterverzeichnis 'level' des
  230. Systemverzeichnisses unter den Namen 'levelXX.esdat', wobei 'XX' die
  231. (immer zweistellige) Levelnummer darstellt. Eine Methode, eigene Level 
  232. sinnvoll einzubinden, wird im Kapitel "Level-Sets" beschrieben.
  233.  
  234. Level-Sets und Parameter
  235. ------------------------
  236. Wer eigene Level erstellt oder von Usern erstellte Level einbinden will,
  237. muß das nicht machen indem er die schönen Originallevel löscht oder die
  238. eigenen Level hintenanstellt (auf diese Weise kommen nur wenige in den
  239. Genuß ...). EazySokoban bietet durch den '-d'-Parameter eine Möglichkeit
  240. an, mit mehreren Level-Sets zu spielen.
  241. Die Idee ist folgende: für jedes Level-Set (meinetwegen Originallevel,
  242. Sysop's Kreationen, Userlevel) wird ein eigenes Systemverzeichnis
  243. (siehe dazu Abschnitte "Installation" und "Systemfiles") angelegt.
  244. In das jeweilige Untervezeichnis 'level' kommen natürlich nur die
  245. gewünschten Level-Dateien.
  246. Jetzt wird für jedes Level-Set ein Userprogramm installiert, das
  247. EazySokoban mit dem '-d'-Parameter so aufruft, daß das zum Level-Set
  248. gehörige Systemverzeichnis übergeben wird (für den '-d'-Parameter siehe
  249. Abschnitt "Aufruf").
  250. Diese Methode hat gleichzeitig noch den Vorteil, daß für jedes Level-Set
  251. eine eigene Highscoreliste und eigene User-Infos angelegt werden.
  252. EazySokoban bietet auch die Möglichkeit, den User über das aktuelle
  253. Level-Set zu informieren. Die Datei 'SetInfo' im Systemverzeichnis
  254. kann eine Textzeile enthalten, die beim Start von EazySokoban ausgegeben
  255. wird (siehe auch Abschnitt "Systemfiles").
  256.  
  257. Systemfiles
  258. -----------
  259. Im Sokoban-Systemverzeichnis muß das Unterverzeichnis 'level' existieren.
  260. In diesem Verzeichnis sucht EazySokoban die Leveldateien (deren Aufbau wird
  261. im Kapitel "Erstellen eigener Levels" beschrieben).
  262. Die Dateien 'UserInfo' und 'HiScores' enthalten Information über den zuletzt
  263. gespielten Level jedes Users und die Hiscoreliste. Diese Dateien werden von
  264. EazySokoban erzeugt falls sie nicht vorhanden sind. Edieren per Hand ist
  265. verboten (Hände weg ! Pfui ! Böse !) und kann zu Programmabstürzen führen.
  266. Die Datei 'SetInfo' kann ediert bzw. angelegt werden. Sie enthält eine
  267. Textzeile, die beim Start von EazySokoban einmalig ausgegeben wird, und den
  268. Benutzer über das Level-Set informieren soll, das er gerade spielt.
  269. Dateien mit dem Namen '<UserName>.esdat' sind vom entsprechenden User
  270. gespeicherte Spielsituationen. Diese Dateien sollten nicht verändert werden.
  271.  
  272. Was noch
  273. --------
  274. EazySokoban übernimmt den EazyBBS-seitigen Wert für den Timeout. Wurde
  275. die entsprechende Zeit lang kein Zeichen empfangen, unterbricht EazySokoban
  276. und kehrt zu EazyBBS zurück.
  277. Die verbleibende Userzeit wird nur nach Verlassen oder Durchspielen eines
  278. Levels geprüft. Ist keine mehr vorhanden oder wurde überzogen, kehrt
  279. EazySokoban zu EazyBBS zurück.
  280. Das Programm kann jederzeit durch ein CTRL-C-Signal abgebrochen werden.
  281.  
  282. Besonderer Dank geht an Andreas Kirchwitz für seine Hilfe beim Programmieren
  283. von EazySokoban und für das Installieren der Testversionen, was viel
  284. Nerven und Abstürze gekostet hat ;-)
  285.  
  286. Kontakt
  287. -------
  288. Wer Fragen, Vorschläge, Bugreports, Geschenke o.ä. hat oder gar seine
  289. Shareware-Gebühr bezahlen will, kann sich auf folgende Weise an mich
  290. wenden:
  291.  
  292. - per gelber Post: Carsten Gerlach
  293.                    Falkentaler Steig 95a
  294.                    W-1000 Berlin 28
  295.                    Germany
  296. - per Telefon (Voice): (030) 4049763
  297. - per UUCP/InterNet: gerlo@obh.in-berlin.de
  298.                 oder gerlo@iceland.lbcmbx.bln.sub.org
  299.                 oder gerlo@lbcmbx.in-berlin.de
  300. - in der EazyBBS-Support-Mailbox:
  301.            ZikZak
  302.            (030) 873376 (V.32, HST, V.32bis)
  303.            nur von 15-21 Uhr, Sysop ist "Big Bonzo"
  304.            User-ID: "Gerlo"
  305. - oder in diversen anderen EazyBBS-Mailboxen unter der User-ID "Gerlo"
  306.  
  307.