Zauberschloß
Listings

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
Das Abenteuerspiel »Zauberschloß« nach Zeilennummern aufgeschlüsselt mit Bitmapping

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.
Variablendefinition und einige Erläuterungen
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
Listing »Zauberschloß«. Beachten Sie bitte den Checksummer.
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →