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.

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 |
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