VC 20 Grundversion
Rennfahrer
4/84, S. 86-87

Rennfahrer ohne Sturzhelm

Wie auf dem Hockenheimring fühlt man sich bei dem Spielprogramm »Auto« für die Grundversion des VC 20. Es dokumentiert wieder einmal, daß man auch reine Basicprogramme sehr schnell machen kann.

Ab geht die Post. Bei der Spielstärke 1 muß man sehr viel Fingerfertigkeit besitzen, um über die Runden zu kommen

Das ausgesprochene Spielprogramm »Auto« läuft nur auf der Grundversion des VC 20. Außer seiner guten Grafik (mit selbstdefiniertem Zeichensatz) und realistischem Sound ist das Spiel sehr schnell, obwohl es vollständig in Basic geschrieben ist. Dies liegt daran, daß der Hauptprogrammteil sehr knapp bemessen ist (Tastaturabfrage, (Errechnung der nächsten Bildschirmposition, Ton).

Am Anfang des Spieles kann man eine Spielstärke von 1 bis 9 eingeben, wobei »1« sehr schnell und »9« sehr langsam ist.

Ziel des Spieles ist es, auf der Rennstrecke möglichst lange zu fahren. Dazu hat man am Anfang fünf Wagen zur Verfügung.

Man verliert einen Wagen, wenn man an die Abgrenzung der Strecke kommt oder über fünf Runden nicht zur Tankstelle gefahren ist.

Im Eifer des Gefechts das Tanken nicht vergessen

Als kleine Hilfe wird man jede fünfte Runde akustisch in Kenntnis gesetzt, daß man tanken muß. Zur Tankstelle kommt man, wenn man in die erste Einbiegung auf der linken Seite fährt (siehe Bild).

Zwei Tasten sind genug

Gesteuert wird der Wagen über 'R' wie rechts und 'L' wie links.

In der Mitte des Bildschirms sieht man, wieviele Wagen man noch hat und wieviele Runden man gefahren ist.

Am Ende des Spiels wird der eigene Score und der Highscore angezeigt, welcher im Kassettenpuffer abgelegt wird. Es erfolgt die Frage nach einem weiteren Spiel, die mit »J« (Ja) oder »N« (Nein) zu beantworten ist.

Viel Spaß beim Spielen wünscht

(Andreas Lerch)
G,I,T Zählvariablen für Sound- und Grafikbefehle
A$ Variable für Tastaturabfrage
Y,N Variablen für Erzeugung der verschiedenen Spielstärken
PL%,H%,Y Variablen für Erzeugung des neuen Zeichensatzes
W Variablen für Anzahl der Wagen
R Variable für Anzahl der Runden
S Variable für Bildschirmposition des Wagens
M(1),M(2),M(3),M(4) Variablen für die Anzahl der Bildschirmposition, die der Richtung entspricht
D Variable zur Unterscheidung, ob es der erste oder ein anderer Spieldurchlauf ist
E Laufvariable für M(1) bis M(4)
Z Variable für Benzininhalt
A Datavariable
Variablendefinition zu »Auto«
1 rem by andreas lerch
10 poke52,28:poke56,28:clr
20 print"{clr}{rvon}{down}{down}"chr$(8);:poke36879,25
30 fori=1to21
40 poke646,rnd(1)*6+2:print" ";
50 next
60 print"{blk}{down}{down}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rvon}        "
70 print"{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rvon}  vc-20 "
80 print"{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rvon}        "
90 print"{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rvon}  auto  "
100 print"{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rvon}        "
110 print"{rvon}{down}{down}"chr$(8);:poke3679,25
120 fori=1to21
130 poke646,rnd(1)*6+2:print" ";
140 next
150 poke36878,13:fort=255to128step-1:poke36875,t:nextt:poke36875,0
160 print"{blk}{down}{down}{rght}{rght}{rght}{rght}{rght}spielstaerke?"
170 print"{down}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}(1-9)"
180 geta$:ifa$=""then180
190 n=(val(a$)-1)*10
200 poke36879,25:print"{clr}{blk}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{rght}****bitte warten****"
210 pl%=7168:h%=7176
220 restore
230 fori=0to511:pokepl%+i,peek(32768+i):next
240 fory=1to5
250 fori=0to7:reada:pokeh%+i,a:nexti
260 h%=h%+8:nexty
270 data0,204,204,254,205,254,204,204
280 data8,20,127,127,20,20,127,127
290 data51,51,127,179,127,51,51,0
300 data254,254,40,40,254,254,40,16
310 data63,33,127,191,140,156,172,76
320 poke36869,255
330 e=1:w=5:z=6
340 s=8112
350 poke36879,25
360 print"{clr}{rvon}U{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}I         ";
370 print"{rvon}{SHIFT--}           {SHIFT--}"
380 print"{rvon}{SHIFT--}           {SHIFT--}"
390 print"{rvon}{SHIFT--}  U{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}I  J{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}I";
400 print"{SHIFT--}  {SHIFT--}     {SHIFT--}           {SHIFT--}";
410 print"{SHIFT--}  {SHIFT--}     {SHIFT--}           {SHIFT--}";
420 print"{SHIFT--}  {SHIFT--}     J{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}I  {SHIFT--}";
430 print"{SHIFT--}  {SHIFT--}              {SHIFT--}  {SHIFT--}";
440 print"{SHIFT--}  {SHIFT--}              {SHIFT--}  {SHIFT--}";
450 print"{SHIFT--}  J{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-R}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}I{SHIFT--}  {SHIFT--}";
460 print"{SHIFT--}         {SHIFT--}      {SHIFT--}{SHIFT--}  {SHIFT--}";
470 print"{SHIFT--}         {SHIFT--}      {SHIFT--}{SHIFT--}  {SHIFT--}";
480 print"{SHIFT--}  U{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{CBM-E}{SHIFT-*}{SHIFT-*}{SHIFT-*}I  {SHIFT--}{SHIFT--}  {SHIFT--}";
490 print"{SHIFT--}  {SHIFT--}          {SHIFT--}  {SHIFT--}{SHIFT--}  {SHIFT--}";
500 print"{SHIFT--}  {SHIFT--}    U{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}K  {SHIFT--}{SHIFT--}  {SHIFT--}";
510 print"{SHIFT--}  J{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}K{$a0}       {SHIFT--}{SHIFT--}  {SHIFT--}";
520 print"{SHIFT--}                {SHIFT--}{SHIFT--}  {SHIFT--}";
530 print"{SHIFT--}         U{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}K{SHIFT--}  {SHIFT--}";
540 print"J{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}I  J{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}K  {SHIFT--}";
550 print"       {SHIFT--}     i       {SHIFT--}";
560 print"       {SHIFT--}     i       {SHIFT--}";
570 print"       J{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}K";
580 poke7856+7,5:poke7856+9,5:poke7856+11,5
590 e=1
600 s=8112
610 rem
620 print"{home}{down}"
630 print"{down}{down}{down}{down}{down}{rght}{rght}{rght}{rght}{rvon}wagen :"w
640 print"{down}{down}{rght}{rght}{rght}{rght}{rvon}runden:"r
650 ifd=1thenreturn
660 pokes,e
670 m(1)=1:m(2)=-22:m(3)=-1:m(4)=22
680 m(e)=1
690 geta$
700 fory=1ton:nexty
710 ifa$="l"thengosub790
720 ifa$="r"thengosub810
730 ifpeek(s+m(e))=160thengoto750
740 goto830
750 s=s+m(e)
760 pokes,e:pokes-m(e),160
770 poke36878,10:poke36876,200:poke36876,0
780 goto690
790 e=e+1:ife=5thene=1
800 return
810 e=e-1:ife=0thene=4
820 return
830 ifpeek(s+m(e))<>137then870
840 poke36878,14:fori=1to2:poke36876,235:fort=1to9:next:poke36876,231:fort=1to9:nextt,i
850 r=r+1:poke36878,0:poke36876,0:gosub1130:z=z-1:ifz=0thengoto940
860 goto930
870 ifs+m(e)=7910ors+m(e)=7932thengoto1230
880 gosub910
890 poke36878,13:fort=150to220
900 poke36877,t:forg=1to5:nextg,t:poke36877,0:poke36878,0:goto920
910 pokes,32+128:           pokes+m(e),73:return
920 w=w-1:ifw=0thengoto940
930 d=0:poke198,0:goto350
940 print"{clr}":poke36878,14:fort=128to255:poke36876,t:next:poke36876,0:
950 poke36869,240
960 ifpeek(828)<rthenpoke828,r
970 poke36879,8
980 print"{rvon}{down}{down}"chr$(8);:poke3679,8
990 fori=1to21
1000 poke646,rnd(1)*6+2:print" ";
1010 next
1020 print"{rvof}{down}{rght}{rght}{wht}dein score:"r
1030 print"{down}{down}{rght}highscore:";peek(828)
1040 print"{rvon}{down}{down}"chr$(8);:poke3679,8
1050 fori=1to21
1060 poke646,rnd(1)*6+2:print" ";
1070 next
1080 print"{down}{down}{rght}{rght}{rght}{rght}{wht}noch ein spiel?"
1090 print"{down}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}(j/n)"
1100 geta$:ifa$="j"thend=0:r=0:print"{clr}":sc=0:goto200
1110 ifa$="n"thenend
1120 goto1100
1130 ifr/5<>int(r/5)thenreturn
1140 poke36878,13
1150 fori=1to4
1160 f=195:gosub1180:f=207:gosub1180:f=251:gosub1180:f=225:goto1200
1180 poke36876,f:gosub1220:return
1200 nexti
1210 poke36876,0:poke36878,0:return
1220 fory=1to20:nexty:return
1230 z=6:fort=1to4500:next:pokes,96+128:s=s+2:pokes,e:pokes-1,221:goto690
Listings des Basicprogramms »Auto«
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →