Sky Diver – Commodore 64 – Basic V2

Compute! Gazette – Luglio1983 – Issue 1, Vol. 1, No. 1

Continua il nostro viaggio alla scoperta dei listati che hanno fatto la storia dell’informatica, in collaborazione con i nostri lettori. Questa volta si tratta di Carlos J Vazquez che ha gentilmente concesso a RetroMagazine World la possibilitá di pubblicare il listato che ha digitato sulla rubrica RetroLiPS.
PS – Nel frattempo Carlos ha accettato di entrare a far parte della nostra redazione! 🙂

Skydiver è un gioco di abilità e fortuna in cui si cerca di controllare un paracadutista fino a un atterraggio sicuro. Sta a voi scegliere quando saltare e quale piattaforma di atterraggio tentare. Dovrete anche imparare a compensare le variazioni di vento.

Ci sono tre piattaforme di atterraggio tra cui scegliere: 2X, 5X e 10X. Ciascuna piazzola è più difficile da atterrare rispetto alla precedente e quindi fa guadagnare più punti (2X è la piazzola più grande, 10X la più piccola). Se si atterra con successo, si viene premiati con una melodia e punti bonus. Se si sbaglia, si perde uno dei tre paracadutisti. A 5000 punti si ottiene un paracadutista in più.

Ogni volta che si effettuano due atterraggi riusciti, il livello di difficoltà del gioco aumenta e il valore del bonus sale di 50 punti.

Per giocare, premere il pulsante del joystick per uscire dalla schermata del titolo, quindi scegliere quale piattaforma di atterraggio tentare usando il joystick (in porta 1) per indicare la scelta. Se non si sceglie prima dello scadere del conto alla rovescia, il computer sceglierà per voi. Premendo il pulsante del joystick si sceglie la pista di atterraggio desiderata e si avvia il gioco.

Osservate attentamente come l’aereo emerge dal lato sinistro dello schermo. Misurate la distanza dalla piattaforma di atterraggio che volete tentare, tenendo conto del vento, e premete il pulsante del joystick per saltare. Il paracadutista salterà in caduta libera. Il paracadute si aprirà a metà strada e il joystick controllerà il resto della discesa.

Titolo: Sky Diver
Piattaforma: Commodore 64
Linguaggio: Basic V2
Versione originale: Alan Crossley
Pubblicazione: Compute! July 1983 – Issue 1, Vol. 1, No. 1 (premier issue)
Anno: 1983
Trascrizione listato: Carlos J Vazquez
Anno: 2023

Istruzioni

Premete il pulsante del joystick per scegliere quale piattaforma di atterraggio tentare usando il joystick (in porta 1). Se non si sceglie prima dello scadere del conto alla rovescia, il computer sceglierà per voi.

Osservate attentamente come l’aereo emerge dal lato sinistro dello schermo. Misurate la distanza dalla piattaforma di atterraggio che volete tentare, tenendo conto del vento, e premete il pulsante del joystick per saltare. Il paracadutista salterà in caduta libera. Il paracadute si aprirà a metà strada e il joystick controllerà il resto della discesa.

Nota bene: Il listato é stato recuperato dalla rivista correggendo manualmente i key code per essere utilizzati all’interno del CBM prg Studio.

Attenzione – Ci siamo resi conto che nel listato i caratteri ‘>’ e ‘<‘ potrebbero venir sostituiti dai rispettivi encoding html ‘&gt’ e ‘&lt’. Nel caso, sostituite questi valori direttamente su CBM prg Studio.

