Rivista: Commodore Computer Club (IT) – N.ro: 14 / ottobre 1984 – Trascrizione: David La Monaca
Un altro “inedito” in Rete (nella versione file PRG) fra i listati di RetroLiPS ed un altro estratto dal numero 14 di Commodore Computer Club, una delle riviste più famose ed apprezzate degli anni Ottanta, tutta dedicata alle macchine Commodore.
Numero Fantasma è un vero e proprio brain game ante-litteram, semplice ma divertente, che riuscirà senza dubbio a tenervi incollati allo schermo per qualche minuto. Ad ogni sessione di gioco, il programma proporrà una sfida di calcolo e di memoria a breve termine. Sullo schermo appariranno 5 coppie di numeri interi contrassegnate dalle prime lettere dell’alfabeto. Il vostro compito è cercare di memorizzarle il più velocemente possibile. Dopo qualche secondo, infatti, le cifre spariranno dal vostro sguardo (saranno coperte da 5 quadrati colorati) e vi sarà posta una domanda nella forma di un calcolo da fare a mente ricordando le coppie di numeri apparse in precedenza.
Il gioco proseguirà fornendo un risultato numerico, ossia un numero intero da raggiungere utilizzando una delle coppie indicate con le lettere da A ad E e associando una delle quattro operazioni aritmetiche (somma “+”, sottrazione “-“, moltiplicazione “*” e divisione “/”). Dopo aver fornito la lettera corrispondente alla coppia di numeri scelta e l’operazione aritmetica da associare, il gioco vi darà la risposta rivelando se avete indovinato oppure se avete preso un abbaglio! In un caso o nell’altro, avrete la possibilità di riprovarci. In questo modo potrete tenere allenata la vostra mente ripetendo la sfida per tutte le volte che vorrete o fino a quando darete la risposta giusta ad ogni sessione. Di questi tempi, in cui tutto è a portata di mano e le vostre capacità di calcolo e di memoria tendono ad impigrirsi, non c’è niente di meglio che esercitare i vostri neuroni in una sfida matematica avvincente! 🙂
Download link: numerofantasma.prg

Titolo: Numero fantasma
Piattaforma: Commodore 64
Genere: Gioco di abilità
Linguaggio: BASIC V2
Autore versione originale: Giovanni Bellù
Pubblicazione: Commodore Computer Club n. 14, ottobre 1984
Anno: 1984
Digitazione: David La Monaca
Anno: 2026 (marzo)
Download: file .prg
Note: –
Qui di seguito trovate il codice in linguaggio BASIC da copiare sul vostro Commodore 64 originale oppure su un emulatore. Per PC Windows 10/11 suggeriamo VICE con il supporto dell’editor e compilatore CBM Prg Studio.
Di seguito le istruzioni per caricare il listato sull’emulatore VICE:
– Copiare il listato qui sotto e incollatelo in CBM Prg Studio.
– I codici dei caratteri speciali presenti nel listato saranno trattati da CBM Prg Studio e convertiti nei corrispondenti simboli del BASIC V2.
– Selezionare Generate .prg (current file) per ottenere il file programma con estensione .prg (ad es. numerofantasma.prg)
– Lanciare l’emulatore VICE e dal menu File > Smart attach… > numerofantasma.prg
Buon divertimento!
Attenzione – Nel listato i caratteri ‘>’ e ‘<‘ potrebbero essere stati sostituiti dai rispettivi codici di encoding HTML ‘>’ e ‘<’. Nel caso siano presenti, sostituite questi valori nel listato prima di caricarlo nell’emulatore.
Download link: numerofantasma.prg
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
107
108
109
110
111
112
113 100 rem
110 rem numero fantasma
120 rem
130 rem d i
140 rem
150 rem g i o v a n n i - b e l l u '
160 rem
170 rem via giardini 20 seregno (mi)
180 rem
190 rem tel. 0362/239580
200 rem
210 rem
220 rem commodore 64
230 rem
235 rem type-in & testing by DLM/RMW
240 rem ** cancella video **
250 print"{clear}"
260 rem ** sfondo e bordo grigio scuro **
270 poke53280,11:poke53281,11
280 rem ** valore inizio dati sprite **
290 v=53248
300 rem ** sprite quadrato pieno **
310 fork=832to895:pokek,255:next
320 rem ** colori sprite **
330 pokev+39,1:pokev+40,7:pokev+41,5:pokev+42,2:pokev+43,6
340 rem poke per posizioni sprite
350 rem ** sprite 1 **
360 pokev,48:pokev+1,100:rem sprite 1
370 rem ** sprite 2 **
380 pokev+2,96:pokev+3,100
390 rem ** sprite 3 **
400 pokev+4,144:pokev+5,100
410 rem ** sprite 4 **
420 pokev+6,192:pokev+7,100
430 rem ** sprite 5 **
440 pokev+8,239:pokev+9,100
450 rem ** inizio dati sprite **
460 fork=2040to2044:pokek,13:next
470 rem ** init. variabili **
480 dim a$(5),b$(9),a(5,2)
490 a$(1)="{home}{down*7}{right*3}"
500 fork=2to5:a$(k)=a$(k-1)+"{right*6}":next
510 fork=0to9:b$(k)=right$(str$(k),1):next
520 fork=1to5:printa$(k)"{green}{down*2}{right}"chr$(k+64):next
530 rem ** numeri random **
540 deffna(a)=int(rnd(1)*9+1)
550 deffnb(a)=int(rnd(1)*a+1)
560 rem ** inizio gioco **
570 print"{home}{light green} {reverse on} allenati a calcolare a mente "
580 rem ** scelta numeri random **
590 fork=1to5:forj=1to2:a(k,j)=fna(k):next:next
600 pokev+21,0:p$="{home}":fork=1to16:p$=p$+"{down}":next
610 rem ** stampa numeri scelti **
620 fork=1to5
630 printa$(k)b$(a(k,1))" "b$(a(k,2))
640 next
650 rem ** ritardo di 5 secondi **
660 fork=1to5000:next
670 rem ** visualizza sprite **
680 rem ** e cancella numeri **
690 pokev+21,255
700 rem ** visualizza numero **
710 rem ** da realizzare **
720 printp$" {reverse on}{cyan}numero da realizzare: ";
730 a=5:x=fnb(a):a=4:y=fnb(a)
740 ify=1thengoto810
750 ify=2thengoto840
760 ify=3thengoto870
770 ify=4thengoto900
780 print"{reverse on} errore":end
790 rem ** calcola numero **
800 rem ** da realizzare **
810 rem somma
820 n=a(x,1)+a(x,2)
830 d$="+":goto930
840 rem differenza
850 n=a(x,1)-a(x,2)
860 d$="-":goto930
870 rem moltiplicazione
880 n=a(x,1)*a(x,2)
890 d$="*":goto930
900 rem divisione
910 n=a(x,1)/a(x,2)
920 d$="/":goto930
930 printn
940 printp$"{down*2}{yellow} {reverse on} indovina !";
950 geta$:ifa$<"a"ora$>"e"then950
960 b=asc(a$)-64
970 printa$;" ";
980 geta$:ifa$=""then980
990 ifa$="+"then1040
1000 ifa$="-"then1060
1010 ifa$="*"then1080
1020 ifa$="/"then1100
1030 goto980
1040 t=a(b,1)+a(b,2)
1050 goto1110
1060 t=a(b,1)-a(b,2)
1070 goto1110
1080 t=a(b,1)*a(b,2)
1090 goto1110
1100 t=a(b,1)/a(b,2)
1110 printa$;"=";t
1120 rem finale
1130 ift=nthenprintp$"{down*4} {white}{reverse on} indovinato !!":goto1170
1140 printp$"{down*4} {white}{reverse on} sbagliato !!"
1150 print" una soluzione era : "chr$(x+64)" "d$" ="n
1160 rem effetto finale sprite
1170 fork=255to0step-5:pokev+21,k:forj=1to50:next:next
1180 print"{down} {reverse on}{cyan} vuoi riprovare ?"
1190 geta$:ifa$=""then1190
1200 ifa$="s"thenrun
1210 print"{clear}{black}"
