Canestro – Commodore 64 Basic V2

Commodore Computer Club – Anno 3 Numero 9 – Marzo 1983 – Basic V2

Grazie al contributo di Francesco Sblendorio, che ringraziamo per la collaborazione, siamo in grado di preservare alcuni listati BASIC per Commodore 64 pubblicati sulla prestigiosa rivista Commodore Computer Club.

Titolo: Canestro
Piattaforma: Commodore 64
Linguaggio: Basic
Versione originale: Giovanni Bellú
PubblicazioneCommodore Computer Club 09
Anno: 1983
Trascrizione: Francesco Sblendorio
Anno: 2021
Note: Adattamento degli screen codes per CBM prg Studio ad opera di Francesco Fiorentini.

Scopo del gioco
Una pallina un po’ dispettosa scende o dalla parte destra o da quella sinistra del video, ed è lei che decide, magari facendovi credere di scendere da una parte mentre poi scende dall’altra, seguendo una traiettoria “quasi” parabolica. Dico quasi perchè casualmente la pallina potrebbe trovarsi davanti una paletta che la fa rimbalzare, facendole cambiare direzione.
Scopo del gioco è di riuscire a prendere la pallina spostando una specie di canestro che viene disegnato in basso, muovendolo o a destra o a sinistra. In totale scendono 10 palline, e bisogna riuscire a prenderle tutte.

Qui di seguito trovate il codice da copiare sul vostro Commodore 64.
Il codice originale é modificato per essere copiato su CBM prg Studio. Gli Screen Codes presenti nel listato originale, sono stati manualmente sostituiti da quelli standard utilizzati da 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: Canestro – 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
10 poke650,128
100 rem *********************
110 rem * pallone... random *
120 rem *  per commodore 64 *
150 rem *                   *
160 rem *    spostamenti    *
170 rem * + = a sinistra.   *
180 rem * - = a destra.     *
190 rem *                   *
200 rem *********************
210 poke54296,15:poke54277,0:poke54278,248:poke54276,17
220 deffna(x)=rnd(1)*150
230 a$=" VVV ":poke53280,6
240 b$="{home}":fork=1to23:b$=b$+"{down}":next
250 x=17:p=197:print"{white}"
260 rem ************************
270 rem **                    **
280 rem ** di giovanni bellu' **
290 rem **                    **
300 rem **   s e r e g n o    **
310 rem **      (milano)      **
320 rem **                    **
330 rem ** via giardini n.20  **
340 rem **                    **
350 rem **  tel.0362/239580   **
360 rem **                    **
370 rem ************************
380 print"{clear}":q=54273:poke53281,0
390 poke59467,16:poke59466,16
400 a=1024:fork=0to39:pokea+k,91:pokea+999-k,102:next
410 fork=0to39:poke55296+k,5:next
420 fork=atoa+959step40:pokek,102:pokek+39,102:next:a=a+200
430 fork=55296to56295step40:pokek,5:pokek+39,5:next
440 fork=56256to56295:pokek,5:next
450 print"{home}{down}{down}{down}{down}{yellow}{right}{cm o}{cm o}{cm o}{cm o}{cm o}"tab(34)"{cm o}{cm o}{cm o}{cm o}{cm o}"
460 print"{home}{down}{down}{down}{down}{down}{down}{yellow}{right}{cm y}{cm y}{cm y}{cm y}{cm y}"tab(34)"{cm y}{cm y}{cm y}{cm y}{cm y}"
470 fork=1to5:pokea+k,81:pokeq,150:gosub690:forj=1tofna(1):next:pokea+k,32    
480 pokeq,0:next
490 ifrnd(1)<.3then470
500 ifrnd(1)<.4then520
510 w=a+6:s=1:goto570
520 fork=1to5:pokea+39-k,81:pokeq,50:gosub690:forj=1tofna(1):next
530 pokea+39-k,32:pokeq,0:next
540 ifrnd(1)<.3then520
550 ifrnd(1)<.4then470
560 w=a+33:s=-1
570 pl=pl+1:print"{home}{white}"tab(17)pl;pt"{yellow}":ifpl=11then720
580 pe=peek(w+40*y)
590 ifpe=86thengoto710
600 pokew+40*y,81:pokeq,fna(1)
610 gosub690
620 pokew+40*y,pe:pokeq,0
630 ify>9andy<13andrnd(1)>.8thenpe=peek(w+40*y+s):gosub780:goto580
640 ifrnd(1)<.5thenw=w+s:goto580
650 y=y+2:ify<19then580
660 ify>19thenop=102:goto680
670 op=32
680 pokew+40*(y-1),op:y=0:w=0:s=0:gosub800:goto470
690 x1=x:x=x-(peek(p)=43)+(peek(p)=40):ifx<1orx>34thenx=x1
700 printb$tab(x)a$:return
710 forl=0to255:pokeq,l:next:pokeq,0:pt=pt+1:print"{home}{white}"tab(20)pt"{green}{sh +}{sh +}{yellow}":y=0
711 goto250
720 print"{clear} hai preso "pt" palle su 10"
730 fork=1to20:geta$:next
740 print"{down}{down} giochi ancora (s/n) ?"
750 geta$:ifa$<>"s"anda$<>"n"then750
760 ifa$="s"thenrun
770 end:end
780 pokew+40*y+s,93:w=w-5*s:pokew+40*y,81:pokew+40*y+6*s,pe:pokew+40*y,32:s=-s
790 forkk=100to250step4:pokeq,kk:next:pokeq,0:return
800 forkk=1to50:pokeq,fna(1):next:pokeq,0:return
810 rem"{cm @}{cm t}{cm @}{cm t}{cm @}{cm t}{cm @}{cm t}{cm @}{cm t}N{cm @}{cm t}{cm @}{cm t}{cm @}{cm t}{cm @}{cm t}{cm @}{cm t}N{cm @}{cm t}{cm @}{cm t}{cm @}{cm t}{cm @}{cm t}{cm @}{cm t}N{cm @}{cm t}{cm @}{cm t}{cm @}{cm t}{cm @}{cm t}{cm @}{cm t}
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.