16 – Rompicapo
Apparso da pagina 105 fino a pagina 111 de “Il libro dei giochi del Commodore 64”
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 “<” 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 **rompicapo**
20 dimc%(5,2),p%(5,3):g=1024:gc=g+142:h=55296:hc=h+142
30 forj=1to8:readcc%(j):next:forj=0to4:readsc%(j):next
40 deffnr(x)=int(rnd(1)*x)+1
50 print"{clear}":poke53280,6:poke53281,1:input"{blue}{down} pezzi (3-6)";np$
60 np=val(np$):ifnp<3ornp>6then50
70 input"{down} colori (3-8)";nc$
80 nc=val(nc$):ifnc<3ornc>8then50
90 input"{down} forme (1-4)";ns$
100 ns=val(ns$):ifns<1orns>4then50
110 forj=0tonp-1
120 c%(j,0)=fnr(nc)
130 c%(j,1)=fnr(ns)
140 p%(j,2)=0:p%(j,3)=0
150 next
160 print"{home}"
170 j=0
180 print"{home}{down}{right*3}{blue}tentativo n.";j+1
190 fork=0tonp-1
200 ln=20:gosub1000
210 printtab(4)"{blue}colore? "
220 geta$:ifa$=""then220
230 p%(k,0)=asc(a$)-48
240 ifp%(k,0)<1orp%(k,0)>ncthen200
250 gosub2000
260 ln=22:gosub1000
270 printtab(10)p$
280 ifns=1then420
290 ln=20:gosub1000
300 printtab(4)"{blue}forma? "
310 geta$:ifa$=""then310
320 ifa$<>"a"anda$<>"s"anda$<>"x"anda$<>"z"then310
330 ifns=32anda$="x"then310
340 ifns=2anda$="z"orns=2anda$="x"then310
350 ifa$="a"thenp%(k,1)=1
360 ifa$="s"thenp%(k,1)=2
370 ifa$="z"thenp%(k,1)=3
380 ifa$="x"thenp%(k,1)=4
390 gosub2000
400 ln=22:gosub1000
410 printtab(10)p$
420 next
430 ln=20:gosub1000
440 printtab(4)"{red}confermi? (s/n)"
450 geta$:ifa$=""then450
460 ln=22:gosub1000:printtab(10)" "
470 ifa$="s"then490
480 fork=0tonp-1:p%(k,1)=0:next:goto190
490 ln=j+3:gosub1000
500 printtab(10)p$
510 fork=0tonp-1
520 ifp%(k,0)=c%(k,0)thenp%(k,2)=1:p%(k,3)=6:c%(k,2)=1
530 ifp%(k,1)=c%(k,1)thenp%(k,2)=1:p%(k,3)=p%(k,3)or5:c%(k,2)=1
540 next
550 fork=0tonp-1
560 ifp%(k,2)=1then620
570 pc=p%(k,0):ps=p%(k,1)
580 m=0
590 ifc%(m,2)=1then710
600 ifpc=c%(m,0)andps=c%(m,1)thenp%(k,2)=1:p%(k,3)=3:c%(m,2)=1:goto620
610 m=m+1:ifm
Il file .PRG del listato
Provalo direttamente sull'emulatore! Clicca sul pulsante per avviare!
Downloading...