home *** CD-ROM | disk | FTP | other *** search
Wrap
10 REM *********************** 20 REM * PUZZLE * 30 REM * BY ROBERT DEVINE * 40 REM * COPYRIGHT (C) 1989 * 50 REM * BY GRUPPO EDIT. JCE * 60 REM * & MICROSPARC, INC. * 70 REM *********************** 80 IF PEEK(104) < >96 THEN POKE 103,1: POKE 104,96: POKE 24576,0: PRINT CHR$(4);"RUN PUZZLE" 90 ONERR GOTO 1180 100 HOME 110 PRINT : PRINT CHR$(21): GOSUB 860: POKE 216,0: DIM A$(16): GOSUB 1050 120 G1$ = " ABCDEFGHIJKLMNO":G2$ = "ABCDEFGHIJKLMNOP": FOR X = 1 TO 16:A$(X) = "": NEXT X 130 HGR :A$ = "CIAO":VT = 4:HT = 1: GOSUB 1020:A$ = "IL TUO NOME ?":VT = 6:HT = 1: GOSUB 1020 140 VTAB 24: HTAB 16: PRINT "(MAX 9 CAR)";: VTAB 22: HTAB 16: INPUT N$: IF LEN(N$) >9 THEN HOME : PRINT CHR$(7): GOTO 140 150 E = 0: GOSUB 1160: IF E = 1 THEN 140 160 HOME : HGR :A$ = "VUOI":VT = 2:HT = 0: GOSUB 1020:A$ = "LE ISTRUZIONI":VT = 4: GOSUB 1020:A$ = N$ +" ?":VT = 6: GOSUB 1020: VTAB 22: HTAB 16: INPUT A$: IF LEFT$(A$,1) = "N" THEN 270 170 HGR2 :A$ = "IL PUZZLE":VT = 1:HT = 0: GOSUB 1020:A$ = "SI COMPONE DI":VT = 3:HT = 21: GOSUB 980:A$ = "UN QUADRATO DI 4 X 4 ":VT = 5:HT = .2: GOSUB 980 180 A$ = "LE LETTERE":VT = 7:HT = 0: GOSUB 980:A$ = "ABCDEFGHIJKLMNOP":VT = 4: GOSUB 1020:A$ = "SONO SPARPAGLIATE NEL QUADRATO E":VT = 11: GOSUB 980 190 A$ = "TU DEVI RIMETTERLE IN":VT = 13: GOSUB 980:A$ = "ORDINE. CI SONO DUE PUZZLE DIVERSI":VT = 15: GOSUB 980:A$ = "E TU PUOI SCEGLIERE TRA":VT = 17: GOSUB 980 200 A$ = "PREMI RETURN PER CONTINUARE":VT = 21:HT = 7: GOSUB 980: GET A$: HGR2 :A$ = "PUZZLE UNO":VT = 0:HT = 0: GOSUB 1020:G = 1: GOSUB 900 210 A$ = "PER MUOVERE PREMI":VT = 5:HT = 0: GOSUB 980:A$ = "IL TASTO DELLA LETTERA":VT = 7: GOSUB 980:A$ = "VICINA AD":VT = 9: GOSUB 980:A$ = "UNA CASELLA":VT = 11: GOSUB 980:A$ = "VUOTA E LA LETTERA":VT = 13: GOSUB 980 220 A$ = "VIENE SPOSTATA NELLO":VT = 15: GOSUB 980:A$ = "SPAZIO VUOTO":VT = 17: GOSUB 980:A$ = "PREMI RETURN PER CONTINUARE":VT = 22:HT = 7: GOSUB 980: GET A$ 230 HGR2 :A$ = "PUZZLE DUE":VT = 0:HT = 0: GOSUB 1020:G = 2: GOSUB 900:A$ = "PER MUOVERE DEVI":VT = 3:HT = 0: GOSUB 980:A$ = "RUOTARE 4 LETTERE IN":VT = 4: GOSUB 980:A$ = "SENSO ANTIORARIO" 235 VT = 5: GOSUB 980 240 A$ = "PER FAR QUESTO":VT = 8: GOSUB 980:A$ = "SCEGLI LA LETTERA":VT = 9: GOSUB 980:A$ = "IN ALTO A SINISTRA DELLE":VT = 10: GOSUB 980:A$ = "4 CHE VUOI RUOTARE":VT = 11: GOSUB 980 250 A$ = "PER ESEMPIO SE SCEGLI":VT = 13: GOSUB 980:A$ = "LA LETTERA G":VT = 14: GOSUB 980:A$ = "IL QUADRATO CAMBIA IN":VT = 15: GOSUB 980 260 A$ = "A B C D":VT = 17:HT = 5: GOSUB 980:A$ = "E F H L":VT = 18:HT = 5: GOSUB 980:A$ = "I J G K":VT = 19:HT = 5: GOSUB 980 265 A$ = "M N O P":VT = 20:HT = 5: GOSUB 980:A$ = "PREMI RETURN PER CONTINUARE":VT = 22:HT = 7: GOSUB 980: GET A$: PRINT 270 HGR2 :T = 0: FOR X = 0 TO 9 STEP 2:T = T +1:A$ = "BUONA FORTUNA":VT = X:HT = 6: ON T GOSUB 1090,1100,1110,1120,1120: GOSUB 1020: NEXT X: GOSUB 1130 280 TEXT : HOME : VTAB 10: PRINT "QUALE PUZZLE SCEGLI ?": PRINT : PRINT "1.PUZZLE N.1-MUOVI UNA LETTERA PER VOLTA": PRINT 285 PRINT "2.PUZZLE N.2-RUOTI 4 LETTERE ALLA VOLTA.": PRINT : PRINT "SCEGLI ";: GET G$: IF G$ = CHR$(27) THEN TEXT : HOME : END 290 G = VAL(G$): IF G <1 OR G >2 THEN 280 300 GOSUB 880 310 VTAB 22: HTAB 10: INVERSE : PRINT " INIZIA A GIOCARE ": NORMAL 320 FOR X = 1 TO 16 330 A = INT( RND(1) *16 +65): FOR Y = 1 TO 16: ON (A$(Y)) = CHR$(A) GOTO 330: NEXT Y 340 A$(X) = CHR$(A): NEXT X:TR = 0: IF G = 2 THEN 370 350 FOR X = 1 TO 16: IF A$(X) = "P" THEN A$(X) = " " 360 NEXT X 370 GOSUB 730: GOSUB 1140 380 VTAB 22: HTAB 33: PRINT "MUOVI "TR: VTAB 22: PRINT "QUAL'E' LA TUA MOSSA, ";N$;" ";: GET M$: GOSUB 1140 390 IF M$ = "0" THEN 700 400 TR = TR +1: VTAB 22: HTAB 33: PRINT "MUOVI "TR 410 FOR X = 1 TO 16: IF M$ = A$(X) THEN M = X: GOTO 430 420 NEXT X: GOSUB 760: GOTO 380 430 T = 0: IF G = 2 AND (M/4 = INT(M/4) OR M >11) THEN GOSUB 760: GOTO 380 440 IF G = 2 THEN 780 450 REM GAME 1 460 ON M GOTO 470,480,480,490,500,510,510,520,500,510,510,520,530,540,540,550 470 GOSUB 560: GOSUB 600: GOTO 640 480 GOSUB 560: GOSUB 580: GOSUB 600: GOTO 640 490 GOSUB 580: GOSUB 600: GOTO 640 500 GOSUB 560: GOSUB 600: GOSUB 620: GOTO 640 510 GOSUB 560: GOSUB 580: GOSUB 600: GOSUB 620: GOTO 640 520 GOSUB 580: GOSUB 600: GOSUB 620: GOTO 640 530 GOSUB 560: GOSUB 620: GOTO 640 540 GOSUB 560: GOSUB 580: GOSUB 620: GOTO 640 550 GOSUB 580: GOSUB 620: GOTO 640 560 IF A$(M +1) = " " THEN A$(M +1) = M$:A$(M) = " ":T = 1:A = M +1 570 RETURN 580 IF A$(M -1) = " " THEN A$(M -1) = M$:A$(M) = " ":T = 1:A = M -1 590 RETURN 600 IF A$(M +4) = " " THEN A$(M +4) = M$:A$(M) = " ":T = 1:A = M +4 610 RETURN 620 IF A$(M -4) = " " THEN A$(M -4) = M$:A$(M) = " ":T = 1:A = M -4 630 RETURN 640 IF T = 0 THEN GOSUB 760: GOTO 380 650 POKE 232,248: POKE 233,9:M = 0: FOR X = 1 TO 4: FOR Y = 1 TO 4:M = M +1: IF A$(M) = " " THEN XDRAW ASC(A$(A)) -51 AT YC(Y),XC(X): GOTO 670 660 DRAW ASC(A$(M)) -51 AT YC(Y),XC(X) 670 NEXT Y,X 680 FOR X = 1 TO 16: ON (A$(X) < > MID$ (G1$,X,1)) GOTO 380: NEXT X 690 VTAB 22: HTAB 10: INVERSE : PRINT " >>> HAI VINTO !!!! <<< ": NORMAL : GOSUB 1130 700 GOSUB 1140: VTAB 22: PRINT "VUOI UN ALTRO PUZZLE "N$" ";: INPUT A$ 710 IF A$ = "S" OR A$ = "SI" THEN FOR X = 1 TO 16:A$(X) = "": NEXT X: GOTO 280 720 TEXT : HOME : VTAB 12: PRINT "BYE "N$" E' STATO FACILE": VTAB 23: END 730 POKE 232,248: POKE 233,9:M = 0: FOR X = 1 TO 4: FOR Y = 1 TO 4:M = M +1: IF A$(M) = " " THEN 750 740 DRAW ASC(A$(M)) -51 AT YC(Y),XC(X) 750 NEXT Y,X: RETURN 760 VTAB 22: PRINT CHR$(7); CHR$(7);: INVERSE : PRINT " MOSSA NON VALIDA "N$" !!! RIPROVA ": NORMAL :TR = TR -1: GOSUB 1130: GOSUB 1140: RETURN 770 REM GAME 2 780 M1$ = A$(M):M2$ = A$(M +1):M3$ = A$(M +4):M4$ = A$(M +5) 790 A = 0: FOR X = 1 TO 4: FOR Y = 1 TO 4:A = A +1: IF A < >M THEN 840 800 XDRAW ASC(A$(M)) -51 AT YC(Y),XC(X):A$(M) = M2$: DRAW ASC(A$(M)) -51 AT YC(Y),XC(X) 810 XDRAW ASC(A$(M +1)) -51 AT YC(Y +1),XC(X):A$(M +1) = M4$: DRAW ASC(A$(M +1)) -51 AT YC(Y +1),XC(X) 820 XDRAW ASC(A$(M +4)) -51 AT YC(Y),XC(X +1):A$(M +4) = M1$: DRAW ASC(A$(M +4)) -51 AT YC(Y),XC(X +1) 830 XDRAW ASC(A$(M +5)) -51 AT YC(Y +1),XC(X +1):A$(M +5) = M3$: DRAW ASC(A$(M +5)) -51 AT YC(Y +1),XC(X +1):X = 4:Y = 4 840 NEXT Y,X 850 FOR X = 1 TO 16: ON (A$(X) < > MID$ (G2$,X,1)) GOTO 380: NEXT X: GOTO 690 860 PRINT CHR$(4)"BLOAD BIG.LETTERS": PRINT CHR$(4)"BLOAD SMALL.LETTERS": SCALE= 1: ROT= 0 870 XC(1) = 16:XC(2) = 51:XC(3) = 86:XC(4) = 121:YC(1) = 21:YC(2) = 61:YC(3) = 101:YC(4) = 141: RETURN 880 HGR : HCOLOR= 3: FOR X = 45 TO 125 STEP 40: HPLOT X,5 TO X,145: NEXT X: FOR X = 40 TO 110 STEP 35: HPLOT 5,X TO 165,X: NEXT X 890 HCOLOR= 5: FOR X = 0 TO 165 STEP 165: FOR Y = X TO X +5: HPLOT Y,0 TO Y,150: NEXT Y,X: FOR X = 0 TO 145 STEP 145: FOR Y = X TO X +5: HPLOT 0,Y TO 165,Y: NEXT Y,X 900 HCOLOR= 3: FOR X = 214 TO 242 STEP 14: HPLOT X,2 TO X,50: NEXT X: FOR X = 14 TO 38 STEP 12: HPLOT 200,X TO 256,X: NEXT X 910 HCOLOR= 5: FOR X = 198 TO 256 STEP 58: FOR Y = X TO X +1: HPLOT Y,0 TO Y,51: NEXT Y,X: FOR X = 0 TO 50 STEP 50: FOR Y = X TO X +1: HPLOT 200,Y TO 256,Y: NEXT Y,X 920 HCOLOR= 3:A$ = "PER VINCERE":VT = 8:HT = 28: GOSUB 980:A$ = "DEVI METTERE":VT = 10:HT = 27: GOSUB 980:A$ = "LE LETTERE IN":VT = 12:HT = 27: GOSUB 980:A$ = "QUESTO ORDINE":VT = 14:HT = 27: GOSUB 980 930 IF G = 2 THEN 950 940 A$ = " A B C":VT = .7:HT = 29.4: GOSUB 980:A$ = "D E F G":VT = 2.2:HT = 29.4: GOSUB 980:A$ = "H I J K":VT = 3.7:HT = 29.4: GOSUB 980:A$ = "L M N O":VT = 5.2:HT = 29.4: GOSUB 980: GOTO 960 950 A$ = "A B C D":VT = .7:HT = 29.4: GOSUB 980:A$ = "E F G H":VT = 2.2:HT = 29.4: GOSUB 980:A$ = "I J K L":VT = 3.7:HT = 29.4: GOSUB 980:A$ = "M N O P":VT = 5.2:HT = 29.4: GOSUB 980 960 A$ = "PER FINIRE":VT = 17:HT = 28: GOSUB 980:A$ = "SCEGLI 0":VT = 19:HT = 28: GOSUB 980 970 RETURN 980 POKE 232,0: POKE 233,8:HT = HT *7:VT = VT *8: FOR L = 1 TO LEN(A$):A = ASC( MID$ (A$,L,1)) -53 990 IF A > -6 AND A <5 THEN A = A +6 1000 ON (A <1) GOTO 1010: DRAW A AT (HT -7) +(L *7),VT:M = PEEK( -16336) - PEEK( -16336) 1010 NEXT L: RETURN 1020 POKE 232,248: POKE 233,9:HT = HT *13:VT = VT *17: FOR L = 1 TO LEN(A$):A = ASC( MID$ (A$,L,1)) -51: ON (A = -19) GOTO 1040: IF A = 12 THEN A = 10 1030 DRAW A AT (HT -13) +(L *13),VT:M = PEEK( -16336) + PEEK( -16336) 1040 NEXT L: RETURN 1050 HGR2 : HCOLOR= 7 1060 A$ = "PUZZLE":VT = 0:HT = 7: GOSUB 1020:A$ = "SCRITTO DA":VT = 2:HT = 5.5: GOSUB 1020:A$ = "ROBERT DEVINE":VT = 4:HT = 4: GOSUB 1020:A$ = "COPYRIGHT MCMLXXXIX":VT = 6:HT = 1: GOSUB 1020:A$ = "BY APPLEDISK":VT = 8:HT = 4: GOSUB 1020 1080 FOR T = 1 TO 4000: NEXT : RETURN 1090 HCOLOR= 1: RETURN 1100 HCOLOR= 2: RETURN 1110 HCOLOR= 5: RETURN 1120 HCOLOR= 7: RETURN 1130 FOR T = 1 TO 1500: NEXT T: RETURN 1140 VTAB 22: PRINT " ": IF M$ = >"a" AND M$ <"z" THEN M$ = CHR$( ASC(M$) -32) 1150 RETURN 1160 FOR T = 1 TO LEN(N$): IF MID$ (N$,T,1) <"A" OR MID$ (N$,T,1) >"Z" THEN E = 1 1170 NEXT T: RETURN 1180 PRINT "I FILE DELLE FIGURE NON SONO SUL DISCO": VTAB 23: END