VC 20 Grundversion
Ghost Manor
6/84, S. 104-106

Ghost Manor

Sie sind in Gestalt eines kleinen Männchens tief unten im Kerker eines alten Schlosses gefangen. Ihr Ziel ist es, aus diesem Schloß zu entkommen. Dazu müssen Sie natürlich erst einige Hindernisse überwinden.

Dieses Bild gibt einen Eindruck von den in »Ghost Manor« zu überwindenden Schwierigkeiten. Der Start ist ganz unten rechts; Ziel ist es, den Schlüssel in der rechten oberen Ecke zu erreichen

An dieser Stelle ist auf die mehr oder weniger komplizierten Speicher- und Ladevorgänge des Programms hinzuweisen. Das Programm besteht aus drei Teilen (Listing 1 bis 3), welche in der Reihenfolge Grafik — Maschinensprache — Hauptprogramm eingetippt und auf Kassette gespeichert werden sollten. Um endlich spielen zu können, müssen alle drei Teilprogramme in der gleichen Reihenfolge geladen und gestartet werden. Haben Sie den Ladevorgang beendet, wird das Spiel durch die Taste »0« oder durch den Aktionsknopf des Joysticks gestartet. Das Programm kann mit Joystick oder über die Tastatur gespielt werden. Ist kein Joystick vorhanden, lenken Sie Ihr Männchen mit folgenden Tasten:
A: oben; Z: unten; B: links; M: rechts; N: Sprung.

Beim Vorhandensein eines Joysticks dient der Aktionsknopf als Sprungknopf.

Zu Beginn des Spiels befindet sich das Männchen rechts unten vor seiner Zelle. Nun kommen ihm Spinnen entgegengekrabbelt, welche es überspringen muß. In der nächsten Etage rollen ihm Fässer entgegen, und es muß mit einem Doppelsprung eine Fallgrube überspringen. Einen Doppelsprung macht man folgendermaßen: Man drückt die Sprungtaste »N« und kurz danach die Taste für die Richtungsangabe (B oder M). Genauso verfährt man, wenn man mit Joystick spielt: Aktionsknopf kurz drücken, danach Richtungsangabe. Ist auch dieser Teil geschafft, muß man aufpassen, daß dem Männchen keine Steine auf den Kopf fallen. Hat man schließlich alle Gefahren gut überstanden, klettert man auf die Zinne und stellt sich unter den Schlüssel, wodurch das Schloßtor geöffnet wird.

Nun werden die Fallgruben übersprungen, und man steht vor dem letzten großen Hindernis, der Brücke. Diese Brücke schließt und öffnet sich periodisch, und es gilt, den richtigen Moment abzupassen, um die Brücke überqueren zu können. Die letzten Fallgruben werden übersprungen, und Sie können aus dem Schloß hinauslaufen. Geschafft! Eine kurze Erholungspause, und das Spiel beginnt von vorne, natürlich etwas schwieriger.

Die Sektornummer wird links oben, die Anzahl der in Reserve verbliebenen Leben (man beginnt mit drei Leben) wird rechts oben angezeigt. Für jeden Versuch hat man 3000 Zeiteinheiten zur Verfügung. Hat man einen Sektor geschafft, bekommt man die verbliebenen Zeiteinheiten als Bonus gutgeschrieben. Nach dem ersten Sektor erhält man ein Extra-Leben, und es taucht ein Gespenst auf, welches den Schlüssel auf der Zinne bewacht. Noch ein Tip: Wenn Sie vor einem aus der Decke ragenden Felsen stehen, können Sie nicht springen.

Nutzt die grafischen Möglichkeiten des VC 20 voll aus

Das Spiel ist nicht ganz einfach, man braucht schon ein bißchen Übung, um den ersten Sektor zu schaffen. Leider ist das Spiel nur in Schwarzweiß programmiert, aber eine farbliche Gestaltung des Bildschirms war mit dem beschränkten Speicherplatz der VC 20-Grundversion nicht mehr möglich.

Als Ausgleich werden die grafischen Fähigkeiten des VC 20 voll ausgenutzt. Alle Bewegungen von Figuren werden aus Geschwindigkeitsgründen von einem Maschinenspracheprogramm ausgeführt.

(Frank Backes)
A Zeiteinheiten
B,C Koordinaten des Männchens
S Sektornummer
F In Reserve befindliche Leben
H,I,G,T Laufvariablen
M Zeigt an, ob Männchen gerade springt
R Punktzahl
Q,W Zeichen hinter Männchen
P,O Zeichen für Männchen
X Speicherstelle für die nächste Note der Melodie
U Richtung für Sprung
L,K Bewegung der Beine
Variablenliste zu »Ghost Manor«
1 rem ghost manor
2 rem by frank backes
3 rem graphik
10 poke56,26:fori=7168to7679:pokei,0:next
20 fori=7168to7168+287:ready:pokei,y:next
25 fori=7456to7456+34:ready:pokei,y:next:fori=7491to7491+15:ready:pokei,y:next
30 data66,126,66,126,66,126,66,126,0,56,120,56,16,62,58,250,56,56,120,120,72,78,194,0
31 data56,56,56,40,62,10,8,24,0,28,30,28,8,124,92,95,28,28,28,30,18,114,67,0,28,28,28,20
32 data124,72,16,24,0,56,56,56,16,254,186,186,186,56,56,56,40,40,8,8,184,56,56,56,40,40
33 data32,32,73,223,255,255,255,255,255,255,255,255,255,255,255,235,194,130,254,248,255
34 data254,252,255,254,255,127,255,63,127,63,255,127,63,255,255,126,122,56,56,48,16,129
35 data66,36,24,60,90,129,66,0,66,165,24,60,90,129,129,238,238,0,187,187,187,0,238,60
36 data126,195,255,129,255,102,60,60,118,215,213,213,215,118,60,255,221,136,221,255,221
37 data136,221,0,12,28,62,62,126,56,0,48,51,63,254,252,124,56,56,12,204,253,127,63,62
38 data28,28,7,5,7,72,240,224,64,0,110,46,0,27,11,11,0,110,118,116,0,216,208,208,0,118
39 data219,219,0,221,221,221,0,119,238,110,0,29,13,5,0,1,60,126,126,60,0,0,0,0,255,58
40 data40,8,0,0,0,0,255,119,85,68,4,0,0,0,0,0,0,0,0,0,0,0,24,24,24,255,129,255,24,24
41 data24,24,24,24,24,60,102,195,255,255,255,255,255,255,255,255
42 data169,127,141,34,145,173,32,145,41,128,133,251,169,255,141,34,145,173,31,145,41,28
43 data24,101,251,133,251,173,31,145,41,32,133,252,96
44 data225,225,223,223,228,228,225,225,223,223,215,215,219,219,209,209
Listing 1. Grafik für Ghost Manor
1 rem ghost manor
2 rem maschinenu.p.
3 rem by frank backes
10 fori=6700to7110:ready:pokei,y:next
20 data160,16,185,206,31,201,15,240,15,201,16,240,26,136,192,1,240,3,24,144,237,24,144
21 data30,169,32,153,206,31,169,16,200,153,206,31,136,24,144,230,169,32,153,206,31,169
22 data15,200,153,206,31,136,24,144,215,173,223,31,201,15,240,3,24,144,10,169,32,141
23 data223,31,169,16,141,208,31
24 data160,2,185,118,31,201,18,240,15,201,19,240,26,200,192,17,240,3,24,144,237,24,144
25 data30,169,32,153,118,31,169,19,136,153,118,31,200,24,144,230,169,32,153,118,31,169
26 data18,136,153,118,31,200,24,144,215,173,119,31,201,18,240,3,24,144,10,169,32,141
27 data119,31,169,19,141,134,31
28 data160,132,185,154,30,201,21,240,8,136,192,0,240,26,24,144,241,169,32,153,154,30
29 data152,24,105,22,168,169,21,153,154,30,152,24,233,22,168,24,144,225,160,13,185,30,31
30 data201,21,240,8,200,192,22,240,16,24,144,241,169,32,153,30,31,169,21,153,154,30,24
31 data144,235
32 data160,13,185,110,30,201,23,240,8,200,192,19,240,18,24,144,241,169,32,153,110,30
33 data169,23,136,153,110,30,200,24,144,233,160,17,185,110,30,201,22,240,8,136,192,11
34 data240,18,24,144,241,169,32,153,110,30,169,22,200,153,110,30,136,24,144,233
35 data173,122,30,201,23,240,10,173,128,30,201,22,240,16,24,144,23,169,32,141,122,30
36 data169,22,141,122,30,24,144,10,169,32,141,128,30,169,23,141,128,30
37 data173,223,30,201,30,240,10,173,229,30,201,31,240,16,24,144,18,169,31,141,223,30
38 data169,31,141,223,30,24,144,5,169,30,141,229,30,160,8,185,220,30,201,31,240,8,136
39 data192,2,240,18,24,144,241,169,32,153,220,30,200,169,31,153,220,30,136,24,144,21
40 data160,4,185,220,30,201,30,240,8,200,192,11,240,7,24,144,241
41 data136,153,220,30,96
Listing 2. Maschinenspracheroutine für Ghost Manor
50 poke650,128:sys7456:geta$:ifa$="o"orpeek(252)=0then70
60 goto50
70 r=0:f=3:s=1
80 b=8142:c=17:a=3000:q=32:w=32:o=2:p=1:x=7491
100 print"{clr}":poke36879,14:poke36869,255:print"{home}{wht}{rvon}{rght}{rght}{rght}**ghost manor**"
110 print"{home}{wht}{down}{down}{down}{down}[                   ["
111 print"q                   q"
112 print"q@ ] ] ] qqq@qqq qqqq"
113 print"q@         q@       q"
114 print"y@         q@   u   q"
115 print"q@         q@       z"
116 print"\qq ^^^^^^@q@       q"
117 print"{rght}{rght}t       @q@       q"
118 print"{rght}{rght}t       @q@       q"
119 print"{rght}{rght}t       @q@      uq"
120 print"jjq qqq qqqqqq qq@qqjj";
121 print"q                @   q";
122 print"q                @ s q";
123 print"q          r     @srrq";
124 print"l@kk#kkk kkk#kkkkkkkk#";
125 print"l@  n       n     tttm";
126 print"l@               atttm";
127 print"l@  p            btttm";:ifs>3thenpoke7893,21:poke8090,32
128 print"#jjjjjjjjjjjjjjjjjjjj";:ifs>2thenpoke7847,21:poke8059,18
129 poke8164+21,35:poke7746+18,24:ifs>1thenpoke7806,22:poke8152,16
130 print"{home}{wht}{rvon}{down}{down}time";a;"{left} score";r;"{left} ":poke36878,0:poke36877,0:u=0:ifm=2thenm=0
131 poke7680,s+176:poke7701,f+175
140 poke36878,15:poke36876,peek(x):x=x+1:ifx=7507thenx=7491
150 pokeb+c,o:pokeb+c-22,p
155 ifm=1andpeek(b+c+22)<>32thenr=r+50
160 sys6700:ifpeek(b+c)<>oorpeek(b+c-22)<>pthen500
165 ifpeek(b+c+22)=32andm=0then600
170 ifb+c=7967then1000
180 a=a-10:ifa=-10then500
185 ifpeek(b+c-44)=24then800
188 ifm=1thenm=2:pokeb+c,w:pokeb+c-22,q:b=b+22:c=c+u
189 sys7456:ifpeek(b+c)<>0andm=1orpeek(b+c)<>32andm=2then500
190 geta$:ifa$=""andpeek(251)=156andpeek(252)<>0thenfort=1to50:nextt:goto130
195 pokeb+c,w:pokeb+c-22,q:poke36878,15:poke36877,180
200 ifa$="a"orpeek(251)=152then250
210 ifa$="z"orpeek(251)=148then300
220 ifa$="b"orpeek(251)=140then350
230 ifa$="m"orpeek(251)=28then400
240 ifa$="n"andm=0orpeek(252)=0andm=0then450
245 goto130
250 ifw=0thenb=b-22
260 ifp=7theno=o+1:ifo=10theno=8
265 ifp=7then490
270 p=7:o=8:goto490
300 ifpeek(b+c+22)=0thenb=b+22
310 ifp=7theno=o+1:ifo=10theno=8
315 ifp=7then490
320 p=7:o=8:goto490
350 ifpeek(b+c-1)=0orpeek(b+c-1)=32thenc=c-1
360 ifp=1theno=o+1:ifo=4theno=2
365 ifp=1then490
370 p=1:o=2:goto490
400 ifpeek(b+c+1)=0orpeek(b+c+1)=32thenc=c+1
410 ifp=4theno=o+1:ifo=7theno=5
415 ifp=4then490
420 p=4:o=5:goto490
450 ifp=1thenu=1
451 ifp=4thenu=-1
455 ifpeek(b+c-44-u)=32thenb=b-22:m=1:goto470
460 goto130
470 c=c-u
490 w=peek(b+c):q=peek(b+c-22):goto130
500 forh=1to5
501 pokeb+c,34:pokeb+c-22,33:poke36878,15:forg=200to250:poke36876,g:next:poke36876,0
502 nexth
503 poke198,0
510 poke36878,0:f=f-1:iff=0then530
520 goto80
530 print"{home}{wht}{rvon}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{rght}{rght}{rght}{rght}{rght}{rght}game over!":fort=1to2000:next:goto50
600 pokeb+c-22,32:b=b+22:ifpeek(b+c)<>32thenpokeb+c,32:b=b-22:goto500
605 pokeb+c,o:pokeb+c-22,p
610 fort=1to100:next:goto600
800 poke7968,32:fort=1to150:next:poke7946,32:fort=1to150:next:poke7924,32
810 pokeb+c-44,32:poke7768+c,32:poke7790+c,32:goto490
1000 poke36876,0:poke36878,15:forg=1to10:forh=150to250step2:poke36875,h:nexth,g
1010 poke36875,0:poke36878,0:s=s+1:r=r+a:ifs=2thenf=f+1
1020 goto80
Listing 3. Ghost Manor - Das Hauptprogramm
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →