Croussaider – Ein Action-Spiel für den VC 20

Dieses Spiel zeigt die Möglichkeiten, die bereits in der Grundversion des VC 20 stecken. Obwohl von den Farbgrafik- und Soundmöglichkeiten ausgiebig Gebrauch gemacht wird, benötigt das Programm nur knapp 3 KByte RAM.

Vor dem Start einer neuen Spielrunde

Feindliche Weltraumschiffe greifen die Erde an! Sie haben in diesem Spiel die Aufgabe, die Invasion abzuwehren. Dazu besitzen Sie ein Raumschiff, den »Croussaider«, das über der Erde schwebt. Unter ihm liegt eine moderne Stadt mit Hochhäusern, Fabriken und einem Atomkraftwerk. Am oberen Rand des Bildschirms erscheinen die Angreifer, deren Ziel es ist, in der Stadt zu landen und sie zu zerstören.

Sie bewegen sich rasch auf die Stadt zu, so daß schnelle Reaktionen erforderlich sind, um eine Landung zu verhindern.

Hat man es geschafft, den Angreifern eine bestimmte Zeit zu widerstehen, erscheint eine neue, gefährlichere Welle von Invasoren mit anderem Aussehen.

Wenn man fünf verschiedene Angriffswellen übersteht, erscheint wieder die erste, mit dem Unterschied, daß die Angreiferzahl steigt. So ist immer für Abwechslung und Spannung gesorgt.

Der fortgeschrittene Spieler, dem das Spiel zu einfach ist, kann den Wert der Variablen Y in Zeile 10 vermindern.

Um das Spiel zu beschleunigen, wurden einige Routinen in Maschinensprache geschrieben. Die erreichte Punktzahl wird ständig angezeigt, und eine »High-Score»-Funktion hält das jeweils beste Ergebnis fest.

Doch damit genug der Vorrede. Tippen Sie doch jetzt einfach das Listing ab und versuchen Sie, die Invasion zu verhindern…

(Eberhard Aust)
10 Einlesen des Maschinenprogramms
12 Einlesen der Grafikzeichen
19 - 99 Spielvorbereitung
100 - 130 Hauptspielroutine
200 - 206 Score-Routine
250 - 292 Anzeige des Highscore
300 - 314 Schwierigkeitsgrad ändern
1000 - 1012 Maschinensprache-DATA
1100 - 1107 Grafik-DATA
Programmaufbau von »Croussaider»
A Raumschiffposition
Y Angreiferwahrscheinlichkeit
J,K,L Aussehen des Angreifers
SC Score
HI High-Score
E Inhalt des Registers 37151
F Inhalt des Registers 37152
N Konstante 36876
D Zufallszahl zwischen 1 und 2
Die wichtigsten Variablen
1 rem croussaider
2 rem ===========
3 rem
4 rem
10 fora=0to164:readb:poke828+a,b:next:forj=0to41:readk:poke7440+j,k:next
12 forj=0to159:readk:poke7168+j,k:next:forj=0to7:poke7168+32*8+j,0:next
19 poke36879,9:print"{clr}{down}{down}{down}{down}{down}":a=8086:b=8078:c=8095:sc=0:x=0
20 poke36869,255:poke36878,15:poke7432,8:poke7433,0:y=10:n=36876:li=10:ifqq=0then280
75 forrr=0to44:print"{yel}                      ";:next:print"{down}{cyn}                      "
80 print"{home}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{yel}ll p l   {cyn}q p q{yel} ll pll lllplll{grn}mm{cyn}rolor{yel}llllllll";
90 print"{grn}nnnnnnnnnnnnnnnnnnnnn{home}":poke7680+505,14:poke38400+505,5
91 pokea-1,9:pokea,10:pokea+1,11:gosub300
100 e=peek(37151):poke37154,127:f=peek(37152):poke37154,255:d=int(rnd(1)*2)+1:poken,s+d
103 if(eand16)=0anda>bthenpokea+1,32:pokea,32:a=a-d:pokea-1,9:pokea,10:pokea+1,11:poken,r
104 if(fand128)=0anda<cthenpokea-1,32:pokea,32:a=a+d:pokea+1,11:pokea,10:pokea-1,9:poken,t
106 poke36877,0:sys903:if(eand32)=0thenpokea-22,8:poke36877,252+d
111 ifint(rnd(1)*y)=0theni=int(rnd(1)*14)+7728:pokei-1,j:pokei,k:pokei+1,l
120 sys828:sys828+51:ifpeek(7432)<>8thengosub200
121 ifpeek(7433)<>0thengoto250
127 u=u+1:ifu=1thensys7440:ifti>2000thengosub300
129 print"{home}{wht}{rvon}"sc:ifu=2thensys(7461):u=0
130 sys903:goto100
200 forh=0to15:poke36879,int(rnd(1)*256):next:poke36879,9
201 h=peek(7432):poke36877,int(rnd(1)*90)+128:poke7432,8:ifh=0thensc=sc+10:return
202 ifh=2orh=4thensc=sc+40:return
203 ifh=3thensc=sc+int(rnd(1)*120):return
204 ifh=5thensc=sc+75:return
205 ifh=1thensc=sc+20:return
206 return
250 print"{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{yel}         {cyn}     {yel}     s  sslssss{grn}ms{cyn}qosoq{yel}ssssslss";
252 poken,0:poken+1,128:foru=15to0step-1:poken+2,u:foruu=0to40:poken+3,int(rnd(1)*128):next:next
279 ifsc>hithenhi=sc
280 poke36879,9:print"{home}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{wht}{rvon}"hi:print"{home}{rvon}{down}{down}{down}{down}{rght}{rght}{rght}{rght}{rght}croussaider{down}{down}{left}{left}{left}{left}{left}{left}{left}{left}{left}e. aust"
281 geta$:qq=1:ifa$=""then281
282 goto19
300 ti$="000000":x=x+1:s=220+x*3:r=s-10:t=s+10:ifx=6theny=y-1:x=1:ify<3theny=3
310 ifx=1thenj=32:k=1:l=32:z=y:return
311 ifx=2thenj=0:k=32:l=0:z=y:return
312 ifx=3thenj=2:k=3:l=4:z=y*2:return
313 ifx=4thenj=1:k=0:l=1:z=y*1.5:return
314 ifx=5thenj=2:k=3:l=4:z=y*1.5:return
1000 data162,228,189,0,31,201,8,16,8,157,22,31,169,32,157,0,31,224,0,240,4,202,76,62,3
1001 data162,233,189,22,30,201,8,16,8,157,44,30,169,32,157,22,30,224,0,240,4,202,76,87,3
1002 data96,162,0,189,184,31,201,8,48,9,224,43,240,4,232,76,113,3,96,142,9,29,76,120,3
1003 data162,0,189,22,30,201,8,208,20,168,189,0,30,201,8,16,3,141,8,29,152,157,0,30
1004 data169,32,157,22,30,224,255,240,4,232,76,137,3
1006 data162,0,189,22,31,201,8,208,20,168,189,0,31,201,8,16,3,141
1007 data8,29,152,157,0,31,169,32,157,22,31,224,200,240,4,232,76,174,3
1008 data162,0,169,32,157,22,30,232,224,22,240,3,76,211,3,96
1009 data169,126,141,4,28,169,36,141,5,28,169,36,141,6,28,169,24,141,7,28,96
1010 data169,102,141,4,28,169,60,141,5,28,169,66,141,6,28,169,129,141,7,28,96
1100 data60,126,219,255,102,60,66,129,66,36,24,126,165,126,24,
1101 data128,128,231,159,252,252,191,136,,126,255,255,66,66,255,255,1,1,193,249,63,63
1102 data255,,,,,,,,,,,,,,,,,,,,,,,,,,8,8,28,28,28,28,20,54,,24,126,165
1104 data255,165,127,36,66,36,60,24,126,255,231,,,24,126,165,255,165,254,36
1105 data255,165,255,165,255,165,255,165,4,14,14,31,31,31,4,4,255,255,255,255,255,255
1106 data255,255,,60,126,126,126,126,126,126,102,102,102,102,102,102,102,102
1107 data,,,,126,60,60,60,60,60,60,60,126,126,126,255,,,,,,52,126,255
Listing »Croussaider»
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →