Missione Bombardamento – MS-DOS – GWBasic

Rivista: PC Personal Computer Club – Anno: 1983, Ottobre – Numero 5 – Trascrizione: Francesco Fiorentini

Qualche giorno fa abbiamo condiviso con tutti voi il numero 5 della rivista italiana PC Personal Computer Club: https://www.retromagazine.net/pc-personal-computer-club-anno-i-numero-5/

Oggi vogliamo condividere con voi uno dei listati recuperati dalla rivista, il gioco Missione Bombardamento. Il listato originale pensato per un computer Personal GENIUS, ma essendo basic standard e’ facilmente adattabile per altre piattaforme. In questo caso lo abbiamo adattato con pochissimo sforzo per il GWBasic dell’MS-DOS.

Lo scopo della simulazione e’ di percorrere 400 km oltre le linee nemiche per bombardiare una fabbrica di munizioni. Durante il volo e’ possibile incappare nell’antiarea o essere attaccati da un caccia solitario, nella battaglia col caccia devi stare attento a non spendere troppo carburante.
Se il carburante termina prima del raggiungimento dell’obiettivo o se vieni abbattuto, hai fallito lo scopo! Durante la missione dovrai dare spesso dei comandi.

Titolo: Missione Bombardamento
Piattaforma: PC – MS-DOS
Linguaggio: GWBasic
Versione originale: Giulio Cavedali
Pubblicazione: PC Personal Computer Club
Anno: 1983, Ottobre
Trascrizione: Francesco Fiorentini
Anno: 2026
Download: N/A
Note: La linea 140 e’ stata suddivisa in piu’ linee per rispettare la lunghezza massima delle righe del GWBasic.

Istruzioni
e = salita – x = discesa – s = vira a sinistra – d = vira a destra
6 = proseguimento rotta – 7 = sgancio bengala
8 = sgancio bombe – 9 = rivedi i comand
space = spara

Qui di seguito trovate il codice da copiare sul vostro computer DOS oppure su un emulatore, noi suggeriamo DOSBox.

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 nel listato prima di copiarlo sull’emulatore.