Listato: Sky Diver – Commodore 64 – Basic V2


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
5 rem {delete*6}skydiver
6 rem {delete*6}commodore 64 version
7 rem {delete*6}{sh asterisk*39}
8 t7=54272:e=2
10 print"{clear}":goto60100
12 a(1)=1191:a(2)=1200:a(3)=1210
14 sc=0:bo=100:ba=3:wa=7:w=8:ex=0
16 print"{home}{right*3}score:{space*3}";
20 gosub5000
21 print"{home}{down*2}{right*3}";tab(14);"{space*3}{left*3}";a$
22 ct=39+int(rnd(ti)*20+1):cc=0
30 a=0
100 print"{home}{down}";tab(a);"{reverse off} {reverse on}{cm asterisk}{left*2}{down}{reverse off} {reverse on}{cm i*2}":a=a+1
102 cc=cc+1:ifcc>=ct anda<39anda>1then120
105 ifa>=38thenprint"{home}{down}";tab(a);" {down}{left}{space*2}":a=0
110 gosub1000:iffr<>0thenfori=1to50:next:goto100
112 ifa>38ora<1then100
120 print"{home}{down}";tab(a);" {left}{down}{space*2}"
200 b=1144+a:t=int(rnd(ti)*8+1):t=t+1
210 ch=46:c=0
212 c=c+1
220 pokeb,ch:pokeb,32:b=b+40
230 pokeb+t7,4:pokeb,ch:ifc<tthenfory=1to80:next:goto212
300 ch=65
305 pokeb+t7,4:pokeb,ch
310 gosub1000:c=c+1
320 ifc>=wthenifr=4thenpokeb,32:b=b-1:pokeb+t7,4:pokeb,ch:c=0
330 ifc>=wthenifr=8thenpokeb,32:b=b+1:pokeb+t7,4:pokeb,ch:c=0
340 d=d+1
350 ifd>=wathenpokeb,32:b=b+40
355 ifd>=wathend=0:ifpeek(b)<>32then3000
360 pokeb+t7,4:pokeb,ch
370 wi=wi+1
390 ifwi>=sanddi=-1thenpokeb,32:b=b+di:pokeb+t7,4:wi=0
395 ifwi>=sanddi=1thenpokeb,32:b=b+di:pokeb+t7,4:wi=0
400 ifpeek(b)<>32andpeek(b)<>chthen3000
410 pokeb,ch
500 goto300
1000 r=peek(56321)
1010 fr=rand16
1020 r=15-(rand15):return
3000 pokeb+t7,4
3010 ifp=1thenifb=1831orb=1832orb=1833orb=1834thenpokeb,ch:goto4000
3020 ifp=2thenifb=1842orb=1843orb=1844thenpokeb,ch:goto4050
3030 ifp=3thenifb=1854orb=1855orb=1856orb=1857orb=1858thenpokeb,ch:goto4100
3040 pokeb,170:goto12000
4000 print"{home}{down*8}{right*10}5x";bo;"=";5*bo
4010 va=5*bo:goto10000
4050 print"{home}{down*8}{right*9}10 x";bo;"=";10*bo
4060 va=10*bo:goto10000
4100 print"{home}{down*8}{right*11}2 x";bo;"=";2*bo
4110 va=2*bo:goto10000
5000 print"{home}{down*19}"
5020 print"{space*6}{black}{cm l}{yellow}{cm i*4}{black}{cm j}{space*5}{black}{cm l}{yellow}{cm i*3}{black}{cm j}{space*7}{cm l}{yellow}{cm i*5}{black}{cm j}{blue}"
5030 print"{reverse on}{space*8}5x{space*9}10x{space*10}2x{space*6}{reverse off}";
5040 fori=1944to2023:pokei+t7,6:pokei,160:next
5041 ifba<=0then60000
5042 print"{home}";tab(17);"{space*4}"
5043 ifba>1thenprint"{down*4}{home}";tab(18);:fori=1toba-1:print"a";:next:print
5045 ss=int(rnd(ti)*3+1):di=int(rnd(ti)*2+1):ifdi=2thendi=-1
5048 ifss=1thens=5:sd=15
5049 ifss=2thens=10:sd=10
5050 ifss=3thens=15:sd=5
5052 d$="right":ifdi=-1thend$="left"
5053 ifnj>=nethenbo=bo+50:print"{home}{right*5}{down*8}{right*3}bonus advance to{red}";bo:print"{blue}"
5054 ifnj>=nethenifwa>4thenwa=wa-1
5055 ifnj>=nethennj=0:ifw<18thenw=w+1
5056 print"{home}{down*3}{right*8}";"wind:";sd"to ";d$:gosub50000
5057 fork=1to1000:next:print"{home}{down*3}{space*25}"
5060 fori=1104to1904step40:pokei,96:pokei+39,96:next
5070 return
10000 jm=jm+1:nj=nj+1
10100 forp=1tova/10:sc=sc+10:print"{home}{blue}score:{white}";sc:next
10110 forid=1to1000:next:ifex=0andsc>=5000thenba=ba+1:ex=1
10120 print"{home}{down*8}{space*21}":goto20
12000 print"{home}{down*8}{right*6}sorry no bonus!":ba=ba-1
12010 forid=1to500:next
12120 pokeb,32:print"{home}{down*8}{space*21}":goto20
50000 rem selection
50010 print"{home}{right*6}{down*4}{red}5x{space*7}10x{space*7}2x{blue}":p=1:z=p
50020 ti$="000000"
50025 pokea(p),peek(a(p))+128and255:print
50027 tm=15-val(ti$)
50028 print"{home}{down*5}{right*9}";
50029 print"{right*7}{down}{space*2}";tab(10);"{space*2}{left*3}";tm:iftm=0thenp=int(rnd(ti)*3+1):goto50100
50030 gosub1000:ifr=4orr=8thenx=peek(a(p)):ifx>129thenpokea(p),x+128and255
50035 iffr=0then50100
50040 gosub1000:ifr=4thenp=p-1:ifp<1thenp=3
50045 ifr=8thenp=p+1:ifp>3thenp=1
50050 forid=1to100:next:goto50025
50100 a$="2x":ifp=1thena$="5x"
50110 ifp=2thena$="10x"
50120 print"{home}{right*7}{down*13} you must land on ";a$
50140 forid=1to1500:next
50150 print"{home}":forid=1to18:print"{space*30}":next:return
60000 print"{home}{down*7}{right*10}game over":ifsc>hithenhi=sc
60010 forid=1to2000:next
60020 print"{home}{down*7}{right*6}{space*9}"
60100 poke53281,1:poke53280,6:print"{clear}{down*4}{space*11}{black}sky diver"
60110 print:print:print:print"{down*2}"
60120 print"{space*8}{blue*2}use joystick to play"
60130 print:print:print:print"{down*2}"
60140 print"{space*12}{green}high score{red}":print"{down*2}"
60150 xx=len(str$(hi))/2:printtab(16-xx);hi
60160 gosub1000:iffr<>0then60160
60170 print"{clear}":fork=1to18:print"{space*21}":next::goto12

Share

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.