Apparso nei seguenti numeri: Il Monello n° Anno Il Monello n° Anno Il Monello n° Anno
Il listato pubblicato
Parte 1
Parte 2
Parte 3
Il programma
Presentazione
Gioco
Il nostro listato digitato
Qui di seguito trovate il codice da copiare sul programma CBM prg Studio Il codice originale é stato modificato affinchè possa essere letto da CBM prg Studio.
I caratteri speciali PETSCII (Screen Codes) presenti nel listato originale, sono stati singolarmente sostituiti da quelli standard utilizzati da CBM prg Studio.
Attenzione – Grazie alla segnalazione di più utenti, i caratteri “<” e “>” potrebbero venir sostituiti dai rispettivi encoding html “<” e “>” . Qualora li trovaste, sostituite manualmente questi valori direttamente su CBM prg Studio, altrimenti il programma non funzionerà.
Scusate per l’inconveniente tecnico.
10 rem ********************************
20 rem c=64 milano club
30 rem milano via sorrento 24
40 rem telefono 02-4566163
50 rem ********************************
60 rem filetto italiano (tris)
70 goto 520
80 rem giocatore croce
90 poke m,a:poke m+4,a:poke m+41,a
100 poke m+43,a:poke m+82,a:poke m+121,a
110 poke m+123,a:poke m+160,a:poke m+164,a
120 return
130 rem giocatore cerchio
140 poke m,233:poke m+4,223:poke m+160,95:poke m+164,105
150 for i=1 to 3
160 poke m+1,a:poke m+1+160,a
170 poke m+40*i,a:poke m+40*i+4,a
180 next i
190 poke m+82,32
200 return
210 for i=m+c to m+c+160 step 40
220 poke i,cc(n):poke i+1,cc(n):poke i+2,cc(n):poke i+3,cc(n):poke i+4,cc(n)
230 next i
240 return
250 rem sid
260 pokef1,42:poke f2,62
270 poke w,17
280 for d=1to60:next d:poke w,0
290 return
300 x=n:p(e)=x:m=s(e):on x gosub 90,90,140
310 gosub 210
320 for i=1to7 step 3
330 if p(i)<>p (i+1) then 360
340 if p(i)<>p (i+2) then 360
350 on p(i)+1 goto 360,1560,1560,1560
360 next i
370 for i=1 to 3
380 if p(i)<>p (i+3) then 410
390 if p(i)<>p (i+6) then 410
400 on p(i)+1 goto 410,1560,1560,1560
410 next i
420 if p(5)<>x then 450
430 if (p(1)=x) and (p(9)=x) then 1560
440 if (p(3)=x) and (p(7)=x) then 1560
450 for i=1 to 9
460 if p(i)=0 then 500
470 next i
480 print "gara pari!"
490 goto 1600
500 n=abs(n-4)
510 return
520 print "{home}{blue}" :poke 53281,1:poke 53280,0
530 w=54276:poke w,0
540 print tab(13) "{clear}{red} filetto {reverse on}{blue}"
550 for i=1to9:read s(i):next i
560 data 1114,1122,1130,1434,1442
570 data 1450,1754,1762,1770
580 print "{down}{down} dovete posizionare il vostro simbolo"
590 print " sulla griglia (tramite i numeri) in"
600 print " modo da ottenere un tris di simboli"
610 print " sulla stessa linea, orizzontale, ver-"
620 print " ticale od obliqua."
630 poke 54296,15:f1=54273:f2=54272:c=f2
640 poke w+1,128:poke w+2,16
650 a=160:cc(1)=6:cc(3)=10
660 print "{down} ricordatevi che giocate contro il "
670 print " computer, ed effettuerete una mossa"
680 print " per uno."
690 print "{down} x{blue} muove per primo."
700 y=3:z=1:ch=2
710 print "{down*2} premete {reverse on}{dark gray}f1{reverse on} {blue}per usare {reverse on}x{blue}"
720 print tab(10)"{reverse on}{dark gray}f3 {reverse on}{blue}per usare {reverse on}o{blue}"
730 get e$:if e$<>"{f1}" and e$<> "{f3}" then 730
740 if e$="{f1}" then y=1:z=3
750 poke198,0
760 print "{down*2} livello di gioco: {reverse on}{dark gray}f1 {reverse on}{blue} principiante"
770 print tab(18)" {reverse on}{dark gray}f3 {reverse on}{blue} quasi bravo"
780 get e$:if e$<>"{f1}" and e$<>"{f3}" then 780
790 if e$="{white}" then ch=1
800 print "{clear}{home}" :ct=int(14*rnd(0))+2
810 for i=1 to9:p(i)=0:next i
820 for i=1080 to 1960 step 40
830 poke i,a:poke i+c,ct
840 poke i+8,a:poke i+8+c,ct
850 next i
860 for i=1353 to 1375
870 pokei,a:poke i+c,ct:poke i+320,a:poke i+320+c,ct
880 next i
890 fori=1to9:poke s(i)+82,i+48
900 pokes(i)+82+c,0:nexti
910 n=1
920 if ch=2 then1050
930 if y=1 then 980
940 rem mossa del computer
950 e=int(9*rnd(0)+1):if p(e)<>0 then 950
960 gosub 300
970 rem mossa del giocatore
980 gosub 260
990 get e$:if e$=""then 990
1000 if e$<"1" or e$>"9" then 990
1010 e=val(e$): if p(e)<>0 then 980
1020 gosub 300
1030 on ch goto 950,1070
1040 rem mossa del computer
1050 if y=1 then 980
1060 rem
1070 if p(5)=0 then e=5:goto 1530
1080 if p(5)=x then 1150
1090 rem diagonals
1100 if p(1)=0 and p(9)=z then e=1:goto 1530
1110 if p(1)=z and p(9)=0 then e=9:goto 1530
1120 if p(3)=0 and p(7)=z then e=3:goto 1530
1130 if p(3)=z and p(7)=0 then e=7:goto 1530
1140 rem disegno delle colonne
1150 for k=1to3
1160 if p(k)=x or p(k+3)=x or p(k+6)=x then 1210
1170 if p(k)+p(k+3)+p(k+6)<>2*z then 1210
1180 if p(k)=0 then e=k:goto1530
1190 if p(k+3)=0 then e=k+3:goto 1530
1200 e=k+6:goto 1530
1210 next k
1220 rem linee
1230 for k=1to7 step 3
1240 if p(k)=x or p(k+1)=x or p(k+2)=x then 1290
1250 if p(k)+p(k+1)+p(k+2)<>2*z then 1290
1260 if p(l)=0 then e=k:goto 1530
1270 if p(k+1)=0 then e=k+1:goto 1530
1280 e=k+2:goto1530
1290 next k
1300 rem
1310 fork=1to3
1320 if p(k)=z or p(k+3)=z or p(k+6)=z then 1370
1330 if p(k)+p(k+3)+p(k+6)<>2*x then 1370
1340 if p(k)=0 then e=k:goto 1530
1350 if p(k+3)=0 then e=k+3: goto 1530
1360 e=k+6:goto 1530
1370 next k
1380 rem
1390 for k=1to7 step 3
1400 if p(k)=z or p(k+1)=z or p(k+2)=z then 1450
1410 if p(k)+p(k+1)+p(k+2)<>2*x then 1450
1420 if p(k)=0 then e=k:goto 1530
1430 if p(k+1)=0 then e=k+1:goto 1530
1440 e=k+2:goto 1530
1450 next k
1460 if p(5)=z then 1510
1470 if p(1)=0 and p(9)=x then e=1:goto 1530
1480 if p(1)=x and p(9)=0 then e=9:goto 1530
1490 if p(3)=0 and p(7)=x then e=3:goto 1530
1500 if p(3)=x and p(7)=0 then e=7:goto 1530
1510 goto 950
1520 rem
1530 gosub 300
1540 goto 980
1550 rem fine del gioco
1560 if x<>y then 1590
1570 print "hai vinto!!!"
1580 goto 1600
1590 print "ho vinto io!!!"
1600 for i=1to20
1610 poke f1,int(60*rnd(0)+30)
1620 poke f2,int(200*rnd(0)+10)
1630 gosub 270
1640 next i
1650 print"{down*22}giochi ancora?(s/n)";
1660 get e$:if e$="n" then 1700
1670 if e$<>"s" then 1660
1680 clr
1690 goto 520
1700 print "{home}"
1710 end