Listato: Reactor Chase – Apple II – Basic


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
10 cls:s=0:c=250:f=0:m=4:b=3:print"***** missione ****":print:print"** bombardamento **":print:print
15 print"vuoi le istruzioni ? (s/n)"
20 a$=inkey$:if a$="n" then 50 else if a$<>"s" then 20 else cls:print"lo scopo della simulazione e' di percorrere 400 km. oltre le linee nemiche per bombardiare una fabbrica di munizioni."
30 print"durante il volo e' possibile incappare nell'antiarea o essere attaccati da un caccia solitario":print"nella battaglia col caccia devi stare attento a non spendere troppo carburante"
40 print"se il carburante termina prima del raggiungimento dell'obiettivo o se vieni abbattuto, hai fallito lo scopo!":print"durante la missione dovrai dare spesso dei comandi":print:input"premi new line";a$:cls
50 cls:gosub 2000:print:input"premi new line per continuare";a$:cls:print"hai appena varcato le linee nemiche"
60 if rnd(0)*10>1 then 820 else print:print"un caccia nemico ti sta attaccando"
70 x=rnd(5):on x goto 80,90,100,110,120
80 print"dall'alto":goto 130
90 print"dal basso":goto 130
100 print"da sinistra":goto 130
110 print"da destra":goto 130
120 print"da davanti"
130 print"comandi ? ";
131 rem La linea 140 originale e' stata suddivisa in due righe 135 e 140 per rispettare la lunghezza massima delle righe GWBASIC
135 k$=inkey$:if k$="" then 135 else a=val(k$): if a>9 and k$<>"e" and k$<>"x" and k$<>"s" and k$<>"d" then 135
140 if k$="e" then a=1 else if k$="x" then a=2 else if k$="s" then a=3 else if k$="d" then a=4 else if k$=" " then a=5 else if a=9 then gosub 2000:print:goto 130
150 print:if a=x then 170 else print"il caccia e' dietro di te e ti sta sparando!":if int(rnd(0)*2)=0 then 1440 else print"ma sei fortunato":print"il tuo nemico non ha buona mira":print:x=1:print:c=c-1-f:goto 130
170 if a=5 then print"bravo! ora il caccia e' distrutto":goto 180
180 print"il tuo nemico e' ora ";:x=rnd(5):on x goto 190,200,210,220,230
190 print"sopra di te":goto 240
200 print"sotto di te":goto 240
210 print"alla tua sinistra":goto 240
220 print"alla tua destra":goto 240
230 print"davanti a te"
240 c=c-1-f:if c<=0 then 1410 else goto 130
820 if rnd(0)*10>3 then 910 else print"la contrarea ti sta attaccando":print
830 if rnd(0)*10<=3 then f=f+2:print"c'e' una perdita di carburante dai serbatoi":goto 910
840 if int(rnd(0)*10)<=4 then m=m-1:print"e' stato colpito un motore";if m=0 then 440 else goto 910
850 print"ma non hai nessuna avaria":print
910 s=s+10+rnd(5)
920 c=c-1-f:if s>=400 then 1110 else if c<=0 then 1410
930 print:print:print"----- situazione -----":print"hai percorso";s;"km.":print"e hai ancora";c;"litri di carburante":print"hai";m;"motori funzionanti":print"perdi";f;"litri di carburante":print
935 print"comandi ? ";
940 for i=1 to 500:k$=inkey$:if k$="" then k$="6":next
945 a=val(k$):if a<1 or a>9 then 940 else cls
950 if a<=5 then print"sei fuori rotta":print:goto 920 else if a=6 then 60 else if a<=7 then b=b-1:if b=0 then print"hai finito i bengala":b=1:goto 60 else print:print"hai sprecato un bengala":goto 60
960 if a=8 then print:print"hai sganciato le bombe prima di arrivare sull'obiettivo":print:goto 1460 else print:gosub 2000:print:goto 935
1110 if int(rnd(0)*3)=0 then 1330 else print"notte fonda e non si vede l'obiettivo":print
1120 print"comandi ? ";
1130 k$=inkey$:if k$="" then 1130 else a=val(k$):if a<1 or a>9 then 1130 else print a
1140 if a<=6 then print:print"le manovre elusive sono inutili":goto  1120 else if a=9 then print: goisub 2000:print:goto 1120
1150 if a=7 then 1170 else if (rnd(0)*3)>1 then 1160 else print"hai centrato l'obiettivo":print"sganciando le bombe alla cieca":print:goto  1460
1160 print"hai mancato l'obiettivo":print:goto  1460
1170 if b=0 then print"hai finito i bengala":goto  1120 else b=b-1:if int(rnd(0)*3)<>0 then print"il lancio del bengala e' stato inutile":goto  1120
1330 print"il tuo navigatore ha individuato l'obiettivo"
1340 print"comandi ? "
1350 k$=inkey$:if k$="" then 1350 else a=val(k$):print a:if a<>8 then 1440
1355 if rnd(10)>8 then 1160
1360 print:print:print"------ complimenti ------":print:print"      missione compiuta"
1410 print:print"hai finito il carburante":print:goto 1460
1440 print"sei stato abbattuto":print
1460 print"vuoi ritentare ?"
1470 k$=inkey$:if k$="s" then s=0:c=250:f=0:m=4:b=3:cls:print"hai appena varcato le linee nemiche":goto 60 else if k$<>"n" then 1470
1480 print:print"ok! ci rivediamo un'altra volta":end
2000 print"----- comandi -----":print"    e = salita":print"    x = discesa":print"    s = vira a sinistra":print"    d = vira a destra"
2010 print"    6 = proseguimento rotta":print"    7 = sgancio bengala":print"    8 = sgancio bombe":print"    9 = rivedi i comandi":print"space = spara":return

Share

Lascia un commento

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

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.