Zauberschloß – ein Abenteuerspiel mit Tücken
Abenteuerspiele haben ihren ganz besonderen Reiz. Gefragt sind weniger die motorischen Reaktionsfähigkeiten, sondern vielmehr die logische Vorgehensweise und viel Fantasie. In einem streng bewachten Schloß mit seinen vielfältigen Gefahren gilt es, dem Zauberer die Krone und damit die Regentschaft über das Volk zu entreißen. Doch es ist ein steiniger Weg.
Es ist uns klar, daß wir mit der Veröffentlichung des Listings vom Zauberschloß die Möglichkeit bieten, durch Analyse des Programms dem Lösungsweg auf die Spur zu kommen. Viel wichtiger erschien uns jedoch, einmal an einem kommentierten Listing zu zeigen, wie ein Abenteuerspiel aufgebaut ist. Nicht zuletzt, um vielleicht einige Leser anzuregen, sich selbst mit der Erstellung dieser Denkspiele zu befassen.
Worum geht es bei dem Abenteuerspiel Zauberschloß? Nach dem Starten des Programms sieht man zunächst den Wald vor lauter Bäumen nicht. Präzise gesagt, man befindet sich in einem Wald, der kein Ende zu nehmen scheint. In welche Richtung man auch läuft — nur Wald. Mit einem Trick gelangt man aber doch in das Zauberschloß.
An dieser Stelle sei kurz auf die Art der Befehlseingabe hingewiesen. Um die gestellte Aufgabe (die sich erst während des Spiels klarer herauskristallisiert) zu lösen, geben Sie dem Computer Anweisungen, die er dann ausführt. Diese Befehle bestehen in der Regel aus zwei Worten, die durch eine Leerstelle getrennt sein müssen. Das erste Wort ist ein Befehlswort, das aus dem vorhandenen Wortschatz (NIMM VERLIERE LIES ÖFFNE VERJAGE DREH BENUTZE TRINK) zu entnehmen ist. Das zweite Wort bezieht sich auf einen Gegenstand, der in den jeweiligen Situationsbildern zu sehen ist. Die Auswirkungen der Kommandos werden vom C64 auf dem Bildschirm als Nachricht angezeigt. Für die Richtungsangabe werden nur die Anfangsbuchstaben eingegeben. Die möglichen Himmelsrichtungen sind jeweils vorgegeben.
Das Schloß besteht aus mehreren Stockwerken einschließlich einem Kerker im Keller, der in keinem anständigen Schloß fehlen darf. In den verschiedenen Stockwerken lauern Kobolde, die Sie bei falscher Vorgehensweise in einen Zwerg verwandeln, öffnen sich bei Fehltritten Falltüren, liegen Tarnkappen, Gift- und Zaubergetränke, Messer, Speere und Zettel herum. All diese Gegenstände stehen in irgendeiner Beziehung zum weiteren Vorwärtskommen. Man muß sie in der entsprechenden Reihenfolge aufnehmen und wieder wegwerfen. Wegwerfen deshalb, weil man zu einem bestimmten Zeitpunkt nur vier Gegenstände gleichzeitig tragen kann. Ein wesentlicher Meilenstein ist das Buch. In diesem Buch stehen nämlich wichtige Informationen, wie man sich bei der letztlich eintretenden Konfrontation mit dem Zauberer zu verhalten hat. Aber Vorsicht, die Wache hat etwas gegen den verständlichen Wunsch, dieses Buch zu lesen. Als größtes Hindernis tritt Ihnen ein feuerspeiender Drache gegenüber, der den Eingang zum Thronsaal bewacht. Fürwahr, ein schwerer Brocken. Wenn Sie aber den richtigen Zauberspruch auf Lager haben, verwandelt der Zauberer sich in eine niedliche Maus, und Sie haben das Königreich von einem Tyrannen befreit. Es bleibt nur ein Problem: Wie kommt man mit der Krone wieder aus dem Schloß heraus?
Aber bis Sie soweit vorgedrungen sind, werden sicherlich einige Stunden vergangen sein, in denen Sie ein Wechselbad von Enttäuschungen und Hochgefühlen durchleben. Da bis zum endgültigen Ziel eine Menge Schritte einzugeben sind, und Sie sicherlich nicht beim ersten Versuch gleich die Lösung finden werden, bietet Ihnen das Programm die Möglichkeit, das Spiel mit dem Kommando SAVE abzuspeichern. So können Sie zu einem späteren Zeitpunkt genau bei der Stelle weitersuchen, an der Sie kurz vor einem Zusammenbruch aufgehört haben.
Noch eine kurze Bemerkung zum Listing: Um die oben angesprochene Analyse dennoch etwas zu erschweren, sind einige Daten verschlüsselt worden. Das Listing ist im Grafikmodus einzugeben.
Und nun viel Spaß bei einem Abenteuer im Zauberschloß.
(Dennis Merbach/aa)Zeile | |
---|---|
102-162 | Datas für Sprites |
101-102 | Fackel (Multicolor) |
104-106 | Wache |
108-110 | Drache 1. Teil |
112-114 | Drache 2. Teil |
116-118 | Drache 3. Teil |
120-122 | Gift |
125-127 | Handschuh |
130-132 | Zauberer 1. Teil |
135-138 | Zauberer 2. Teil |
140-143 | Krone |
150-151 | Maus |
155-157 | Kobold |
160-162 | Zaubertrank |
500- | Spielanleitung |
1000 | Spielbeginn (im Wald) |
1500 | Unterprogramm Bäume zeichnen |
2030 | Bildschirm blinken |
10000 | im Schloß Poke VC + 17, Peek (VC + 17) and 239 = Bildschirm ausschalten (einschalten mit Poke VC + 17, Peek (VC + 17) or 16 |
10005-10092 | Zeichnen des Raums mit Türen und Leitern |
11000- | sonstige Gegenstände; zu ausführliche Erläuterungen würden hier zu viele Hinweise auf die Lösung geben |
21000- | verschiedene Kontrollen und Zähler für |
Dunkelheit, Tarnkappe, Drache... | |
22000-22010 | Ausgabe der im Raum befindlichen Gegenstände |
30000- | Kommandoeingabe, Erkennung und Reaktion |
40000- | Spiel gewonnen, Schloß in Rauch auflösen... |
50000-52000 | angefangenes Spiel aufnehmen |
55000-57000 | angefangenes Spiel laden |
58000-59000 | Fehlerkontrolle für Diskette |
60000- | Ende Kommentare und Reaktionen |
60020-60030 | Auflisten der getragenen Gegenstände |
60200-60222 | Plan des Schlosses |
60310 | Spielende bei verlorenem Spiel |
Teilweise ist das Programm ein wenig umständlich und könnte vielleicht einfacher programmiert sein. Da aber das Programm schrittweise erstellt wurde, war dies größtenteils nicht mehr möglich, oder eine Änderung wäre zu aufwendig gewesen.
Bit | PR(P1) 1.Block | PL(P) 2. Block |
---|---|---|
1 | Nord | Fackel |
2 | Ost | Speer |
4 | Süd | Handschuh |
8 | West | Krone |
16 | Hoch | Schlüssel |
32 | Runter | Knopf |
64 | Fallgrube | Buch |
128 | 1. Wache | Truhe |
256 | 2. Wache | Messer |
512 | Drache | Zaubertrank |
1024 | Zauberer | Schild |
2048 | — | Kobold |
4096 | — | Tarnkappe |
8192 | — | Plan |
16384 | — | Gift |
Variable:
VC | 53281, Videochip Start |
XY | Zahl der Gegenstände, die man tragen kann (2 oder 4) |
X,Y | Position im Wald |
PX, PY, PZ | Position im Schloß |
HA | Speicherung aller Gegenstände, die man bei sich hat |
HB | Zahl dieser Gegenstände |
RU | erstes Spiel (= 0) oder weiteres Spiel (= 1), um unnötiges, mehrmaliges Durchlaufen einiger Programmteile zu umgehen. |
W,WZ | Zähler zur Kontrolle, ob und wie lange man sich mit einer Wache in einem Raum befindet |
DR, DZ | wie oben, für den Drachen |
BU | Zähler, wie lange man das Buch trägt |
BE | Kontrolle zur Benutzung der Tarnkappe |
HE | Zähler zur Kontrolle der Helligkeit |
BU$ | »0« wenn Buch offen ist |
TU$ | »0« wenn Tür offen ist |
DL$ | Tabelle aller Gegenstände |
PR(X,Y,Z) | Plan der möglichen Richtungen und unbeweglichen Gegenstände in den Räumen |
P1 | wie oben, für den Raum, in dem man sich gerade befindet |
PL(X,Y,Z) | Plan der beweglichen Gegenstände |
P | wie oben, für augenblicklichen Raum |
K0$ | vom Spieler eingegebenes Kommando |
A$ | Kommentar |
Zeilen:
2,3 | Datas für Namen der Gegenstände zum Erkennen und Ausgeben |
10-70 | Datas für Schloßplan 1. Block: Richtungen und unbewegliche Dinge (PR beziehungsweise P1) 2. Block: bewegliche Gegenstände (PL beziehungsweise P) Die Speicherung erfolgt, wie bei HA, bitweise, das heißtzum Beispiel 1. BitderZahlgesetzt = Fackel befindet sich im betreffenden Raum. |
0 print"{clr}{down}{down}{rvon} bitte warten - ich lese daten {rvof}{blk}":poke53280,12:poke53281,9 1 restore:he=0:vc=53248:pz=1:px=3:py=2:ri=0:wz=0:dz=0:dr=0:w=0:x=0:y=0:ha=0:hb=0 2 datafackel,speer,handschuh,krone,schluessel,knopf,buch,truhe,messer 3 datazaubertrank,schild,kobold,tarnkappe,zettel,gift 4 pokevc+21,0:ifru=0thendimpl(2,5,4),pr(2,5,4),di$(14) 5 fora=0to14:readdi$(a):next 10 data6,14,15,24 11 data64,5,3,140 12 data39,11,140,5 13 data1,18,271,41 20 data64,10,12,36 21 data1026,522,269,1 22 data6,142,11,12 23 data17,33,4,1 30 fora=1to2:forb=1to4:forc=1to4:readpr(a,b,c):next:next:next 50 data16384,512,0,1 51 data0,256,0,64 52 data0,0,128,2048 53 data2,4096,1024,0 60 data0,8192,0,0 61 data0,0,0,16 62 data0,0,2,0 63 data0,2048,4,32 70 fora=1to2:forb=1to4:forc=1to4:readpl(a,b,c):next:next:next 101 data,,,,,4,,,18,,,65,,,40,,2,36,,,82,,,168,,,152,,,32,,,48,,,48,,,48,,,48 102 data,,48,,,48,,,48,,,48,,,48,,,48,,,48 104 data16,,,16,,,18,,,255,76,64,19,95,64,18,63,128,16,21,,16,31,,16,17,,17,255 105 data192,63,255,254,63,255,254,19,255,254,19,255,246,19,255,246,19,255,246 106 data19,255,246,19,255,240,19,255,240,16,51,0,19,243,240 108 data8,,,6,,,31,,,54,,,104,,,96,,,192,,,192,,,192,,,192,42,0 109 data224,127,80,224,255,248,224,255,253,103,255,255,127,255,255,127,31,227 110 data126,239,221,63,247,253,31,247,221,15,97,184,7,126,191 112 data,126,,,62,,,126,,,63,,,127,,,63,,,127,,,63,,,126,,,62,0 113 data1,126,,11,252,,95,252,,255,248,0,255,248,0,255,240,0,255,224,0 114 data255,192,0,255,128,0,126,0,0,56,0,0 116 data0,0,0,3,128,0,15,224,0,30,120,0,62,254,0,127,255,135,255,255,253 117 data127,255,255,255,127,255,127,128,0,255,213,94,127,255,252,255,255,240 118 data127,248,0,255,192,0,127,0,0,255,0,0,126,0,0,254,0,0,126,0,0,254,,, 120 data,,255,,,126,,,66,,,66,,15,195,240,8,,16,8,60,16,8,126,16,8,153,16 121 data9,153,144,9,255,144,9,231,144,8,255,16,10,66,80,9,255,144,8,126,16 122 data8,36,16,8,195,16,11,,208,15,255,240,,, 125 data0,0,0,0,0,0,0,48,0,1,182,0,1,182,0,1,182,0,1,182,0,13,182,0,13,182,24 126 data13,182,56,13,182,56,13,182,112,13,182,240,15,255,192,15,255,192 127 data15,255,128,7,255,128,7,255,0,3,255,0,3,255,0,3,255,0 130 data1,255,128,1,255,128,1,255,128,1,60,128,1,153,128,1,255,128,1,255,128 131 data12,189,48,6,189,96,2,219,64,2,102,64,3,126,192,1,60,128,1,189,128 132 data1,153,128,3,195,192,3,221,192,3,255,192,3,255,192,3,189,192,7,189,192 135 data7,189,224,7,189,224,7,60,224,7,126,224,7,126,224,7,126,224,4,255,32 136 data15,255,240,15,255,240,15,255,240,15,255,240,15,255,240,15,255,240 137 data31,255,248,31,255,248,31,255,248,31,255,248,62,221,124,48,221,12 138 data119,221,238,,, 140 data32,24,4,32,24,2,48,60,12,48,60,12,48,60,12,48,60,12,56,126,28,56,126,28 141 data56,126,28,56,126,28,56,126,28,59,255,188,59,255,188,59,255,188 142 data59,255,188,63,255,252,63,255,252,63,255,252,63,255,252,63,255,252 143 data,, 150 data,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12,,,13,248,,13,252,,63,254,1 151 data111,254,1,255,255,2,127,255,252,,, 155 data1,252,0,3,30,0,3,231,0,14,123,128,15,249,128,3,96,0,0,204,0 156 data3,158,0,3,62,0,0,110,0,0,238,0,0,239,0,0,239,0,0,239,0,0,239,0 157 data0,31,0,0,255,0,0,255,0,0,56,0,3,184,0,3,248,0 160 data126,0,0,36,0,0,36,0,0,36,0,0,131,0,3,129,192,2,0,64,3,0,192 161 data3,255,192,3,253,192,3,127,192,3,239,192,3,255,192,3,251,192,3,255,192 162 data3,223,192,3,255,192,3,253,192,3,127,192,3,255,192,3,255,192 400 ifru=1then500 410 dimsp(13,63):fora=1to13:forb=1to63:readsp(a,b):next:next 500 print"{clr}{down}{down}{down}"," zauberschloss":print"{down} ein spiel von dennis merbach " 510 print"{down}{down}{down}{down}moechten sie ein {rvon}n{rvof}eues spiel beginnen" 512 print,,"{left}{left}{left}{down}{rvon}a{rvof}ltes spiel fortsetzen" 520 geta$:ifa$="a"then55000 522 ifa$="n"then600 524 goto520 599 stop 600 printchr$(14)"{clr}{down}{down}{down} Ein Adventure-Spiel von Dennis Merbach" 610 print"{down}{down} Ziel des Spiels ist es, eine Aufgabe," 612 print" die im Verlauf des Spiels gestellt" 614 print" wird, zu loesen. Sie koennen dem" 616 print" Computer dazu Anweisungen eingeben," 618 print" die er dann ausfuehrt. Diese Befehle" 620 print" bestehen in der Regel aus zwei Worten," 622 print"{up} die durch eine Leerstelle getrennt " 624 print" sein muessen. Folgende Kommandos," 625 print" gefolgt von einem Gegenstand, werden" 626 print" vom Computer verstanden:" 628 print"{down} NIMM{$a0}VERLIERE{$a0}LIES{$a0}OEFFNE{$a0}VERJAGE{$a0}DREH{$a0}{$a0}BENUTZE{$a0}TRINK DRUECKE" 629 rem zeile628: nimm verliere lies oeffne verjage dreh benutze trink druecke 630 print,"{down}{down}{down} weiter?" 631 geta$:ifa$=""then631 632 print"{clr} {down}{down}{down}{down}Bei Richtungsangaben werden nur die" 634 print" Anfangsbuchstaben eingegeben:" 636 print"{down} N=Nord S=Sued W=West O=Ost":print" H=Hoch R=Runter" 637 print,,," N":print,,,"W{SHIFT-+}O":print,,," S" 638 rem 637 print,,," n":print,,,"w{SHIFT-+}o":print,,," s" 640 print"{down}{down}{down} Nach dem Befehl LIST werden alle":rem list 641 print" Dinge aufgelistet,die man bei sich" 642 print" hat. Vorsicht: Sie koennen immer nur" 644 print" 4 Gegenstaende auf einmal tragen." 646 print" Mit SAVE wird das Spiel fuer spaeteres weiterspielen gespeichert" 647 rem save 650 print"{down}{down}{down} Fertig?" 652 geta$:ifa$=""then652 653 printchr$(142):poke649,9:ti$="000000" 1000 poke53281,9:print"{clr}":fora=0to23step7:print"{home}":gosub1500:next 1010 ifx=0andy=0andri=0thenprint,,,"{up}{left}{left}{left}{left}UI{down}{left}{left}JK{up}":print" ring" 1100 print"{down}richtungen: n-w-s-o-h";:input" kommando";ko$ 1110 ifko$="n"thenx=x+1 1112 ifko$="s"thenx=x-1 1114 ifko$="w"theny=y+1 1118 ifko$="o"theny=y-1 1120 ifko$="nimm ring"thenri=1 1122 ifko$="dreh ring"andri=1then2000 1124 ifko$="h"then1400 1126 ifko$="save"orko$="sA"thenprint"noch nicht moeglich":fora=1to1000:next 1127 ifko$="stop"orko$="sT"thenstop 1129 ifko$="list"orko$="lI"then3000 1130 goto1000 1400 poke53281,0:print"{clr}{down}{down}{gry2}{down} sie sind beim klettern " 1401 print" vom baum gefallen":goto60310 1499 stop 1500 printtab(a)"{grn}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}NM" 1501 printtab(a)"{rght}{rght}{rght}{rght}{rght}{rght}{rght}NNMM" 1502 printtab(a)"{rght}{rght}{rght}{rght}{rght}{rght}{rght}NNMM" 1503 printtab(a)"{rght}{rght}{rght}{rght}{rght}{rght}NN MM" 1504 printtab(a)"{rght}{rght}{rght}{rght}{rght}{rght}N NM M" 1505 printtab(a)"{rght}{rght}{rght}{rght}{rght}N NNMM M" 1506 printtab(a)"{rght}{rght}{rght}{rght}{rght}NNN MMM" 1507 printtab(a)"{rght}{rght}{rght}{rght}NNN NM MMM" 1508 printtab(a)"{rght}{rght}{rght}{rght}NNNN MMMM" 1509 printtab(a)"{rght}{rght}{rght}N NN NM MM M" 1510 printtab(a)"{rght}{rght}{rght}{rght}NN N M MM" 1511 printtab(a)"{rght}{rght}{rght}NNNN NM MMMM" 1512 printtab(a)"{rght}{rght}N NNNNNMMMMM M" 1513 printtab(a)"{rght}{rght}NNN NN MM MMM" 1514 printtab(a)"{rght}NN NNN{$a0}NM{$a0}MMM{$a0}MM" 1515 printtab(a)"{rght}NNN NNN{$a0}{$a0}MMM{$a0}MMM" 1516 printtab(a)"NN NNN NNMM{$a0}MMM{$a0}MM" 1517 printtab(a)"NNNN{$a0}NNNNMMMM{$a0}MMMM" 1518 printtab(a)"{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{blk}{rvon} " 1519 printtab(a)"{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rvon}{SHIFT-POUND} {CBM-*}" 1520 return 2000 print"{clr}{down}{down}{down}{down}{down} der ring hat sich aufgeloest" 2010 print"{down}{down} alles um sie beginnt sich zu drehen" 2020 fora=1to2000:next:print"{clr}" 2030 fora=1to100:forb=1to101-a:next:poke53281,int(rnd(1)*256):next:xy=4 2040 goto10000 3000 ifri=0thenprint"{clr}{down}{down}{down}{down} sie haben nichts":fora=1to2000:next:goto1000 3010 print"{clr}{down}{down}{down}{down} sie haben einen ring":fora=1to2000:next:goto1000 10000 poke53281,9:pokevc+17,peek(vc+17)and239 10005 print"{clr}":pokevc+21,0:fora=2to5:printtab(a)"{blk}M"spc(35-2*a)"N":next 10010 print" O{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}P" 10020 fora=1to8:print" {CBM-H}"spc(23)"{CBM-N}":next 10030 print" L{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{SHIFT-@}":ri$="" 10040 fora=5to2step-1:printtab(a)"N"spc(35-2*a)"M":next 10050 p1=pr(pz,px,py):if(p1and1)<>1then10060 10051 print"{home}{down}{down}{down}{down}{down}{down}"," {CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}":print," {CBM-N}M{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}N{CBM-H}" 10053 fora=1to6:print,"{rght}{rght}{rght}{rght}{CBM-N}{CBM-N} {CBM-H}{CBM-H}":next:print,"{rght}{rght}{rght}{rght}{SHIFT-@}N ML" 10054 ri$="-n":poke214,10:print:print,"{rght}{rght}{rght}{rght}{rght}{rght}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}" 10060 if(p1and8)<>8then10070 10061 print"{home}{down}{down}{down}{down} {CBM-N}M ":print" {CBM-N} M":ri$=ri$+"-w" 10062 print" {CBM-N}{CBM-Y}P":fora=1to9:print" {CBM-N} {CBM-N}":next 10063 print" {CBM-N}{CBM-P}{SHIFT-@}":print" {CBM-N} ":print" {CBM-N} ":print" N":ifkk=1thenkk=0:goto30000 10070 if(p1and2)<>2then10080 10071 print"{home}{down}{down}{down}{down}",,,"{rght}{rght}{rght}{rght}N{CBM-H}":print,,,"{rght}{rght}{rght}N {CBM-H}":ri$=ri$+"-o" 10072 print,,,"{rght}{rght}{rght}O{CBM-Y}{CBM-H}":fora=1to9:print,,,"{rght}{rght}{rght}{CBM-H} {CBM-H}":next:print,,," ML{CBM-P}{CBM-H}" 10073 print,,," {CBM-H}":print,,," {CBM-H}{down}{left}M" 10080 if(p1and4)=4thenri$=ri$+"-s" 10081 if(p1and16)<>16then10090 10082 print"{home}":print,,"{left}{left}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}":print,,"{left}{left}MM{SHIFT--}{CBM-P}{CBM-P}{SHIFT--}NN":ri$=ri$+"-h" 10083 print,,"{left}M{CBM-Q}CC{CBM-W}N":fora=1to7:print,,"{SHIFT--}{rght}{rght}{SHIFT--}":print,,"{CBM-Q}CC{CBM-W}":next 10090 if(p1and32)<>32then10100 10091 poke214,15:print:print,," L{CBM-P}{SHIFT-@}":print,," L{CBM-P}{SHIFT-@}":print,,"N{CBM-H} {CBM-N}M":ri$=ri$+"-r" 10092 print,,"{left}NNO{CBM-Y}PMM":print,,"{left}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}" 10100 p=pl(pz,px,py):if(pand2048)=0then10120 10101 if(haand2)=0then10120 10103 ha=ha-2:ko=2:hb=hb-1 10105 poke214,18:print:print" der kobold hat ihren speer gestohlen" 10120 if(pand2)=2thenpoke214,14:print:print,"_CCCCCCC" 10130 if(pand16)=16thenpoke214,16:print:print,,"{left}{left}{left}{left}{left}oC{CBM-R}" 10140 if(pand64)<>64then10150 10141 poke214,15:print:print," {CBM-P}{CBM-P}{CBM-P}{CBM-P}":print,"N N":print,"{left}N NN" 10142 print,"{left}{left}N{CBM-P}{CBM-P}{CBM-P}NN":print,"{left}{left}{left}{CBM-L} ==(N":print,"{left}{left}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}" 10150 if(pand256)=256thenpoke214,17:print:print,," {CBM-D}{CBM-@}{CBM-@}{CBM-@}":print,,"{rvon} {rvof}{CBM-@}{CBM-@}{CBM-@}>":print,," {CBM-C}" 10160 if(pand1)<>1then10170 10161 fora=1to63:poke831+a,sp(1,a):next:pokevc,255:pokevc+1,100 10162 poke2040,13:pokevc+37,2:pokevc+38,0:pokevc+39,7:pokevc+21,peek(vc+21)or1 10163 pokevc+28,peek(vc+28)or1 10170 if(p1and64)<>64then10180 10171 print"{clr}{down}{down}{rght}{rght}{rght}{gry2}sie sind in eine fallgrube gelaufen" 10172 poke53281,0:goto60310 10180 if(p1and128)<>128and(p1and256)<>256then10200 10181 fora=1to63:poke895+a,sp(2,a):next:poke2041,14:pokevc+40,0:pokevc+2,100 10182 pokevc+3,138:pokevc+21,peek(vc+21)or2:pokevc+23,2:pokevc+29,2:w=1 10183 pokevc+28,peek(vc+28)and243:if(p1and256)<>256then10200 10184 pokevc+41,0:pokevc+23,6:pokevc+29,6:pokevc+4,200:pokevc+5,138:poke2042,14 10185 pokevc+21,peek(vc+21)or4 10200 if(pand1024)<>1024then10210 10201 print"{home}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{rght}{rght}{rght}{rght}{rght}O{CBM-Y}P":print"{rght}{rght}{rght}{rght}{rght}{CBM-H}{$a0}{CBM-N}":print"{rght}{rght}{rght}{rght}{rght}{CBM-H}#{CBM-N}" 10202 print"{rght}{rght}{rght}{rght}{rght}{CBM-H} {CBM-N}":print"{rght}{rght}{rght}{rght}{rght}M N":print"{rght}{rght}{rght}{rght}{rght} {CBM-Y}" 10210 if(pand8192)<>0thenpoke214,18:print:print,"{rvon}{wht} {blk}" 10220 if(pand128)<>128then10230 10221 poke214,11:print:print,,"{rght}{rght}{rght}{rght}{rght}{CBM-@}{CBM-@}{CBM-@}{CBM-@}":print,,"{rght}{rght}{rght}{rght}N N{CBM-G}" 10222 print,,"{rght}{rght}{rght}{rght}O{CBM-Y}{CBM-Y}P L" 10223 print,,"{rght}{rght}{rght}{rght}{CBM-G} {CBM-N}N":print,,"{rght}{rght}{rght}{rght}{CBM-T}{CBM-T}{CBM-T}{CBM-T}" 10230 if(p1and512)<>512then10300 10231 if(pand16384)=16384then60400 10232 fora=3to5:forb=1to63:poke831+64*(a-3)+b,sp(a,b):next:next:pokevc+28,0 10235 poke2040,13:poke2041,14:poke2042,15:pokevc+39,5:pokevc+40,5:pokevc+41,5 10237 pokevc+21,7 10239 pokevc+23,7:pokevc+29,7:pokevc,100:pokevc+1,155:pokevc+2,148:pokevc+3,155 10241 pokevc+4,164:pokevc+5,113:f1=2:f2=7 10250 pokevc+17,peek(vc+17)or16:fora=1to25:poke53281,f1:poke53281,f2:forb=1to60 10251 next:mf=f1:f1=f2:f2=mf:next:poke53281,9 10260 if(haand1024)=1024then10270 10265 goto60330 10270 dr=1:ifdr=2and(pand16384)<>16384then60300 10300 if(haand64)=64thenbu=bu+1:ifbu=5then60000 10350 if(pand16384)=0then10400 10355 fora=0to63:pokea+960,sp(6,a):next:poke2044,15:pokevc+21,peek(vc+21)or16 10360 pokevc+43,1:pokevc+8,100:pokevc+9,170 10400 if(haand16384)=16384and(haand4)<>4then60040 10410 if(p1and256)=256and(pand128)=128then60050 10420 if(haand1)=1and(haand64)=64then60070 10430 if(pand4)=0then10450 10435 fora=0to63:pokea+896,sp(7,a):next:pokevc+21,peek(vc+21)or2:poke2041,14 10437 pokevc+40,13:pokevc+2,200:pokevc+3,200:pokevc+29,peek(vc+29)and253 10439 pokevc+23,peek(vc+23)and253 10450 if(p1and1024)=0then10500 10455 n=831:fora=8to10:forb=0to63:n=n+1:poken,sp(a,b):next:next 10457 pokevc+21,7:pokevc+39,0:pokevc+40,0:pokevc+41,7 10459 pokevc+4,162:pokevc+5,83:pokevc+2,150:pokevc+3,143:pokevc,150:pokevc+1,103 10461 pokevc+23,3:pokevc+29,3:poke2040,13:poke2041,14:poke2042,15 10500 if(pand8)=0then10550 10502 fora=0to63:pokea+960,sp(10,a):next:pokevc+21,peek(vc+21)or4:poke2042,15 10504 pokevc+4,150:pokevc+5,170 10550 if(pand2048)=0then10600 10555 fora=0to63:poke896+a,sp(12,a):next:poke2041,14:pokevc+40,0 10557 pokevc+21,peek(vc+21)+2:pokevc+2,250:pokevc+3,180 10559 pokevc+23,peek(vc+23)and253:pokevc+29,peek(vc+29)and253 10600 if(pand4096)=0then10650 10610 poke214,18:print:print,"UCI":print,"{CBM-C}{CBM-U}{CBM-V}" 10650 ifpand32thenpoke214,10:print:print,"W" 10700 if(pand512)=0then10800 10710 fora=1to63:poke702+a,sp(13,a):next:poke2047,11 10715 pokevc+21,peek(vc+21)or128:pokevc+46,4 10717 pokevc+14,60:pokevc+15,170 10800 : 20000 : 21000 he=he+1:if(haand1)=1or(pand1)=1thenpoke53281,9:print"{blk}":goto21100 21005 ifhe>9thenpoke53281,0:print"{gry2}{up} es ist dunkel":goto21100 21010 ifhe>7thenprint,,"{up} es wird dunkel" 21100 ifw=1thenwz=wz+1:ifwz=2then60100 21110 ifdr=1thendz=dz+1:ifdz=2then60300 21120 ifbe=0then21130 21125 be=0:w=0:wz=0:ha=ha-4096:hb=hb-1:print"{up}die tarnkappe hat sich aufgeloest" 21130 ifhaand32thenkn=1 22000 poke214,20:print:fora=0to14:if(pand(2^a))<>0thenprintdi$(a)" "; 22010 next 30000 pokevc+17,peek(vc+17)or16:poke214,21:print:ko$="":a$=" {rvon}nicht moeglich!{up}" 30001 print" richtungen: ";mid$(ri$,2):input" komando";ko$ 30002 ifko$="save"orko$="sA"then50000 30003 ifp1and1024then60500 30004 ifleft$(ko$,3)="sim"orleft$(ko$,3)="abr"then60590 30006 if(ko$="nimm kobold"orko$="verjage kobold")andpand2048then60600 30008 if(haand4096)=4096andko$="benutze tarnkappe"thenbe=1:a$=" in ordnung{up}" 30009 ifko$="druecke knopf"andkn=0then60610 30010 ifko$="n"and(pr(pz,px,py)and1)=1thenpx=px-1:goto63970 30020 ifko$="o"and(pr(pz,px,py)and2)=2thenpy=py+1:goto63970 30030 ifko$="s"and(pr(pz,px,py)and4)=4thenpx=px+1:goto63970 30040 ifko$="w"and(pr(pz,px,py)and8)=8thenpy=py-1:goto63970 30050 ifko$="h"and(pr(pz,px,py)and16)=16thenpz=pz+1:goto63970 30060 ifko$="r"and(pr(pz,px,py)and32)=32thenpz=pz-1:goto63970 30065 ifko$="list"orko$="lI"then60010 30070 ifleft$(ko$,4)<>"nimm"then30200 30080 ifhb=xythenprint"{up}{up}{up} sie koennen nicht soviel tragen":a$="":goto31000 30100 fora=0to14:if(mid$(ko$,6)<>di$(a))or(pand2^a)<>2^athennext:goto30150 30110 hb=hb+1:ha=haor2^a:pl(pz,px,py)=p-2^a:ne=1:next 30150 ifne=1thenne=0:goto10000 30160 goto31000 30200 ifleft$(ko$,8)<>"verliere"then30300 30210 fora=0to14:if(mid$(ko$,10)<>di$(a))or(haand2^a)<>2^athennext:goto30230 30220 hb=hb-1:ha=ha-2^a:pl(pz,px,py)=por2^a:ne=1:next 30230 ifne=1thenne=0:goto10000 30240 goto31000 30300 ifleft$(ko$,6)<>"oeffne"then30400 30310 ifmid$(ko$,8,4)<>"buch"or(haand64)<>64then30330 30320 bu$="o":print,"{home} das buch ist offen":a$="":goto31000 30330 ifright$(ko$,4)<>"tuer"then30340 30335 if(haand16)<>16thenprint"{up}{up}{up} die tuer ist verschlossen":a$="":goto31000 30336 tu$="o":a$="{up}{up}{up}{up} die tuer ist offen ":goto31000 30340 ifright$(ko$,5)<>"truhe"or(haand128)<>128then31000 30345 print"{home} die truhe ist offen, sie enthaelt gold":goto30000 30400 ifko$<>"lies buch"then30450 30410 ifbu$=""thenprint"{clr}{down}{down}{down}{down}{down}{down}{down}{rght}{rght}{rght}{rght}{rght}das zauberschloss":goto30000 30420 goto63900 30450 ifko$="lies zettel"and(haand8192)=8192then60200 30500 ifleft$(ko$,13)<>"verjage wache"andko$<>"verjage waechter"then30550 30510 input"womit";di$:ifdi$<>di$(1)or(haand2)<>2then60100 30520 ifp1and128thenpr(pz,px,py)=p1-128:wz=0:w=0:goto10000 30550 ifleft$(ko$,5)<>"trink"then30700 30555 ifright$(ko$,4)="gift"and(haand16384)=16384then60040 30556 if(haand512)=0orright$(ko$,11)<>"zaubertrank"then30700 30557 hb=hb-1:ha=ha-512 30558 ifxy=2thenxy=4:print"{home}{down}{down} sie sind wieder gross":a$="":goto31000 30560 print"{home} sie sind ein zwerg!":hb=0:pl(pz,px,py)=porha:ha=0:xy=2 30565 fora=1to2000:next:goto10000 30700 : 31000 ifko$="stop"orko$="sT"thenpoke650,0:stop 31010 printa$:fora=1to1000:next 31020 poke214,21:print;:print:fora=1to3 31025 print" ":next:goto30000 40000 fora=1to1000:next:t$=ti$:poke53281,11:print"{clr}{down}{down}{down}{down}{down}{down}" 40001 print,"{blk} {rvon}{SHIFT-POUND}{CBM-*}",,"{left}{rvon}{SHIFT-POUND}{CBM-*}":print,"{rvon}{SHIFT-POUND} {CBM-*}"spc(14)"{SHIFT-POUND} {CBM-*}" 40005 print,"{rvon}{CBM-K} {CBM-L}"spc(14)"{rvon}{CBM-K} {CBM-L}" 40006 print,"{rvon}{CBM-K}{CBM-L}{CBM-J}{CBM-L}"spc(14)"{rvon}{CBM-K}{CBM-L}{CBM-J}{CBM-L}" 40007 print,"{rvon}{CBM-K}{CBM-L}{CBM-J}{CBM-L}"spc(14)"{rvon}{CBM-K}{CBM-L}{CBM-J}{CBM-L}" 40010 print,"{rvon}{CBM-K} {CBM-L}{rvof}{CBM-D}{CBM-F}{CBM-D}{CBM-F}{CBM-D}{CBM-F}{CBM-D}{CBM-F}{CBM-D}{CBM-F}{CBM-D}{CBM-F}{CBM-D}{CBM-F}{rvon}{CBM-K} {CBM-L}" 40015 print,"{rvon}{CBM-K} {CBM-C}{CBM-V}{CBM-C}{CBM-V}{CBM-C}{CBM-V}{CBM-C}{CBM-V}{CBM-C}{CBM-V}{CBM-C}{CBM-V}{CBM-C}{CBM-V}{CBM-C}{CBM-V} {CBM-L}" 40020 print,"{rvon}{CBM-K} {CBM-L}" 40022 print,"{rvon}{CBM-K} {CBM-L}" 40024 print,"{rvon}{CBM-K} {CBM-I} {CBM-L}" 40026 print,"{rvon}{CBM-K} {CBM-L}{rght}{CBM-K} {CBM-L}" 40028 print,"{rvon}{CBM-K} {CBM-L}{rght}{CBM-K} {CBM-L}" 40030 print,"{rvon}{CBM-K} {CBM-L}{rght}{CBM-K} {CBM-L}" 40050 fora=1to1000:next:fora=1to20:poke53281,7:poke53281,0:poke53281,2:next 40055 poke53281,11 40100 fora=1to1000:pokeint(rnd(1)*560+1260),102:next 40110 fora=1to1200:pokeint(rnd(1)*560+1260),32:next:poke53281,11:fora=1to500 40120 next:poke53281,5:print"{clr}{down}{down}{down}das schloss hat sich in rauch aufgeloest" 40125 print"{down}{down} sie sind der neue koenig" 40130 print,"{down}{down}{down}{down}{down}zeit: "left$(t$,2)":"mid$(t$,3,2)":"mid$(t$,5):end 45000 rem *** sub schriftloeschen *** 50000 pokevc+21,0:input"{clr}{down}{down}{down}{down} filename";n$ 50009 print"{down}{down}{down} {rvon}k{rvof}assette oder {rvon}d{rvof}iskette?" 50010 getk$:ifk$="d"then51000 50020 ifk$="k"then52000 50025 goto50010 51000 open2,8,2,n$+",s,w":open15,8,15:input#15,a,a$:ifa$<>"ok"then59000 51001 rem ***************************** zeile 51000 nur fuer diskette 51100 forz=1to2:forx=1to4:fory=1to4:print#2,pl(z,x,y) 51101 print#2,pr(z,x,y):next:next:next 51110 print#2,ha:print#2,hb:print#2,ti$:print#2,pz:print#2,px:print#2,py 51115 print#2,ko:print#2,w:print#2,wz:print#2,dr:print#2,dz:print#2,bu 51120 print#2,be:print#2,he:print#2,bu$:print#2,tu$:print#2,kn:print#2,xy 51200 close2:close15:goto10000 52000 open2,1,2,a$:goto51100 55000 input"{down}{down} filename";n$ 55005 print"{down}{down}{down} {rvon}k{rvof}assette oder {rvon}d{rvof}iskette?" 55010 geta$:ifa$="d"then56000 55012 ifa$="k"then57000 55014 goto55010 56000 open2,8,2,n$+",s,r":goto58000 56001 rem ***************************** zeile 56000 nur fuer diskette 56100 forz=1to2:forx=1to4:fory=1to4:input#2,pl(z,x,y) 56101 input#2,pr(z,x,y):next:next:next 56110 input#2,ha,hb,ti$,pz,px,py 56111 input#2,ko,w,wz,dr,dz,bu 56112 input#2,be,he,bu,tu$,kn,xy 56120 close2:close15:goto10000 57000 open2,1,0,n$:goto56100 57999 rem ***************************** 58000-59999 nur fuer diskette 58000 open15,8,15:input#15,a,a$:ifa$="ok"then56100 58010 ifa$="file not found"then58100 58020 ifa$="drive not ready"then58111 58030 ifa$="file type mismatch"then58120 58050 printa$:end 58100 print"{down}{down} ein file dieses namens existiert nicht" 58110 input"{down}{down} filename";n$:goto58200 58111 print"{down}{down} diskette einlegen!":print,"{down}{down} fertig?" 58112 getx$:ifx$=""then58112 58113 goto58110 58120 print"{down}{down} kein daten-file!":goto58110 58158 printa$:stop 58200 close2:close15:goto56000 59000 close2:close15:ifa$="write protect on"then59100 59010 ifa$="drive not ready"then59200 59030 ifa$="file exists"then59300 59040 ifa$="file type mismatch"then59400 59050 printa$:stop 59060 goto50000 59100 print"{down}{down} diese diskette ist schreib-geschuetzt" 59110 print" bitte eine andere diskette einlegen":print,"{down}fertig?" 59120 getx$:ifx$=""then59120 59130 goto51000 59200 print"{down}{down} diskette einlegen!":print,"{down} fertig?":goto59120 59300 print"{down}{down}ein file dieses namens existiert bereits" 59310 print" soll es ueberschrieben werden (j/n)?" 59320 getx$:ifx$="j"thenn$="@0:"+n$:goto51000 59330 ifx$="n"then50000 59340 goto59320 59400 print"{down}{down} dieser name ist von einem anderen"," file-typ belegt" 59410 fora=1to2000:next:goto50000 59999 rem ***************************** 60000 poke53281,0:print"{gry2}{clr}{down}{down}{down}{rght}das magische buch ist in flammen","aufgegangen" 60001 print"{down}{rght}leider haben sie dabei ebenfalls feuer","gefangen":goto60310 60010 print"{clr}","{down}{down}sie haben:{down}{down}{down}":pokevc+21,0 60020 fora=0to14:ifhaand2^athenprint,di$(a)"{down}" 60021 next:print,"{down}{down} fertig?" 60025 ifpeek(203)=64then60025 60030 geta$:goto30000 60040 poke53281,0:print"{clr}{gry2}{down}{down} sie haben sich vergiftet" 60041 goto60310 60050 print"{home} die waechter haben sich um das gold" 60055 print" gestritten und sich dabei erschlagen":pokevc+21,0 60060 w=0:wz=0:pr(pz,px,py)=p1-256:goto10050 60070 print" die fackel hat das buch verbrannt":ha=ha-64:hb=hb-1:goto10430 60100 ifdi$="messer"and(haand256)=256then60120 60101 ifdi$="gift"and(haand16384)=16384then60125 60105 print"{clr}{down}{down}{down}{down}{gry2} die wache hat sie gefangen" 60106 ifp1and256thenprint"{clr}{down}{down}{down}{down}{gry2} die zweite wache hat sie gefangen" 60108 ifbe=1then10000 60110 poke53281,0:goto60310 60120 print"{clr}{gry2}{down}{down}{down}{down} die hellebarde der wache ist laenger"," als ihr messer" 60122 goto60310 60125 print"{clr}{gry2}{down}{down}{down}{down} die wache wollte das gift nicht essen" 60126 print" und hat sie gefangen":goto60310 60200 poke53281,15:ifhe>9and(pand1)=0and(haand1)=0thenpoke53281,0 60201 pokevc+21,0:print"{clr}{down}{down}{down}{down}{blk} O{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}{CBM-Y}P" 60202 print" {CBM-H}"spc(24)"{CBM-N}" 60204 print" {CBM-H} {CBM-A}{SHIFT-*}{CBM-R}C{CBM-R} {CBM-R}{SHIFT-*}{CBM-S} {CBM-A}{SHIFT-*}{CBM-R}{SHIFT-*}{CBM-R}{SHIFT-*}{CBM-R}{SHIFT-*}{CBM-S} {CBM-N}" 60206 print" {CBM-H} {SHIFT--} {SHIFT--} {SHIFT--} {SHIFT--} {SHIFT--} {CBM-N}" 60208 print" {CBM-H} {CBM-Q} {SHIFT-+} {SHIFT-+} {SHIFT-+}C{CBM-W} {CBM-Q}{SHIFT-*}{SHIFT-+}{SHIFT-*}{SHIFT-+} {SHIFT-+} {CBM-W} {CBM-N}" 60210 print" {CBM-H} {SHIFT--} {SHIFT--} {SHIFT--} {SHIFT--} {SHIFT--} {SHIFT--} {SHIFT--} {CBM-N}" 60212 print" {CBM-H} {CBM-Q}{SHIFT-*}{SHIFT-+} {SHIFT-+}{SHIFT-*}{SHIFT-+} {CBM-W} {CBM-Q}{SHIFT-*}{SHIFT-+}{SHIFT-*}{SHIFT-+} {SHIFT-+}C{CBM-W} {CBM-N}" 60214 print" {CBM-H} {SHIFT--} {SHIFT--} {SHIFT--} {SHIFT--} {SHIFT--} {CBM-N}" 60215 print" {CBM-H} {CBM-Q} {SHIFT-+}C{SHIFT-+} {SHIFT-+} {CBM-W} {CBM-Q} {SHIFT-+} {SHIFT-+}C{SHIFT-+} {CBM-W} {CBM-N}" 60216 print" {CBM-H} {SHIFT--} {SHIFT--} {SHIFT--} {SHIFT--} {SHIFT--} {SHIFT--} N {SHIFT--} {CBM-N}" 60217 print" {CBM-H} {CBM-Z}{SHIFT-*}{CBM-E}{SHIFT-*}{CBM-E} {CBM-E}{SHIFT-*}{CBM-X} {CBM-Z}{SHIFT-*}{CBM-E}{SHIFT-*}{CBM-E} {CBM-E}{SHIFT-*}{CBM-X} {CBM-N}" 60218 print" {CBM-H}"spc(24)"{CBM-N}":print" L{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{SHIFT-@}" 60220 fora=1to3000:next:print"{clr}{down}{down}{down} der plan hat sich in luft aufgeloest" 60222 ha=ha-8192:hb=hb-1:fora=1to2000:next:goto10000 60300 poke53281,0:print"{clr}{down}{down}{down}{gry2} der drache hat sie gefressen" 60310 pokevc+21,0:pokevc+17,peek(vc+17)or16:poke650,0 60315 print,"{down}{down}zeit:"left$(ti$,2)":"mid$(ti$,3,2)":"mid$(ti$,5) 60320 print"{down}{down} noch ein versuch (j/n)?" 60325 geta$:ifa$="j"thenru=1:goto0 60326 ifa$="n"thenpoke650,0:end 60327 goto60325 60330 poke53281,0:print"{clr}{down}{down}{gry2}{down} der feuerspeiende drache hat sie getoetet" 60331 goto60310 60400 print"{home} der drache hat das gift gefressen"," und sich in luft aufgeloest" 60410 p=p-16384:p1=p1-512:pr(pz,px,py)=p1:pl(pz,px,py)=p:pokevc+21,0 60411 dr=0:goto10230 60500 ifko$="simsalakadabra-abrakabum"then60550 60510 poke53281,0:pokevc+21,0 60512 print"{clr}{down}{down}{down}{gry2} der zauberer hat sie in eine maus"," verwandelt":goto60310 60550 fora=0to127step3:poke832+a,0:poke833+a,0:poke834+a,0:pokevc+5,peek(vc+5)+2 60552 next:pokevc+21,4:fora=0to63:poke832+a,sp(11,a):next 60553 pokevc+23,0:pokevc+29,0 60554 pokevc+1,170:pokevc+21,5:p1=p1-1024:pr(pz,px,py)=p1:p=p+8:pm=170 60556 pl(pz,px,py)=p:fora=150to0step-.5:pokevc,a:pm=pm+.1:pokevc+1,pm:next 60558 fora=1to2000:next:goto10000 60590 poke53281,0:print"{clr}{down}{down}{down}{gry2} sie haben sich in eine maus verwandelt":goto60310 60600 a1$="mitnehmen":ifleft$(ko$,7)="verjage"thena1$="verjagen" 60601 print"{clr}{down}{down}{down}{gry2} der kobold wollte sich nicht ";a1$ 60602 print" lassen und hat sie in einen zwerg ver-","zaubert":hb=0 60604 fora=1to2000:next:pl(pz,px,py)=pl(pz,px,py)orha:ha=0:xy=2:goto10000 60610 pr(pz,px,py-1)=pr(pz,px,py-1)or2:p1=p1or8:pr(pz,px,py)=p1:kn=1 60612 pl(pz,px,py)=p-32:print"{up}{up}{up}{up}{up}"; 60614 fora=1to5:print" ":next 60616 poke214,10:print:print," ":goto10060 63900 poke53281,12:pokevc+21,0:print"{clr}{down}{down}{rght}"chr$(14),"Das Zauberschloss" 63901 ifhe>9and(pand1)=0and(haand1)=0thenpoke53281,0 63905 print"{blk}{down}{down}{rght}{rght}Seit langer, langer Zeit ist es Sitte," 63910 print"{up} dass der, der die Krone des Reiches " 63915 print" besitzt, das ganze Land regiert." 63920 print" Doch seit vielen hundert Jahren re-" 63921 print" giert der schreckliche Zauberer, und" 63923 print" keiner von denen, die ihm die Krone " 63926 print" wieder entreissen wollten ist je" 63930 print" wieder zurueckgekehrt.",," Das Schloss ist streng bewacht," 63931 print" und die Gemeinheit der Waechter wird" 63932 print" nur von ihrer Geldgier uebertroffen." 63933 print" ueberall lauern Fallen und vielerlei"," gefahren." 63936 print,"{down}{down}{left}{left}{left}Simsalakadabra-abrakabum" 63940 print,"{down}{down}Fertig?" 63950 getx$:ifx$=""then63950 63955 poke53281,9:printchr$(142):goto10000 63970 ifpz>0then63980 63971 poke53281,0:print"{gry2}{clr}{down}{down}{down}{rght}{rght}{rght}die wache freut sich, dass sie von" 63972 print" selbst in den kerker gegangen sind" 63973 print"{down}{down} schade, dass sie nun bis zum ende" 63974 print" ihres lebens dort bleiben muessen " 63975 print" und nicht mehr weiter spielen koennen":goto60310 63980 ifpz<3then63983 63981 poke53281,0:print"{gry2}{clr}{down}{down} sie sind auf das dach geklettert," 63982 print" abgerutscht,in den graben gefallen":print" und ertrunken":goto60310 63983 ifpx<>0then63985 63984 poke53281,0:print"{clr}{down}{gry2} diese tuer fuehrt in den wassergraben":goto60310 63985 ifpr(pz,px,py)>0then10000 63986 ifpz=1then63989 63987 poke53281,0:print"{clr}{gry2}{down}{down}{down} die tuer fuehrte ins freie. sie sind" 63988 print" aus dem zweiten stock gestuerzt":goto60310 63989 iftu$="o"then63992 63990 px=4:print"{up}{up}{up}{up}sie sind gegen die tuer gelaufen":a$="":goto31000 63992 print"{clr}","{gry2}{down}{down} sie sind im freien" 63994 ifhaand8then40000 63995 poke53281,0:print"{down} weil sie das land nicht befreit haben," 63996 print" hat die wuetende menge sie verpruegelt":goto60310
