Il Monello BIT – Filetto di Tris

Loading

Filetto di Tris

Apparso nei seguenti numeri: Il Monello n°   Anno Il Monello n°   Anno Il Monello n°   Anno  

Il listato pubblicato

 

Il programma

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 “&lt” e “&gt” . 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

Il file .PRG del listato

Clicca qui per scaricarlo

Provalo direttamente sull’emulatore! Clicca sul pulsante per avviare

Downloading…

L’emulatore C64 online è ad utilizzo libero solo per usi non-commerciali. Leggere le license agreement per ulteriori dettagli.

Ringraziamo l’autore per averlo creato e messo a disposizione!

Copyright © 2021 Thomas Hochgoetz. Tutti i diritti riservati.

https://c64emulator.111mb.de/

 

Ritorna alla pagina precedente