DIM GLOBAL BOARD(3,3),SCORE(2) GLOBAL FALSE,TRUE FALSE=0 TRUE=-1 REM WAS8BIT GAMEPAD 1 RANDOMIZE TIMER BG 1 FOR IY=0 TO 8 STEP 8 CALL POP(2,0+IY,4) CALL POP(6,0+IY,8) CALL POP(10,0+IY,4) CALL POP(14,0+IY,8) CALL POP(2,4+IY,8) CALL POP(6,4+IY,4) CALL POP(10,4+IY,8) CALL POP(14,4+IY,4) NEXT IY NEWGAME: FOR X=0 TO 3 FOR Y=0 TO 3 BOARD(X,Y)=0 NEXT Y NEXT X IPLAY=0 PLAYER: P=1 GOSUB GETXY GOSUB SHOW GOSUB GETACT IF U THEN GOSUB UDO IF D THEN GOSUB DDO IF L THEN GOSUB LDO IF R THEN GOSUB RDO IF A THEN GOSUB ADO IF B THEN GOSUB BDO GOSUB CHECKWIN IF IWIN>0 THEN GOTO DOWIN REM COMPUTER: P=2 GOSUB GETXY GOSUB SHOW GOSUB BDO WAIT VBL GOSUB CHECKWIN IF IWIN>0 THEN GOTO DOWIN GOTO PLAYER DOWIN: SCORE(IWIN)=SCORE(IWIN)+1 PAL 2 NUMBER 0,0,SCORE(1),2 NUMBER 18,0,SCORE(2),2 PLAY 0,90,60 WAIT 60*3 GOTO NEWGAME GETACT: ACT=FALSE WHILE ACT=FALSE U=UP(0) D=DOWN(0) L=LEFT(0) R=RIGHT(0) A=BUTTON(0,0) B=BUTTON(0,1) ACT=U+D+L+R+A+B WEND RETURN GETXY: IPLAY=IPLAY+1 IF IPLAY=17 THEN SCORE(2)=SCORE(2)+1 GOTO DOWIN END IF C=9 WHILE C>0 X=INT(RND*4) Y=INT(RND*4) C=BOARD(X,Y) WEND BOARD(X,Y)=P RETURN SHOW: BG 0 PAL 1 FOR Y=0 TO 3 FOR X=0 TO 3 C=BOARD(X,Y) IF C=0 THEN CC=0 IF C=1 THEN CC=12 IF C=2 THEN CC=64 CALL POP(2+X*4,Y*4,CC) NEXT X NEXT Y WAIT VBL RETURN SUB POP(X,Y,C) FOR IX=0 TO 3 FOR IY=0 TO 3 CELL X+IX,Y+IY,C+IX+IY*16 NEXT IY NEXT IX END SUB UDO: DX=0 DY=-1 GOSUB SHIFT RETURN DDO: DX=0 DY=1 GOSUB SHIFT RETURN LDO: DX=-1 DY=0 GOSUB SHIFT RETURN RDO: DX=1 DY=0 GOSUB SHIFT RETURN ADO: RETURN BDO: R=INT(RND*5) IF R=1 THEN GOSUB UDO IF R=2 THEN GOSUB DDO IF R=3 THEN GOSUB LDO IF R=4 THEN GOSUB RDO RETURN SHIFT: FOR II=1 TO 3 FOR X=0 TO 3 FOR Y=0 TO 3 NX=X+DX NY=Y+DY IF NX<0 THEN NX=0 IF NX=4 THEN NX=3 IF NY<0 THEN NY=0 IF NY=4 THEN NY=3 C1=BOARD(X,Y) C2=BOARD(NX,NY) IF C1>0 AND C2=0 THEN BOARD(X,Y)=0 BOARD(NX,NY)=C1 END IF NEXT Y NEXT X NEXT II GOSUB SHOW PLAY 0,90,1 WAIT 15 RETURN CHECKWIN: IWIN=2 GOSUB WW IF IWIN=0 THEN IWIN=1 GOSUB WW END IF RETURN WW: IWW=0 FOR X=0 TO 3 I=BOARD(X,0) W=FALSE IF I=IWIN THEN W=TRUE FOR Y=1 TO 3 IF BOARD(X,Y)<>IWIN THEN W=FALSE NEXT Y END IF IF W=TRUE THEN IWW=IWIN NEXT X FOR Y=0 TO 3 I=BOARD(0,Y) W=FALSE IF I=IWIN THEN W=TRUE FOR X=1 TO 3 IF BOARD(X,Y)<>IWIN THEN W=FALSE NEXT X END IF IF W=TRUE THEN IWW=IWIN NEXT Y W=TRUE FOR I=0 TO 3 IF BOARD(I,I)<>IWIN THEN W=FALSE NEXT I IF W=TRUE THEN IWW=IWIN W=TRUE FOR I=0 TO 3 IF BOARD(3-I,I)<>IWIN THEN W=FALSE NEXT I IF W=TRUE THEN IWW=IWIN IF IWW>0 THEN IWIN=IWW ELSE IWIN=0 RETURN #1:MAIN PALETTES 002A1510000C3400003F3F00003F3C00 003F2A15003F2A15003F2A15003F2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 FFFFFFDBFFFFEDFFFFFFFFFFFFFFFFFF FFFFFFDBFFFFEDFFFFFFFFFFFFFFFFFF FFFFFFDBFFFFEDFFFFFFFFFFFFFFFFFF FFFFFFDBFFFFEDFFFFFFFFFFFFFFFFFF 0000002400001200FFFFFFFFFFFFFFFF 0000002400001200FFFFFFFFFFFFFFFF 0000002400001200FFFFFFFFFFFFFFFF 0000002400001200FFFFFFFFFFFFFFFF C0E070381C0E07030000000000000000 00000000000000800000000000000000 00000000000000010000000000000000 03070E1C3870E0C00000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 FFFFFFDBFFFFEDFFFFFFFFFFFFFFFFFF FFFFFFDBFFFFEDFFFFFFFFFFFFFFFFFF FFFFFFDBFFFFEDFFFFFFFFFFFFFFFFFF FFFFFFDBFFFFEDFFFFFFFFFFFFFFFFFF 0000002400001200FFFFFFFFFFFFFFFF 0000002400001200FFFFFFFFFFFFFFFF 0000002400001200FFFFFFFFFFFFFFFF 0000002400001200FFFFFFFFFFFFFFFF 01000000000000000000000000000000 C0E070381C0E07030000000000000000 03070E1C3870E0C00000000000000000 80000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 FFFFFFDBFFFFEDFFFFFFFFFFFFFFFFFF FFFFFFDBFFFFEDFFFFFFFFFFFFFFFFFF FFFFFFDBFFFFEDFFFFFFFFFFFFFFFFFF FFFFFFDBFFFFEDFFFFFFFFFFFFFFFFFF 0000002400001200FFFFFFFFFFFFFFFF 0000002400001200FFFFFFFFFFFFFFFF 0000002400001200FFFFFFFFFFFFFFFF 0000002400001200FFFFFFFFFFFFFFFF 00000000000000010000000000000000 03070E1C3870E0C00000000000000000 C0E070381C0E07030000000000000000 00000000000000800000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 FFFFFFDBFFFFEDFFFFFFFFFFFFFFFFFF FFFFFFDBFFFFEDFFFFFFFFFFFFFFFFFF FFFFFFDBFFFFEDFFFFFFFFFFFFFFFFFF FFFFFFDBFFFFEDFFFFFFFFFFFFFFFFFF 0000002400001200FFFFFFFFFFFFFFFF 0000002400001200FFFFFFFFFFFFFFFF 0000002400001200FFFFFFFFFFFFFFFF 0000002400001200FFFFFFFFFFFFFFFF 03070E1C3870E0C00000000000000000 80000000000000000000000000000000 01000000000000000000000000000000 C0E070381C0E07030000000000000000 0000000000000000000003070C183030 00000000000000001FFFE00000000000 0000000000000000F8FF070000000000 00000000000000000000C0E030180C0C 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0000000000000000606060C0C0C0C0C0 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000606060303030303 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0000000000000000C0C0C0C0C0606060 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000303030303060606 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000003030180C07030000 00000000000000000000000000E0FF1F 0000000000000000000000000007FFF8 00000000000000000C0C1830E0C00000