REM ROOT DICE COLORS.... REM GREEN = SAME OR ONE OFF = 1PNT REM YELLOW = ONLY ONE OFF = 3PNT REM RED = ONLY ONE UP = 5PNT REM MODE: 0=PLAY (DICE WHITE, OTHERWISE GRAY) DEFAULT REM 1=MOVE <- -> REM 2=ROLL (SHOW CURRENT SCORE, WHITE) REM 3=QUIT (SHOW HIGH SCORE, GRAY) GLOBAL IMENU,DMENU,HISCORE,ISCORE IMENU=-1 DMENU=0 FOR I=1 TO 63 SPRITE I SIZE 1 NEXT I DIM GLOBAL DICE(10),CSTRIP(7),PSTRIP(7),REVDICE(38) FOR I=0 TO 10 READ DD DICE(I)=DD REVDICE(DD)=I NEXT I DATA 2,4,6,8,10,12,14,32,34,36,38 TOUCHSCREEN RANDOMIZE TIMER REM WAS8BIT CELL SIZE 1,1 GLOBAL ISCORE SPRITE 0,,,44 SPRITE 1,144,0,46 SPRITE 2,0,,64 SPRITE 3,16,,66 SPRITE 4,0,,68 SPRITE 5,0,,70 HISCORE=PEEK($E000) NEWGAME: ISCORE=0 CLS BG 1 FOR X=2 TO 30 STEP 4 FOR Y=3 TO 5 STEP 2 PAL 2+RND(2) CELL X,Y,DICE(RND(10)) NEXT Y NEXT X PLAY 0,70,1 CALL NEWROLL CALL DOMENU XSCROLL=0 ITOUCH=0 DO IF TOUCH THEN TX=TOUCH.X\16 TY=TOUCH.Y\16 IF ITOUCH=0 AND TY=0 AND TX=9 THEN CALL DOMENU ELSE TX=-16 TY=-16 END IF IF IMENU=3 THEN IF TY=0 AND TX=0 THEN GOTO NEWGAME ELSE IF IMENU=2 THEN IF TY=0 AND TX=0 THEN CALL NEWROLL DMENU=-1 CALL DOMENU END IF ELSE IF IMENU=1 THEN IF TY=0 THEN IF TX=0 THEN BG 1 FOR I=1 TO 7 CSTRIP(I)=CELL.C(0,I) PSTRIP(I)=CELL.A(0,I) NEXT I PLAY 1,40,1 SOUND 1 DMENU=-1 BG 1 BG SCROLL 0,1 TO 15,7 STEP -1,0 FOR I=1 TO 7 PAL PSTRIP(I) CELL 15,I,CSTRIP(I) NEXT I WAIT 3 ELSE IF TX=1 THEN BG 1 FOR I=1 TO 7 CSTRIP(I)=CELL.C(15,I) PSTRIP(I)=CELL.A(15,I) NEXT I PLAY 1,42,1 SOUND 1 DMENU=-1 BG 1 BG SCROLL 0,1 TO 15,7 STEP 1,0 FOR I=1 TO 7 PAL PSTRIP(I) CELL 0,I,CSTRIP(I) NEXT I WAIT 3 END IF END IF ELSE IF IMENU=0 THEN IF ITOUCH=0 THEN IF TY=0 AND TX<=8 AND TX>=3 THEN SPRITE 0,TX*16+8,TY*16+8, IF SPRITE HIT(0) THEN PLAY 2,50,1 SOUND 2 SPRDRAG=HIT ITOUCH=1 OX=TX OY=TY END IF END IF ELSE IF ITOUCH=1 THEN IF TOUCH THEN SPRITE SPRDRAG,TX*16,TY*16, DX=TX DY=TY ELSE IF ITOUCH=1 THEN BG 1 IRESULT=0 CNUM=SPRITE.C(SPRDRAG) CALL RULES(DX,DY,CNUM,IRESULT) IF IRESULT>0 AND DY>0 THEN PAL IRESULT CELL DX,DY,CNUM SPRITE OFF SPRDRAG ELSE SPRITE SPRDRAG,OX*16,OY*16, END IF ITOUCH=0 END IF END IF END IF WAIT VBL LOOP SUB RULES(X,Y,CN,RR) BG 1 CC=CELL.C(X,Y) IF CC>0 THEN EXIT SUB U=CELL.C(X,Y-1) D=CELL.C(X,Y+1) L=CELL.C(X-1,Y) R=CELL.C(X+1,Y) IF U+D+L+R=0 THEN EXIT SUB DIM C(4),P(4),OK(4) FOR I=2 TO 4 OK(I)=0 NEXT I NN=REVDICE(CN) C(1)=REVDICE(U) C(2)=REVDICE(R) C(3)=REVDICE(D) C(4)=REVDICE(L) P(1)=CELL.A(X,Y-1) P(2)=CELL.A(X+1,Y) P(3)=CELL.A(X,Y+1) P(4)=CELL.A(X-1,Y) REM P=2: GREEN REM P=3: YELLOW REM P=4: RED FOR I=1 TO 4 CUP=C(I) ADD CUP,1,0 TO 10 CDOWN=C(I) ADD CDOWN,-1,0 TO 10 IF P(I)=2 THEN IF (NN=CUP OR NN=CDOWN OR NN=C(I)) AND OK(2)>=0 THEN OK(2)=1 ELSE OK(2)=-1 END IF ELSE IF P(I)=3 THEN IF (NN=CUP OR NN=CDOWN) AND OK(3)>=0 THEN OK(3)=1 ELSE OK(3)=-1 END IF ELSE IF P(I)=4 THEN IF NN=CUP AND OK(4)>=0 THEN OK(4)=1 ELSE OK(4)=-1 END IF END IF NEXT I RR=0 IF OK(2)=1 THEN RR=2 IF OK(3)=1 THEN RR=3 IF OK(4)=1 THEN RR=4 IF RR=2 THEN ADD ISCORE,1 IF RR=3 THEN ADD ISCORE,3 IF RR=4 THEN ADD ISCORE,5 IF ISCORE>HISCORE THEN POKE $E000,ISCORE BG 0 PAL 1 NUMBER 2,1,ISCORE,4 TRACE OK(2),OK(3),OK(4) BG 1 END SUB SUB NEWROLL FOR I=11 TO 16 IF SPRITE.Y(I)=0 THEN PLAY 3,90,1 SOUND 3 DEC ISCORE END IF SPRITE OFF I PLAY 0,18,1 SOUND 0 WAIT 6 NEXT I FOR X=1 TO 6 SPRITE 10+X,32+X*16,0,DICE(RND(10)) PLAY 0,20,1 SOUND 0 WAIT 6 NEXT X END SUB SUB DOMENU IF DMENU=-1 THEN DMENU=0 IMENU=-1 END IF BG 0 PAL 1 TEXT 2,0," " TEXT 2,1," " FOR I=2 TO 5 SPRITE I,,-16, NEXT I FOR I=11 TO 16 SPRITE I PAL 5 NEXT I ADD IMENU,1,0 TO 3 IF IMENU=0 THEN TEXT 2,0,"PLAY" NUMBER 2,1,ISCORE,4 FOR I=11 TO 16 SPRITE I PAL 0 NEXT I ELSE IF IMENU=1 THEN SPRITE 2,,0, SPRITE 3,,0, ELSE IF IMENU=2 THEN SPRITE 4,,0, PAL 2 TEXT 2,0,"ROLL" PAL 1 NUMBER 2,1,ISCORE,4 ELSE IF IMENU=3 THEN SPRITE 5,,0, PAL 4 TEXT 2,0,"QUIT" PAL 5 NUMBER 2,1,HISCORE,4 END IF PLAY 0,30,1 SOUND 0 WAIT 15 END SUB #1:MAIN PALETTES 053F0400003F3F04000C0C00003C3C00 00303000002A2A15002A2A04003F2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 00000000000000000000000000000000 00003F3F3F3F3F3F0000000000000302 0000FCFCFCFCFCFC000000000000C040 00003F3F3F3F3F3F0000000000000001 0000FCFCFCFCFCFC0000000000000080 00003F3F3F3F3F3F0000000000000000 0000FCFCFCFCFCFC0000000030300000 00003F3F3F3F3F3F0000000000000001 0000FCFCFCFCFCFC0000000030300080 00003F3F3F3F3F3F000000000C0C0000 0000FCFCFCFCFCFC0000000030300000 00003F3F3F3F3F3F000000000C0C0001 0000FCFCFCFCFCFC0000000030300080 00003F3F3F3F3F3F000000000C0C000C 0000FCFCFCFCFCFC0000000030300030 00000000000000000000000000000000 00000000000000000000000000000000 3F3F3F3F3F3F00000203000000000000 FCFCFCFCFCFC000040C0000000000000 3F3F3F3F3F3F00000100000000000000 FCFCFCFCFCFC00008000000000000000 3F3F3F3F3F3F000000000C0C00000000 FCFCFCFCFCFC00000000000000000000 3F3F3F3F3F3F000001000C0C00000000 FCFCFCFCFCFC00008000000000000000 3F3F3F3F3F3F000000000C0C00000000 FCFCFCFCFCFC00000000303000000000 3F3F3F3F3F3F000001000C0C00000000 FCFCFCFCFCFC00008000303000000000 3F3F3F3F3F3F00000C000C0C00000000 FCFCFCFCFCFC00003000303000000000 00003F3F3F3F3F3F000000000C0C000D 0000FCFCFCFCFCFC00000000303000B0 00003F3F3F3F3F3F000000000D0D000C 0000FCFCFCFCFCFC00000000B0B00030 00003F3F3F3F3F3F000000000D0D000D 0000FCFCFCFCFCFC00000000B0B000B0 00003F3F3F3F3F3F000000000F0D080C 0000FCFCFCFCFCFC00000000F0B01030 FFFFC0C0C0C0C0C0FFFFC0C0C0C0C0C0 FFFF030303030303FFFF030303030303 00000000000000000000000000000000 00000000000000000000000000000000 80000000000000008000000000000000 00000000000000000000000000000000 071F3C736FEFDFDF071F3F7F7FFEFCF8 E0F83CCEF6F7FBFBE0F8FCFEFE7F3F1F 3F3F3F3F3F3F00000D000C0C00000000 FCFCFCFCFCFC0000B000303000000000 3F3F3F3F3F3F00000C000D0D00000000 FCFCFCFCFCFC00003000B0B000000000 3F3F3F3F3F3F00000D000D0D00000000 FCFCFCFCFCFC0000B000B0B000000000 3F3F3F3F3F3F00000C080D0F00000000 FCFCFCFCFCFC00003010B0F000000000 C0C0C0C0C0C0FFFFC0C0C0C0C0C0FFFF 030303030303FFFF030303030303FFFF 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 DFDFEF6F733C1F07F8FCFE7F7F3F1F07 FBFBF7F6CE3CF8E01F3F7FFEFEFCF8E0 071F3C736FEFDFDF071F3F7F7FFDFBF0 E0F83CCEF6F7FBFBE0F8FCFEFEFFFF1F 071F3C736FEFDFDF071F3F7F7FFFFFF8 E0F83CCEF6F7FBFBE0F8FCFEFEBFDF0F 071F3C736FEFDFDF071F3F7F7FFFFFF7 E0F83CCEF6F7FBFBE0F8FCFEFECF9F3F 071F3C736FEFDFDF071F3F7F7CFBF7F7 E0F83CCEF6F7FBFBE0F8FCFE3EDFEFEF 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 DFDFEF6F733C1F07FBFDFF7F7F3F1F07 FBFBF7F6CE3CF8E0FFFFFFFEFEFCF8E0 DFDFEF6F733C1F07FFFFFF7F7F3F1F07 FBFBF7F6CE3CF8E0DFBFFFFEFEFCF8E0 DFDFEF6F733C1F07F2F8FD7F7F3F1F07 FBFBF7F6CE3CF8E07FFFFFFEFEFCF8E0 DFDFEF6F733C1F07F6FBFC7F7E3F1F07 FBFBF7F6CE3CF8E0EF7F3F7EFEFCF8E0 #15:MAIN SOUND 280030660000000018008133003A0000 08006060000000002800305519FE0000 38002020000000003800505000000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000