Revival fuer meine alten QBasic-Games
von Dennis Wronka
am 17.03.09 um 10:43 (1050 Hits)
Wie ich sicher mal erwaehnt hab hab ich meinen Programmiereinstieg in Basic "gefeiert".
Nachdem ich einen Monopoly-Clone auf dem Schneider in Basic lediglich abgetippt habe hab ich auf meinem ersten PC (einem 486 SX-25, mit sagenhaften 4MB Speicher und einer gewaltigen 120MB Festplatte) mit QBasic angefangen.
Nach anfaenglichem Rumtesten hab ich dann Text-Adventures geschrieben.
Da QBasic ja nun nicht mehr Teil von Windows ist ein Download den ich bei Microsoft gefunden habe nicht geholfen hat, oder zumindest nicht mittels Wine zum Laufen ueberredet werden koennte, dachte ich mir dass das ja mal eine nette Uebung waere etwas mehr in C# reinzukommen.
Gesagt, getan. Den heutigen Nachmittag habe ich also damit verbracht einen minimalen QBasic-Parser in C# zu bauen.
Minimal heisst hier dass nur die fuer meine Text-Adventures noetigen Funktionen, CLS, PRINT, INPUT, IF und GOTO, umgesetzt wurden.
Sicherlich ist der Code nicht wirklich optimal, so lese ich z.B. die QBasic-Datei 2 mal aus. Da werd ich noch dran arbeiten. Wahrscheinlich einmal komplett auslesen und dann einfach splitten.
Auf jeden Fall hab ich den Code nun soweit dass ich meine alten Spiele wieder spielen kann.
Nicht dass sie besonders gut waeren, aber das ganze soll ja eine Uebung in C# sein.
Das groesste Problem war im Grunde genommen ein konzeptuelles. GOTO unterscheidet sich ja insofern von einer Funktion dass nach Ausfuehrung des durch GOTO angegebenen Abschnitts nicht wieder zum Aufrufort zurueckspringt.
Aber auch das schein ich hingekriegt zu haben.
C# bietet sich hier ja auch deshalb an damit das fertige Programm schoen platformunabhaengig ist. Und da ich das Projekt als Konsolenanwendung umgesetzt hab gibt es auch keine Abhaengigkeiten zu Mono oder GTK#.
Nachher werd ich nochmal durch den Code wuseln und schauen was ich noch auf die Schnelle verbessern kann und werde den Code dann wohl mal hier zur allgemeinen Belustigung posten.






