' FOUR KINGDOMS '============== ' ' A COMPLETE KINGDOM OF ONE COLOR HAS... ' ' TWO OR MORE OF EACH OF... ' #10,#11,#12, SWORD,SHIELD HORSE ' ' ONE OR MORE OF EACH OF... ' #13,#14,#15 CASTLE,KING,KINGDOM STATUS ' ' TRY TO GET ALL 4 (COLORS) KINGDOMS BUILT SPRITE 0,,,128 SPRITE 0 PAL 4 SIZE 3 DIM GLOBAL CHR(15),NUM(46) REM WAS8BIT GLOBAL ICHECK,IMAX,IMIN,OMIN FOR I=1 TO 15 READ CHR(I) C=CHR(I) NUM(C)=I NEXT I DATA 2,4,6,8,10,12,14 DATA 32,34,36,38,40,42,44,46 RANDOMIZE TIMER TOUCHSCREEN BG 0 CELL SIZE 0,1 MEMCHECK=PEEK($E800) TRACE MEMCHECK IF MEMCHECK>0 THEN COPY $E000,$1000 TO $9000 IMAX=PEEK($E800) IMIN=PEEK($E801) ELSE FOR Y=0 TO 7 FOR X=0 TO 9 PAL RND(3) CELL X,Y,CHR(RND(2)+1) NEXT X NEXT Y IMAX=3 IMIN=1 END IF ITOUCH=0 XTOUCH=0 YTOUCH=0 IZAP=0 OMIN=IMIN CALL CHECKALL DO REM TRACE IMAX,IMIN,OMIN IF TOUCH THEN TX=TOUCH.X TY=TOUCH.Y IF ITOUCH=0 THEN ITOUCH=1 XTOUCH=TX YTOUCH=TY XCELL=TX\16 YCELL=TY\16 ELSE END IF ELSE IF ITOUCH=1 THEN ITOUCH=0 DX=TX-XTOUCH DY=TY-YTOUCH IF DX=0 AND DY=0 THEN INC IZAP PLAY 1,41+IZAP*5,90 SOUND 1 PLAY 2,42+IZAP*5,90 SOUND 1 PLAY 3,43+IZAP*5,90 SOUND 1 IF IZAP=3 THEN CALL ZAPIT IZAP=0 END IF ELSE IZAP=0 PLAY 0,45,1 SOUND 0 IF ABS(DX)>ABS(DY) THEN IF DX>0 THEN CTEMP=CELL.C(9,YCELL) ATEMP=CELL.A(9,YCELL) FOR IX=9 TO 1 STEP -1 PAL CELL.A(IX-1,YCELL) CELL IX,YCELL,CELL.C(IX-1,YCELL) NEXT IX PAL ATEMP CELL 0,YCELL,CTEMP CALL CHECKALL ELSE CTEMP=CELL.C(0,YCELL) ATEMP=CELL.A(0,YCELL) FOR IX=0 TO 8 PAL CELL.A(IX+1,YCELL) CELL IX,YCELL,CELL.C(IX+1,YCELL) NEXT IX PAL ATEMP CELL 9,YCELL,CTEMP CALL CHECKALL END IF ELSE IF DY>0 THEN CTEMP=CELL.C(XCELL,7) ATEMP=CELL.A(XCELL,7) FOR IY=7 TO 1 STEP -1 PAL CELL.A(XCELL,IY-1) CELL XCELL,IY,CELL.C(XCELL,IY-1) NEXT IY PAL ATEMP CELL XCELL,0,CTEMP CALL CHECKALL ELSE CTEMP=CELL.C(XCELL,0) ATEMP=CELL.A(XCELL,0) FOR IY=0 TO 6 PAL CELL.A(XCELL,IY+1) CELL XCELL,IY,CELL.C(XCELL,IY+1) NEXT IY PAL ATEMP CELL XCELL,7,CTEMP CALL CHECKALL END IF END IF END IF END IF WAIT VBL LOOP SUB CHECKALL ICHECK=1 WHILE ICHECK=1 CALL CHECKIT WEND COPY $9000,$1000 TO $E000 POKE $E800,IMAX POKE $E801,IMIN IF IMIN>OMIN THEN OMIN=IMIN FOR Y=100 TO 0 STEP -1 SPRITE 0,64,Y, PLAY 3,90-Y/2,1 WAIT VBL NEXT Y SPRITE OFF 0 END IF END SUB SUB CHECKIT ICHECK=0 IMAX=0 FOR X=0 TO 9 FOR Y=0 TO 7 C0=CELL.C(X,Y) IF NUM(C0)>IMAX THEN IMAX=NUM(C0) A0=CELL.A(X,Y) X1=CELL.C(X+1,Y) X2=CELL.C(X+2,Y) Y1=CELL.C(X,Y+1) Y2=CELL.C(X,Y+2) AX1=CELL.A(X+1,Y) AX2=CELL.A(X+2,Y) AY1=CELL.A(X,Y+1) AY2=CELL.A(X,Y+2) IF C0=X1 AND C0=X2 AND A0=AX1 AND A0=AX2 THEN ICHECK=1 PAL A0 FOR I=64 TO 78 STEP 2 FOR IX=X TO X+2 CELL IX,Y,I NEXT IX PLAY 2,I,1 SOUND 2 WAIT VBL NEXT I WAIT VBL CNUM=NUM(C0)+1 CELL X+1,Y,CHR(CNUM) CALL ADDIT(X,Y) CALL ADDIT(X+2,Y) END IF IF C0=Y1 AND C0=Y2 AND A0=AY1 AND A0=AY2 THEN ICHECK=1 PAL A0 FOR I=64 TO 78 STEP 2 FOR IY=Y TO Y+2 CELL X,IY,I NEXT IY PLAY 2,I,1 SOUND 2 WAIT VBL NEXT I WAIT VBL CNUM=NUM(C0)+1 CELL X,Y+1,CHR(CNUM) CALL ADDIT(X,Y) CALL ADDIT(X,Y+2) END IF NEXT Y NEXT X IF IMAX<3 THEN IMAX=3 IMIN=IMAX-6 IF IMAX>13 THEN IMIN=7 IF IMIN<1 THEN IMIN=1 END SUB SUB ADDIT(X,Y) PAL RND(3) C=0 WHILE C<=0 OR C>=42 AX=RND(9) AY=RND(7) C=CELL.C(AX,AY) WEND N=NUM(C) CELL X,Y,CHR(N) II=IMAX-IMIN IF RND(50)=0 THEN CELL X,Y,CHR(RND(II)+IMIN) END SUB SUB ZAPIT II=IMAX-IMIN FOR I=1 TO 100 FOR Y=0 TO 7 FOR X=0 TO 9 IF CELL.C(X,Y)<36 THEN PAL RND(3) R=RND(II) TRACE R,IMIN CELL X,Y,CHR(R+IMIN) ELSE I=I+10 END IF NEXT X NEXT Y WAIT VBL NEXT I CALL CHECKALL END SUB #1:MAIN PALETTES 00203B3000143C2800082E0C00070F0B 003F2A15003F2A15003F2A15003F2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 00000000000000000000000000000000 0718234741818181071F3C787EFEFEFE E018848282818181E0F87C7E7E7F7F7F 071823474C8C8083071F3C7873F3FFFC E018C4E2323171E1E0F83C1ECECF8F1F 071823474C8C8081071F3C7873F3FFFE E018C4E2323131E1E0F83C1ECECFCF1F 0718204C4C8C8C87071F3F7373F3F3F8 E0180432323131E1E0F8FCCECECFCF1F 07182F4F4C8C8C87071F307073F3F3F8 E018E4E2020101E1E0F81C1EFEFFFF1F 071823474C8C8C8F071F3C7873F3F3F0 E018E4E2020101E1E0F81C1EFEFFFF1F 0718274F4C8C8080071F387073F3FFFF E018E4F232313131E0F81C0ECECFCFCF 00000000000000000000000000000000 00000000000000000000000000000000 8181814143231807FEFEFE7E7C3C1F07 81818182C2C418E07F7F7F7E3E3CF8E0 878E8C4C4F2F1807F8F1F37370301F07 C1010132F2F418E03FFFFFCE0E0CF8E0 81808C4C47231807FEFFF373783C1F07 E1313132E2C418E01FCFCFCE1E3CF8E0 8780804040201807F8FFFF7F7F3F1F07 E1313132320418E01FCFCFCECEFCF8E0 8780804047231807F8FFFF7F783C1F07 E1313132E2C418E01FCFCFCE1E3CF8E0 8F8C8C4C47231807F0F3F373783C1F07 E1313132E2C418E01FCFCFCE1E3CF8E0 8080804040201807FFFFFF7F7F3F1F07 31313132320418E0CFCFCFCECEFCF8E0 071823474C8C8C87071F3C7873F3F3F8 E018C4E2323131E1E0F83C1ECECFCF1F 071823474C8C8C87071F3C7873F3F3F8 E018C4E2323131F1E0F83C1ECECFCF0F 07182C4545858585071F337A7AFAFAFA E018C422A2A1A121E0F83CDE5E5F5FDF 07182C4444848484071F337B7BFBFBFB E018C44242414141E0F83CBEBEBFBFBF 07182C4544848585071F337A7BFBFAFA E018C42222C10101E0F83CDEDE3FFFFF 07182C4544848485071F337A7BFBFBFA E018C42222C12121E0F83CDEDE3FDFDF 07182D4545858484071F327A7AFAFBFB E018042222E12121E0F8FCDEDE1FDFDF 07182D4545858485071F327A7AFAFBFA E018C40202C12121E0F83CFEFE3FDFDF 878C8C4C47231807F8F3F373783C1F07 E1313132E2C418E01FCFCFCE1E3CF8E0 8780804047231807F8FFFF7F783C1F07 F1313132E2C418E00FCFCFCE1E3CF8E0 8480804740201807FBFFFF787F3F1F07 C10141E2420418E03FFFBF1EBEFCF8E0 8480834743211807FBFFFC787C3E1F07 410181C2820418E0BFFF7F3E7EFCF8E0 8580824743221807FAFFFD787C3D1F07 E1010122C24418E01FFFFFDE3EBCF8E0 8480804547271807FBFFFF7A78381F07 C1010142C2C418E03FFFFFBE3E3CF8E0 8480824042231807FBFFFD7F7D3C1F07 21812182A2E418E0DF7FDF7E5E1CF8E0 8488885D4B271807FBF7F76274381F07 C1159DDEEAF418E03FEB6322160CF8E0 00000000000000010000000000000001 00000000000000800000000000000080 00000000000001020000000000000103 000000000000804000000000000080C0 00000000000306040000000000030706 0000000000C060200000000000C0E060 00000000030408080000000003070E0C 00000000C020101000000000C0E07030 000000070C181010000000070F1C1818 000000E030180808000000E0F0381818 00000708102020200000070F18303030 0000E010080404040000E0F0180C0C0C 000718202040404000071F3830606060 00E018040402020200E0F81C0C060606 0718204040808080071F386060C0C0C0 E018040202010101E0F81C0606030303 01000000000000000100000000000000 80000000000000008000000000000000 02010000000000000301000000000000 4080000000000000C080000000000000 04060300000000000607030000000000 2060C0000000000060E0C00000000000 08080403000000000C0E070300000000 101020C0000000003070E0C000000000 1010180C0700000018181C0F07000000 08081830E0000000181838F0E0000000 2020201008070000303030180F070000 0404040810E000000C0C0C18F0E00000 404040202018070060606030381F0700 020202040418E0000606060C1CF8E000 8080804040201807C0C0C06060381F07 01010102020418E003030306061CF8E0 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 071F3F7F7FFFFFFF0000040404040407 FFFFFFFFFFFFFFFF0000744462424171 FFFFFFFFFFFFFFFF00005D519991111D E0F8FCFEFEFFFFFF00000000000000C0 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 FFFFFF7F7F3F1F070000000000000000 FFFFFFFFFFFFFFFF0042424242241800 FFFFFFFFFFFFFFFF0078444478404000 FFFFFFFEFEFCF8E00000000000000000 #15:MAIN SOUND 3800301100000000280084CC005AE000 08006060000000002800303019FE0000 38002020000000003800505000000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000