10 REM BLUSY SHOP 20 REM ---------- 30 REM PROGRAMADO 40 REM POR 50 REM JORDI SALA 60 REM ---------- 70 REM PARA 80 REM LOS MIEMBROS DEL 90 REM FORUM DE KAROSHI 100 REM ---------- 110 ' 120 ' 130 REM PRESENTACION 140 ' 150 ' 160 ' 170 KEY OFF:SCREEN 1,2,0:CLEAR200:COLOR 5,1,1:WIDTH 32:PA=1:Y=104:V=3:X=32:H=0 180 PLAY"V15L64T255O5" 190 PLAY"BACADC","O5T255L64V15CCDCBA" 200 KEY 1,"SCREEN 0"+CHR$(13) 210 A$=" B L U S Y ":B$=" S H O P ":C$=" Open Source ":D$=" para los miembros del Forum " 220 FOR I=0 TO16:LOCATE I,7:PRINTB$:NEXTI 230 FOR I=0 TO 5:LOCATE I,7:PRINTA$:NEXTI 240 FOR I=0 TO 9:LOCATE I,10:PRINTC$:NEXTI 250 FOR I=23 TO3 STEP-1:LOCATE I,13:PRINTD$:NEXTI 260 LOCATE 5,20 270 PRINT "HIT SPACE" 280 IF STRIG(0)<>-1 THEN 280 290 GOSUB 4230 300 SCREEN 2,2:GOSUB 4770:OPEN"GRP:"AS1 340 COLOR 9 350 PRESET(90,60):PRINT#1,"LEVEL 01" 360 PRESET(91,60):PRINT#1,"LEVEL 01" 380 COLOR 12 390 PRESET(90,80):PRINT#1,"LEVEL 02" 400 PRESET(91,80):PRINT#1,"LEVEL 02" 410 COLOR 14 420 PRESET(90,100):PRINT#1,"LEVEL 03" 430 PRESET(91,100):PRINT#1,"LEVEL 03" 440 GOSUB 4830 450 D=STICK(0)+STICK(1) 460 IF STRIG(0)=-1 THEN 520 470 IF M=60 THEN M=0 480 IF D=5 THEN LINE(80,55+M)-(170,70+M),0,B:M=M+20 490 IF M=60 THEN M=0 500 LINE(80,55+M)-(170,70+M),15,B 510 GOTO 450 520 GOSUB 4230:SCREEN 1:IF M=0 THEN L=1 530 IF M=20 THEN L=2 540 IF M=40 THEN L=3 550 GOSUB 4060 560 ' 570 ' 580 ' 590 REM GRAFISMO 600 ' 610 ' 611 PRINT"wait please..." 620 GOSUB 4240:COLOR15,1,1 630 CLS:RESTORE 3600 650 FOR I=776 TO 935:READ Q:VPOKE I,Q:NEXTI 660 RESTORE 3830:FOR I=952 TO 967:READ Q:VPOKE I,Q:NEXTI 670 RESTORE 3600 680 FOR I=0 TO 5:A$="":FOR I1=1 TO 32:READ A:A$=A$+CHR$(A):NEXTI1:SPRITE$(I)=A$:NEXTI 690 ' 700 ' 710 ' 720 ' 730 REM PANTALLA 740 ' 750 ' 760 ' 770 GOSUB 4770:IF E>100 THEN GOSUB 4170 780 CLS:WIDTH 28:H=0 790 PUT SPRITE 1,(0,209) 800 PUT SPRITE 0,(0,209) 810 PRINT"xwwwwwwwwwwwwwwwwwwwwwwwwwwx"; 820 FOR I=1 TO 20:LOCATE 0,I 830 PRINT"x x"; 840 NEXT I 850 PRINT"xwwwwwwwwwwwwwwwwwwwwwwwwwwx"; 860 IF L=1 OR L=2 THEN 880 870 LOCATE 19,12:PRINT"лл":LOCATE 19,11:PRINT"лл":LOCATE 19,8:PRINT"лл":LOCATE 19,7:PRINT"лл" 880 IF L=2 THEN LOCATE 11,17:PRINT"лл":LOCATE 11,18:PRINT"лл" 890 LOCATE 14,1:PRINT" лллллллллллл" 900 LOCATE 14,2:PRINT" лллллллллллл" 910 LOCATE 16,3:PRINT" лллллллллл" 920 LOCATE 16,4:PRINT" лллллллллл" 930 LOCATE 18,5:PRINT" лллллллл" 940 LOCATE 18,6:PRINT" лллллллл" 950 LOCATE 21,7:PRINT"лллллл" 960 LOCATE 21,8:PRINT"лллллл" 970 LOCATE 22,9 :PRINT" лллл" 980 LOCATE 22,10:PRINT" лллл" 990 LOCATE 24,11:PRINT" лл" 1000 LOCATE 24,12:PRINT" лл" 1010 LOCATE 0,2 1020 PRINT"xwwwwwwwwwwwwwwwwwwwwwwwwwwx"; 1030 LOCATE 2,1:PRINT"LEVEL TIME HITS 00 " 1040 LOCATE 7,1:PRINT L:LOCATE24,5:PRINTPA; 1050 ' 1060 ' 1070 ' 1080 REM CREACION DE PAN. 1090 ' 1100 ' 1110 ' 1120 BEEP:PLAY"V15A":BEEP 1130 R=RND(-TIME):F=INT(RND(1)*4) 1140 IF PA=2 THEN 1640 1150 IF PA=3 THEN 1770 1160 IF PA=4 THEN 1900 1170 IF PA=5 THEN 2070 1180 IF PA=6 THEN 2200 1190 IF PA=7 THEN 1410 1200 IF PA=8 THEN 1510 1210 IF PA=9 AND L<>4 THEN L=L+1:PA=1:INTERVAL OFF:GOSUB 4360 1220 IF PA=9 AND L=4 THEN SCREEN 0:CLS:LOCATE11,10:PRINT"CONGRATULATIONS":COLOR 6,15,15:FOR I=1 TO 4000:NEXT I:RUN 1230 IF PA=1 THEN 1240 1240 ' 1250 ' 1260 ' 1270 REM PANTALLA 1 1280 ' 1290 ' 1300 ' 1310 INTERVAL OFF:LOCATE 15,15:PRINT"egikegmomoeg" 1320 LOCATE 15,16:PRINT"fhjlfhnpnpfh" 1330 LOCATE 15,17:PRINT"ikegmomoegik" 1340 LOCATE 15,18:PRINT"jlfhnpnpfhjl" 1350 LOCATE 15,19:PRINT"momoegikikeg" 1360 LOCATE 15,20:PRINT"npnpfhjljlfh" 1370 GOSUB 3940 1380 GOTO 2040 1390 ' 1400 ' pantalla 7 1410 ' 1420 INTERVAL OFF :LOCATE 15,15:PRINT" ik momomo" 1430 LOCATE 15,16:PRINT" jl npnpnp" 1440 LOCATE 15,17:PRINT"ikeg moikik" 1450 LOCATE 15,18:PRINT"jlfh npjljl" 1460 LOCATE 15,19:PRINT"moeg egikeg" 1470 LOCATE 15,20:PRINT"npfh fhjlfh" 1480 GOSUB 3940 1490 GOTO 2040 1500 ' 1510 REM PANTALLA 8 1520 ' 1530 INTERVAL OFF :LOCATE 15,15:PRINT" egmoikmo" 1540 LOCATE 15,16:PRINT" fhnpjlnp" 1550 LOCATE 15,17:PRINT" egmomoegik" 1560 LOCATE 15,18:PRINT" fhnpnpfhjl" 1570 LOCATE 15,19:PRINT" moikegmoeg" 1580 LOCATE 15,20:PRINT" npjlfhnpfh" 1590 GOSUB 3940 1600 GOTO 2040 1610 ' 1620 ' 1630 ' 1640 REM PANTALLA 2 1650 ' 1660 ' 1670 ' 1680 INTERVAL OFF:LOCATE 15,15:PRINT" ik ik ik" 1690 LOCATE 15,16:PRINT" jl jl jl" 1700 LOCATE 15,17:PRINT" momomomomo" 1710 LOCATE 15,18:PRINT" npnpnpnpnp" 1720 LOCATE 15,19:PRINT" egegikmomo" 1730 LOCATE 15,20:PRINT" fhfhjlnpnp" 1740 GOSUB 3940 1750 GOTO 2040 1760 ' 1770 ' 1780 REM PANTALLA 3 1790 ' 1800 ' 1810 ' 1820 INTERVAL OFF:LOCATE 15,15:PRINT"egeg ikik" 1830 LOCATE 15,16:PRINT"fhfh jljl" 1840 LOCATE 15,17:PRINT"ikikmomoegeg" 1850 LOCATE 15,18:PRINT"jljlnpnpfhfh" 1860 LOCATE 15,19:PRINT"momoegikmoik" 1870 LOCATE 15,20:PRINT"npnpfhjlnpjl" 1880 GOSUB 3940 1890 GOTO 2040 1900 ' 1910 ' 1920 REM PANTALLA 4 1930 ' 1940 ' 1950 ' 1960 INTERVAL OFF:LOCATE 15,15:PRINT"ik ikeg" 1970 LOCATE 15,16:PRINT"jl jlfh" 1980 LOCATE 15,17:PRINT"eg egikegik" 1990 LOCATE 15,18:PRINT"fh fhjlfhjl" 2000 LOCATE 15,19:PRINT"ikikegmoikmo" 2010 LOCATE 15,20:PRINT"jljlfhnpjlnp" 2020 GOSUB 3940 2030 GOTO 2040 2040 ' 2050 ' 2060 ' 2070 REM PANTALLA 5 2080 ' 2090 ' 2100 ' 2110 INTERVAL OFF:LOCATE 15,15:PRINT" momo " 2120 LOCATE 15,16:PRINT" npnp " 2130 LOCATE 15,17:PRINT" ikegegik " 2140 LOCATE 15,18:PRINT" jlfhfhjl " 2150 LOCATE 15,19:PRINT"egmoikikmoeg" 2160 LOCATE 15,20:PRINT"fhnpjljlnpfh" 2170 GOSUB 3940 2180 GOTO 2040 2190 ' 2200 REM PANTALLA 6 2210 ' 2220 INTERVAL OFF:LOCATE 15,15:PRINT" moikmo " 2230 LOCATE 15,16:PRINT" npjlnp " 2240 LOCATE 15,17:PRINT"ikegikikmoik" 2250 LOCATE 15,18:PRINT"jlfhjljlnpjl" 2260 LOCATE 15,19:PRINT"egmoikikmoeg" 2270 LOCATE 15,20:PRINT"fhnpjljlnpfh" 2280 GOSUB 3940 2290 GOTO 2040 2300 ' 2310 ' 2320 ' 2330 ' 2340 REM MOVIMENT 2350 ' 2360 ' 2370 ' 2380 ON INTERVAL=60 GOSUB 4030 2390 INTERVAL ON 2400 D=STICK(0)+STICK(1):P=STRIG(0)+STRIG(1) 2410 IF H=15 THENPA=PA+1:GOTO 730 2420 IF T=0 THEN P=-1:H=H-1 2430 IF P=-1 THEN P=0:GOSUB 4060:GOSUB 4150:GOTO 2500 2440 PUT SPRITE 0,(X,Y-1),4,F 2450 IF D=1 AND Y>29 THEN FOR I=1 TO16:Y=Y-1:PUT SPRITE 0,(X,Y-1),4,F:NEXTI 2460 IF D=5 AND Y<143 THEN FOR I=1 TO 16:Y=Y+1:PUT SPRITE 0,(X,Y-1),4,F:NEXTI 2470 IF Y<115 EQV (L>2 IMP (Y+112<>200 AND Y+112<>168))THEN PUT SPRITE 1,(112+Y,104),15,5 2480 IF Y>115 OR (L>2 AND (Y+112=200 OR Y+112=168))THEN PUT SPRITE 1,(0,209) 2490 GOTO 2400 2500 ' 2510 ' 2520 ' 2530 REM LANZADO 2540 ' 2550 ' 2560 ' 2570 PUT SPRITE 0,(X,Y-1),4,F 2580 X=X+8:A=6144+X/8+Y*4 2590 IF VPEEK(A+2)<>32 THEN 2610 2600 GOTO 2570 2610 ' 2620 ' 2630 GOSUB 4230:IF VPEEK(A+2)<110 THEN 2690 2640 MM=Y 2650 PUT SPRITE 0,(X,Y-1),4,F 2660 Y=Y+8:A=6144+X/8+Y*4 2670 IF VPEEK(A+32)<>32 THEN 3360 2680 GOTO 2650 2690 ' 2700 ' 2710 ' 2720 REM DIRECTO 2730 ' 2740 PUT SPRITE 0,(X,Y-1),4,F 2750 C=0:IF VPEEK(A+2)=101 AND F=1 THENC=1 2760 IF VPEEK(A+2)=105 AND F=2 THENC=1 2770 IF VPEEK(A+2)=109 AND F=3 THENC=1 2780 IF F=0 THEN C=1 2790 IF C=0 THEN 3850 2800 ' 2810 IF VPEEK(A+2)=120THEN 2830 2820 A=A+1:GOTO 2810 2830 YY=F:IF VPEEK(A)=101 THEN F=1 2840 IF VPEEK(A)=105 THEN F=2 2850 IF VPEEK(A)=109 THEN F=3 2860 X=32:GOSUB 4540:PUT SPRITE 0,(X,Y-1),4,F 2870 GOTO 2880 2880 ' 2890 ' 2900 ' 2910 REM CAER 2920 ' 2930 ' 2940 ' 2950 FOR I=6779 TO 6769 STEP -2 2960 IF VPEEK(I)=32 AND VPEEK(I-64)<>32 THEN GOSUB 3050 2970 NEXT I 2980 FOR I=6715 TO 6705 STEP -2 2990 IF VPEEK(I)=32 AND VPEEK(I-64)<>32 THEN GOSUB 3050 3000 NEXT I 3010 FOR I=6651 TO 6641 STEP -2 3020 IF VPEEK(I)=32 AND VPEEK(I-64)<>32 THEN GOSUB 3050 3030 NEXT I 3040 GOTO 2340 3050 ' 3060 ' 3070 ' 3080 REM EXISTE CAIDA 3090 ' 3100 ' 3110 IF VPEEK(I+64)<>32 THEN 3250 3120 BEEP:PLAY"V15CC":BEEP 3130 VPOKE I+64,VPEEK(I-64) 3140 VPOKE I-64,32 3150 VPOKE I+65,VPEEK(I-63) 3160 VPOKE I-63,32 3170 VPOKE I+96,VPEEK(I-32) 3180 VPOKE I-32,32 3190 VPOKE I+97,VPEEK(I-31) 3200 VPOKE I-31,32 3210 RETURN 3220 ' 3230 ' 3240 ' 3250 BEEP:PLAY"V15CC":BEEP 3260 VPOKE I,VPEEK(I-64) 3270 VPOKE I-64,32 3280 VPOKE I+1,VPEEK(I-63) 3290 VPOKE I-63,32 3300 VPOKE I+32,VPEEK(I-32) 3310 VPOKE I-32,32 3320 VPOKE I+33,VPEEK(I-31) 3330 VPOKE I-31,32 3340 RETURN 3350 ' 3360 'DEFINE CUAL ES 3370 GOSUB 4230 3380 C=0:IF VPEEK(A+32)=101 AND F=1 THENC=1 3390 IF VPEEK(A+32)=105 AND F=2 THENC=1 3400 IF VPEEK(A+32)=109 AND F=3 THENC=1 3410 IF F=0 THEN C=1 3420 ' 3430 IF C=0 THEN 3850 3440 IF VPEEK(A+32)<>32 AND VPEEK(A+32)<>101 AND VPEEK(A+32)<>105 AND VPEEK(A+32)<>109 THEN 3850 3450 ' 3460 IF VPEEK(A+32)=32 THEN 3480 3470 A=A+32:GOTO 3460 3480 IF VPEEK(A-64)=101 THEN F=1 3490 IF VPEEK(A-64)=105 THEN F=2 3500 IF VPEEK(A-64)=109 THEN F=3 3510 IF VPEEK(A-96)=32 THEN F=0 3520 X=32:SWAP Y,MM:PUT SPRITE 0,(X,Y-1),4,F 3530 FOR I=1 TO 3:A=A-64 3540 VPOKE A,VPEEK(A-64) 3550 VPOKE A+1,VPEEK(A-63) 3560 VPOKE A+32,VPEEK(A-32) 3570 VPOKE A+33,VPEEK(A-31) 3580 NEXTI 3590 GOTO 2380 3600 DATA 127,128,174,157,187,183,174,157 3610 DATA 187,183,174,157,187,128,127,0 3620 DATA 252,2,234,218,186,114,234,218 3630 DATA 186,114,234,218,178,2,252,0 3640 DATA 127,255,255,255,240,247,244,244 3650 DATA 244,247,240,255,255,255,127,0 3660 DATA 252,254,254,254,30,222,94,94 3670 DATA 94,222,30,254,254,254,252,0 3680 DATA 127,255,255,255,252,251,244,244 3690 DATA 244,251,252,255,255,255,127,0 3700 DATA 252,254,254,254,126,190,94,94 3710 DATA 94,190,126,254,254,254,252,0 3720 DATA 127,255,255,255,254,253,251,247 3730 DATA 224,255,255,255,255,255,127,0 3740 DATA 252,254,254,254,254,126,190,222 3750 DATA 14,254,254,254,254,254,252,0 3760 '** 3770 DATA 0,119,69,71,85,117,0,0 3780 DATA 0,117,85,85,85,114,0,0 3790 DATA 0,87,116,86,84,87,0,0 3800 DATA 0,119,69,102,69,117,0,0 3810 ' 3820 DATA 0,0,0,0,1,1,1,1,1,15,7,3,1,0,0,0,0,0,0,0,128,128,128,128,128,240,224,192,128,0,0,0 3830 DATA 195,126,195,126,195,126,195,0 3840 DATA 170,254,84,84,84,84,254,170 3850 ' 3860 ' 3870 ' 3880 REM VIDA MENOS 3890 '''''''''''''' 3900 ' 3910 ' 3920 INTERVAL OFF:PLAY"o2v15efd" 3930 V=V-1 3940 GOSUB 4830:FOR I=0 TO15:PUT SPRITE I,(0,209):NEXT 3950 IF V=1 OR V=0 THEN 3990 3960 FOR I=1 TO V-1 3970 PUT SPRITE 2+I,(3,I*20),9,0 3980 NEXT I 3990 IF V=0 THEN 4010 4000 X=32:Y=104:F=0:GOSUB 4060:GOTO2350 4010 INTERVAL OFF:LOCATE 10,10:PRINT"GAME OVER" 4020 FOR I=1 TO 2000:NEXTI:CLEAR200:V=3:PA=1:X=32:H=0:Y=104:GOSUB 4060:GOTO 300 4030 T=T-1:LOCATE 15,1:PRINTT 4040 IF T=0 THEN INTERVAL OFF 4050 RETURN 4060 ' 4070 ' 4080 ' 4090 E=E+T 4100 IF L=1 THEN T=8 4110 IF L=2 THEN T=5 4120 IF L=3 THEN T=5 4130 IF L=4 THEN T=3 4140 RETURN 4150 INTERVALOFF:H=H+1:LOCATE 23,1:PRINTH:INTERVALON:RETURN 4160 ' 4170 ' vida extra 4180 ' 4190 GOSUB 4830:INTERVAL OFF:V=V+1:PLAY"T255O4V15CCDC","T255V15O6CCDC" 4200 LOCATE 9,10:PRINT"VIDA EXTRA" 4210 FOR I=1 TO 1000:NEXT I 4220 E=0:GOSUB 4770:RETURN 4230 PLAY"v15t255l64o8cf":SOUND 1,9:SOUND 8,15:SOUND 1,15:SOUND 4,34:SOUND 3,15:SOUND 1,85:SOUND 1,247:SOUND 4,90:SOUND 8,125:SOUND 2,100:SOUND 8,0:RETURN 4240 VDP(0)=2:VDP(3)=159:FOR A=48 TO 120:N=A*8:RESTORE 4240:FOR B=0 TO 7 4250 READ C 4260 VPOKE BASE(11)+N,C:N=N+1 4270 NEXT:NEXT 4280 DATA &H30,&H30,&H50,&h50,&H50,&H50,&H30,&H30 4290 ' 4300 VDP(0)=2:VDP(3)=159:FOR A=219TO 220:N=A*8:RESTORE 4320:FOR B=0 TO 7 4310 READ C 4320 VPOKE BASE(11)+N,C:N=N+1 4330 NEXT:NEXT 4340 DATA &H44,&H44,&H24,&hf5,&HF6,&H27,&H48,&H42 4350 RETURN 4360 '***** CHANGEING LEVELS ***** 4370 ' 4380 GOSUB 4820:FOR J=1 TO 5 4390 FOR I=1 TO 100:NEXT I 4400 LOCATE 7,9:PRINT"L E V E L ";L 4410 BEEP:PLAY"V15F":BEEP:PLAY"V15F":BEEP 4420 FOR I=1 TO 100:NEXT I 4430 LOCATE 7,9:PRINTSPC(14) 4440 NEXT J 4450 FOR I=1 TO 500:NEXT I 4460 LOCATE 7,9:PRINTSPC(14) 4470 LOCATE24,5:PRINTPA; 4480 LOCATE 7,1:PRINTL 4490 IF L=3 THEN LOCATE 19,12:PRINT"лл":LOCATE 19,11:PRINT"лл":LOCATE 19,8:PRINT"лл":LOCATE 19,7:PRINT"лл" 4500 IF L=2 THEN LOCATE 11,17:PRINT"лл":LOCATE 11,18:PRINT"лл" 4510 IF L<>2 THEN LOCATE 11,17:PRINT" ":LOCATE 11,18:PRINT" " 4520 INTERVAL ON:GOSUB 4750:RETURN 4530 ' 4540 ' ESPACIOS INTERM. 4550 ''''''''''''''''''''''''' 4560 ' 4570 A=A-10:NN=0:FOR I=1 TO 6 4580 IF VPEEK(A)<110 AND VPEEK(A)>100 THEN 4610 4590 A=A+2:NN=NN+1:NEXT I 4600 ' 4610 ''''''''''''''''''''''''' 4620 IF NN=5 THEN F=0:GOTO 4680 4630 FOR I=1 TO 5-NN:A=A+2 4640 IF VPEEK(A)=32 THEN F=YY:GOTO 4670 4650 NEXT I 4660 ' 4670 ''''''''''''''''''''''''' 4680 FOR I=1 TO 6-NN 4690 VPOKE A,VPEEK(A-2) 4700 VPOKE A+1,VPEEK(A-1) 4710 VPOKE A+32,VPEEK(A+30) 4720 VPOKE A+33,VPEEK(A+31) 4730 A=A-2:NEXT I:RETURN 4740 ' 4750 ' DESCONECTAPANTALLA 4760 ' 4770 DEFUSR=&H41 4780 A=USR(0) 4790 RETURN 4800 ' 4810 ' CONECTAPANTALLA 4820 ' 4830 DEFUSR=&H44 4840 A=USR(0) 4850 RETURN