BASIC (mehr dazu hier >) erfunden in den 60er Jahre (noch weitgehend im CommandLine Input/Output Frame) hat eine lange Geschichte der Radiation hinter sich. BASIC fehlte strategisch so etwas wie inkludierbare Frameworks, die dann auf jedem System wieder anders implementiert werden mussten. Es war ja auch unter anderem als Programmiersprache fürs Lernen konzipiert worden.
Es entstanden deswegen eine Menge verschiedene Dialekte, in denen eigentlich nur noch die Grundbefehle gemeinsam sind, aber selbst die Nutzung dieser 26-Grundbefehle ist oft unterschiedlich (Dim-Defintionen etwa). Man kann sich sogar fragen, ob selbst Assembler-Programme ohne Zeilennummern ‚moderner‘ waren. Vor allem die 80er Jahre mit ihren Basic-HomeComputer-Interfaces waren prägend. Und so läuft fast kein Basic-Programm auf verschiedenen Plattformen. Noch einschneidender war selbstverständlich das Aufkommen von Zeilenlosen-Basics wie etwa GFA-Basic ab den 16/32Bit-Homecomputern, das eine Kompatibilität fast unmöglich machte.
Will man heute ein BASIC Programm schreiben, das auf so vielen Plattformen wie möglich läuft, muss man sich start beschränken auf die minimalen Befehle. Das schwierigste ist natürlich die Ausgabe, da BASIC in seiner ursprünglichen Form eigentlich auf LinePrinter ausgelegt ist (60er Jahre) bzw. Bildschirme als Lineprinter funktionierten. Grafikbefehle Fehlanzeige. Der Rechner war hier wirklich als „Rechner“ gedacht.
Noch schwieriger ist es, etwas im Action-Bereich zu machen. Also da, wo es um Keypressing geht und das optionale Nutzen von Input. Hier wird es sehr schwierig, da das Dartmouth-Basic, soweit ich das sehe, über kein eigenes Kommando verfügt und so jede Implementation dann selbst etwas „gewurstelt“ hat, um das zu ermöglichen. Ein weiteres Problem ist selbstverständlich die Möglichkeit irgendwie die Geschwindigkeit zu messen, bei heute im Vergleich zu damals unendlich schnellen Systemen.
Die letzten zwei Anforderungen muss man also auf jeder Installation – soweit ich das sehe – selbst implementieren.
Action-Angehauchtes „Be Jeweled“ oder 3+ gewinnt
Anbei wurde versucht ein einfaches BASIC-Spiel zu implementieren, dass ActionAspekte hat und dennoch auf allen Plattformen ohne grosse Anpassungen laufen wird (Zeilenbasiert).
Herausgekommen ist am Ende ein vereinfachtes „Be jeweled“ mit Lineprint als Ausgabe.
Das Spiel schreitet voran und fügt per PRINT neue „Edelsteine“ hinzu. Dabei wartet das Spiel eine Sekunde, bis der nächste Stein angehängt wird. In dieser Zeit kann der Spielende seinen Stein anfügen. Im vorliegenden Fall ist es ein „.“. Danach wird die Linie beeendet und abgerechnet.
Weiterlesen