Kann ich in meiner Batchdatei (.bat/.cmd) auch speichern und sie später wieder laden? Mehr unten!

...komplette Frage anzeigen

4 Antworten

Ich würde eine StatusDatei in der Form einer weiteren Batchdatei schreiben, welche einen Spielstand / Programmstatus repräsentiert und diesen beider Ausführung wiederherstellt: in der Form des Inhalts von einigen EnvironmentVariablen. Die Kunst besteht darin, diese Datei aus einer Batchdatei heraus zu erstellen. Ich habe das hier mal exemplarisch mit einer EnvironmentVariablen "Var_A" dargestellt - (hoffentlich macht dieser Editor mit...):

(Bedenke: das Zeichen ">" wird im Codebeispiel mit & g t ; ersetzt...)

Beispielprogramm:

set Var_A=

if not exist data.bat goto L_noInit
echo "LOADING:"
echo on
call data.bat
echo "LOADED"
:L_noInit
set Var_A=%Var_A%+3
echo off
call dump.bat > data.bat
echo on
pause

Unterprogramm "dump.bat":

echo set VAR_A= %Var_A%

Der Status wird also wiederhergestellt, indem die Statusdatei (hier: data.bat) als SubRoutine ausgeführt wird: "call data.bat". Die Sicherung erfolgt wiederum über eine wohlformatierte Ausgabe (ohne ECHO), umgeleitet in die StatusDatei: "echo off - call dump.bat > data.bat - echo on". Echo muß aus sein, damit der Quelltext des BatchFiles nicht auch mit gedumpt wird.

Programmierung mittels Batch ist zwar manchmal der schnellste und einfachste Weg zu einem Ziel, aber bei einem TextAdventure würde ich eher zu einer SkriptSprache wie VisualBasic greifen - flexibler und einfacher handzuhaben. In der Batchprogrammierung kämpft man zuweilen zu mehr als der Hälfte der Zeit mit den Einschränkungen des Mediums, die Kreativität kann sich nicht so recht entfalten.

Also es ist doch unsinnig einen eigenen Interpreter zu bauen.

Und dann musst du noch ein Haufen von Befehlen erstellen, das ist soviel Arbeit.

Nutze doch lieber eine bereits für Textadventure bestehende Programmiersprache.

TAG

Die ist sogar wesentlich leichter als eine Batch zu schreiben und man brauch nur noch Objekte und Räume beschreiben und kann sofort mit dem Spielen loslegen.

http://www.martin-oehm.de/tag/index.html

meinst du die stelle in deinem textadventure?

speichern könntest du es doch ganz einfach per umleitung ( > ) in einer datei. dann könntest du es mit sprungmarken versuchen. also dass er dann zu dem punkt springt.

ich weiß nicht genau was du meinst, wenn du deine befehle einfach in ein textdokument (rechtsklick/neu/textdokument) schreibst, kannst du ja speichern und immer weiter basteln, wenn du die endung dann von txt zu bat änderst, kannst dus ausführen, meintest du das???

...NEIN! Also...nochmal von vorne.. Ich will IN MEINER BATCH-DATEI SPEICHERN KÖNNEN! Das dann der Punkt, an dem ich gespeichert habe wieder aufgebaut wird! Also zum Beispiel bin ich jetzt an irgendeiner Stelle angekommen und schreibe Speichern und dann ist gespeichert. Später, wenn ich sie wieder ausführe und ich tippe Laden ein, dass dann dieser Standpunkt geladen wird. Also wenn ich sie RICHTIG geöffnet habe und NICHT mit Editor!

0

Was möchtest Du wissen?