10 DIMB$(9),L$(3),DX(7),DY(7),IX(3),IY(3),FX(3),FY(3),O$(9) 50 GOSUB3000 80 GOSUB2000 ‘ Nudo principal de desarrollo 100 F=TI:T=T-1:K=PEEK(J):IFK=127THEN125 105 IF(KAND1)=1THENIFY<232THENY=Y+2 110 IF(KAND2)=2THENIFY>60THENY=Y-2 115 IF(KAND4)=4THENIFX<222THENX=X+2 120 IF(KAND8)=8THENIFX>44THENX=X-2 125 A=A+B:IFA=0ORA=6THENB=-B 130 POKEG,244+A:POKEH,X:POKEV,Y:POKEH+2,X+DX(A):POKEV+2,Y+DY(A) 150 IFABS(X-FX(N))<16THENIFABS(Y-FY(N))<16THEN300 190 IFTI3THENN=1 310 IFT>0THENS=S+T*10+10:PRINT"{home}{down}";TAB(31);:F=S:GOSUB5300 315 GOSUB2200:GOTO100 ‘ Presentación del juego 2000 POKE53269,0:PRINT"{cyan}{clear}";TAB(30);"{green}SCORE<1>":PRINTTAB(31);:F=S:GOSUB5300 2005 PRINT:PRINT TAB(30);"{yellow}HI-SCORE":PRINTTAB(31);:F=R:GOSUB5300 2010 PRINT"{down*5}";TAB(30);"{cyan}BALLOONS":PRINTTAB(31);"{white}-{red}QQQQ{white}-" 2015 CY=23:CX=30:T$="{red}@SCAINET{down}{left*8}SOFT, 13":GOSUB5200 2020 GOSUB5000:CY=10:CX=8:T$="{yellow}CRAZY BALLOON":GOSUB5200 2025 CY=13:CX=8:T$="{white}FIRE TO START":GOSUB5200 2030 GOSUB5050:IFPEEK(J)<>111THEN2025 2035 N=1:NN=1:L=4:S=0:PRINT"{home}{down}";TAB(31);"{white}000000{cyan}" 2200 POKE53269,0:GOSUB5100:GOSUB5000:CY=9:CX=8:T$="{yellow}LET'S ATTACK !":GOSUB5200 2205 CY=12:CX=11:T$="{cyan}PLAYER 1":GOSUB5200 2210 CY=15:T$="{white}LEVEL="+STR$(NN):GOSUB5200 2215 FORF=1TO80:GOSUB5050:NEXT:GOSUB5100 ‘ Imprimir el laberinto y posicionar el globo 2500 PRINT"{home}{cyan}{space*2}";:POKE53269,0 2505 A$=L$(N):B=1 2510 FORF=1TOLEN(A$) 2515 C$=MID$(A$,F,1):IFC$>="A"THENPRINTLEFT$(B$(B),ASC(C$)-64);:GOTO2540 2520 IFC$>"0"THENPRINTB$(VAL(C$)+2);:B=1:GOTO2545 2525 IFC$="*"THEN2540 2530 IFC$="0"THENPRINT:PRINT"{space*2}";:B=1:GOTO2545 2540 B=B+1:IFB=3THENB=1 2545 NEXT 2550 IFNN<4THEN2600 2555 I=NN-3:IFI>9THENI=6+N 2560 FORF=NTOISTEP3 2565 FORI=1TOLEN(O$(F))STEP2:C$=MID$(O$(F),I,2) 2570 POKE1024+(ASC(LEFT$(C$,1))-65)*40+(ASC(RIGHT$(C$,1))-65+2),42:NEXTI,F 2600 X=IX(N):Y=IY(N):POKEH,X:POKEV,Y:POKE53287,2:POKE2040,247 2605 A=0:B=1:T=1000:POKEC,0 2610 POKEH+2,X+DX(3):POKEV+2,Y+DY(3):POKE53288,2:POKE2041,251:POKE53269,3 2690 F=2:GOSUB5400:RETURN ‘ Inicializar variables globales y cargar SPRITES 3000 POKE 53280,0:POKE53281,0:PRINT"{cyan}":POKE53269,0 3005 FORF=0TO7:D=15616+F*64:FORI=DTOD+47STEP3:READA,B,C:POKEI,A:POKEI+1,B 3010 POKEI+2,C:NEXT:FORI=D+48TOD+63:POKEI,0:NEXTI,F 3015 J=56320:G=2040:H=53248:V=53249:C=53279:R=0 3020 B$(1)="**************************":B$(2)="{space*26}" 3025 B$(3)="{red}{reverse on}{cm d}{reverse off}{space*5}{reverse on}{cm f}{reverse off}{cyan}":B$(4)="{red}{cm k}{space*5}{reverse on}{cm k}{reverse off}{cyan}" 3030 B$(5)="{red}{reverse on}{cm c}{reverse off}GOAL{cm i}{reverse on}{cm v}{reverse off}{cyan}":B$(6)="{green}{cm i}START{cm i}{cyan}":B$(7)="{red}{cm i}GOAL{reverse on}{cm v}{reverse off}{cyan}" 3035 B$(8)="{green}{cm i}{cm o*6}{cyan}":B$(9)="{red}{reverse on}{cm i}{reverse off}{cm u*6}{cyan}" 3040 FORF=0TO6:READDY(F),DX(F):NEXT 3045 FORF=1TO3:READIX(F),IY(F),FX(F),FY(F):NEXT 3050 FORF=1TO9:READO$(F):NEXT 3055 Y$="{home}{down*25}" 3060 FORF=54272TO54295:POKEF,0:NEXT:POKE54296,15 3100 L$(1)="*HR0*JICD0*KDIB0*KDJA0*MAKA05ARA0FMAEA0FLAFA0CFAGBFA0AGCDDEB0" 3105 L$(1)=L$(1)+"AFECDEB0ADBDBFAEA0BCAFALA0BWA0AXA0AWB0AOBEC0AIIDC0AFMBD0" 3110 L$(1)=L$(1)+"AFBGJ0AQA40AY0DV0HR0NL" 3120 L$(2)="Z0EDICE0BHGFC0BHGGB0AJEIA0ALBJA0AXA0AEBLADA0AECIBEA0BDEFCEA0" 3125 L$(2)=L$(2)+"BDGCCEB0AELEC01BCAKB02AQA02AQA02AQA02AFACCDA02BDCADCB0" 3130 L$(2)=L$(2)+"3CDDFB0JEAIA04AQA0*XB0*VD0*LBFF0*KO" 3140 L$(3)="S40BGE0AIB0A0B0BDAIC60AECEL0AEM70AGF0CGC0DFB0DFA0EHA0EGCCA30" 3145 L$(3)=L$(3)+"CHDCH0BEGIC0BDHJB0AEHKA0AEADEIA0ALGDB0ANAIA0AXA0BVB0CDDLC0Z" 3200 RETURN ‘ RUTINAS VARIAS: 5000: Imprimir pantalla 5050: Colorear asteriscos 5100: Borrar pantalla 5200: Print AT 5300: Print Puntos 5400: Sonido 5000 PRINT"{home}{cyan}";:FORF=1TO8:PRINT"{space*2}";B$(1):NEXT 5005 FORF=1TO9:PRINT"{space*2}****";SPC(18);"****":NEXT 5010 FORF=1TO7:PRINT"{space*2}";B$(1):NEXT:PRINT"{space*2}";B$(1);:RETURN 5050 I=RND(1)*25*40+RND(1)*26+2:IFPEEK(1024+I)=42THENPOKE55296+I,RND(1)*3+3 5055 RETURN 5100 PRINT"{home}";:FORF=1TO24:PRINT"{space*2}";B$(2):NEXT:PRINT"{space*2}";B$(2);:RETURN 5200 PRINT"{home}":PRINTLEFT$(Y$,CY+1);TAB(CX);T$;"{cyan}";:RETURN 5300 PRINT"{white}";RIGHT$("00000"+MID$(STR$(F),2),6):RETURN 5400 IFF<3THENPOKE54277,100:POKE54278,100:POKE54276,17:GOTO5410 5405 POKE54277,80:POKE54278,100:POKE54276,129:GOTO5420 5410 IFF=1THENFORI=35TO55STEP5:POKE54273,I:POKE54272,I+10:FORFF=0TO50:NEXTFF,I 5415 IFF=2THENFORI=80TO60STEP-5:POKE54273,I:POKE54272,I+10:FORFF=0TO50:NEXTFF,I 5420 IFF=3THENPOKE54273,100:POKE54272,150:FORFF=1TO900:NEXT 5425 POKE54273,0:POKE54272,0:POKE54276,16:RETURN ‘ Datos de los SPRITES 9000 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,4,0,0,2,0,0 9005 DATA 1,0,0,0,128,0,0,64,0,0,32,0,0,16,0,0,28,0,0,28,0,0,28,0 9010 DATA 0,0,0,0,0,0,0,0,0,2,0,0,2,0,0,1,0,0,1,0,0,0,128,0 9015 DATA 0,128,0,0,64,0,0,64,0,0,32,0,0,16,0,0,28,0,0,28,0,0,28,0 9020 DATA 0,0,0,0,0,0,0,64,0,0,64,0,0,64,0,0,64,0,0,32,0,0,32,0 9025 DATA 0,32,0,0,32,0,0,16,0,0,16,0,0,16,0,0,28,0,0,28,0,0,28,0 9030 DATA 0,0,0,0,8,0,0,8,0,0,8,0,0,8,0,0,8,0,0,8,0,0,8,0 9035 DATA 0,8,0,0,8,0,0,8,0,0,8,0,0,8,0,0,28,0,0,28,0,0,28,0 9040 DATA 0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,2,0,0,2,0 9045 DATA 0,2,0,0,2,0,0,4,0,0,4,0,0,4,0,0,28,0,0,28,0,0,28,0 9050 DATA 0,0,0,0,0,0,0,0,0,0,0,32,0,0,32,0,0,64,0,0,64,0,0,128 9055 DATA 0,0,128,0,1,0,0,1,0,0,2,0,0,4,0,0,28,0,0,28,0,0,28,0 9060 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,16,0,0,32 9065 DATA 0,0,64,0,0,128,0,1,0,0,2,0,0,4,0,0,28,0,0,28,0,0,28,0 9070 DATA 0,28,0,0,127,0,0,255,128,0,255,128,1,255,192,1,255,192,1,255,192 9075 DATA 0,255,128,0,255,128,0,127,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ‘ Posición globo/palo, inicial/final globo, obstaculos niveles > 3 9500 DATA -6,-10,-8,-8,-9,-3,-10,0,-9,3,-8,8,-6,10 9510 DATA 208,232,36,60,56,232,56,174,208,72,224,124 9600 DATA "TDKU","HCJPOK","TUVJ","OIJU","MTSUWR","SBSF" 9605 DATA "HPEKEG","LTGM","LIMJFF"