RANDOMIZE TIMER GAMEPAD 1 REM WAS8BIT DIM GLOBAL BOARD(3,3) DIM XSNAKE(25,2),YSNAKE(25,2),DXSNAKE(2),DYSNAKE(2) DIM CHEAD(2),CBODY(2),CTAIL(2) GOTO REBOOT DOREBOOT: WAIT 60 WHILE NOT BUTTON(0) WAIT VBL WEND CLS PAL 1 PRINT "REBOOTING......" PRINT PRINT "PRESS A/B" WAIT 60 WHILE NOT BUTTON(0) WAIT VBL WEND PLAY 0,53,90 SOUND 0 PLAY 1,52,90 SOUND 0 PLAY 2,51,90 SOUND 0 PLAY 3,50,90 SOUND 0 WAIT 90 CLS '::::::::::: REBOOT: '::::::::::: ISHOW=0 ITURN=0 DO ADD ISHOW,1,0 TO 2 PAL 1 IF ISHOW=1 THEN TEXT 2,0,"TIC-TAC-TOE-GAMES" IF ISHOW=2 THEN TEXT 2,0," BY WAS8BIT " IF ISHOW=0 THEN TEXT 2,0,"TAP A / B TO PLAY" FOR C=1 TO 11 STEP 5 IF C=1 THEN CALL SHOWTURN(0) IF C=6 THEN CALL SHOWTURN(1) IF C=11 THEN CALL SHOWTURN(2) FOR X=3 TO 14 STEP 5 FOR Y=1 TO 11 STEP 5 CALL PUTSQR(X,Y,C) NEXT Y NEXT X FOR IWAIT=1 TO 60 IF BUTTON(0) THEN GOTO DATARESET WAIT VBL NEXT IWAIT NEXT C LOOP DATARESET: CLS PLAY 0,42,15 SOUND 0 WAIT 15 PLAY 0,47,15 SOUND 0 WAIT 90 FOR X=1 TO 3 FOR Y=1 TO 3 BOARD(X,Y)=0 NEXT Y NEXT X CALL SHOWBOARD '::::::::::: WHOTURN: '::::::::::: CALL SHOWBOARD WAIT 15 CALL CHECKWIN ADD ITURN,1,1 TO 2 CALL SHOWTURN(0) WAIT 60 CALL SHOWTURN(ITURN) REM GOTO COMPUTER IF ITURN=1 THEN GOTO COMPUTER ELSE GOTO PLAYER '::::::::::: COMPUTER: '::::::::::: PLAY 1,14,60 SOUND 1 WAIT 90 PX=0 PY=0 CALL PICKSPOT(PX,PY,RND(30)+30) GOTO WHATGAME '::::::::::: PLAYER: '::::::::::: PLAY 3,73,1 SOUND 3 WAIT 5 PLAY 3,73,1 SOUND 3 WAIT 90 PX=0 PY=0 CALL MOVESPOT(PX,PY) GOTO WHATGAME '::::::::::: WHATGAME: '::::::::::: CX=2+5*(PX-1) CY=5*(PY-1) G_LO=CY*8+10 G_HI=CY*8+38 G_XCEN=CX*8+28 G_YCEN=CY*8+28 G_LEFT=CX*8+11 G_RIGHT=CX*8+42 G_SCORE1=0 G_SCORE2=0 PLAYGAME=0 WHILE PLAYGAME=0 PLAYGAME=RND(2) WEND IF PLAYGAME=1 THEN GOTO PLAYGAME_1 IF PLAYGAME=2 THEN GOTO PLAYGAME_2 '::::::::::: PLAYGAME_1: '::::::::::: PAL 1 TEXT 2,0,"<<< PONG >>>" REM SCORES SPRITE 0,5*8,0,106 SPRITE 1,15*8,0,106 REM BALL,PADDLES SPRITE 2,G_XCEN,G_YCEN,118 SPRITE 3,G_LEFT+1,G_YCEN-4,117 SPRITE 4,G_RIGHT+1,G_YCEN-4,119 PONG_Y1=SPRITE.Y(3) PONG_Y2=SPRITE.Y(4) PONG_RESETBALL: IF G_SCORE1=5 THEN BOARD(PX,PY)=2 GOTO PONG_OVER ELSE IF G_SCORE2=5 THEN BOARD(PX,PY)=1 GOTO PONG_OVER END IF SPRITE 2,G_XCEN,G_YCEN,118 PLAY 2,80,30 SOUND 2 WAIT 30 PONG_X=G_XCEN PONG_Y=G_YCEN PONG_DX=(RND(1)*2-1)/5 PONG_DY=(RND(1)*2-1)/5 DO IF PONG_Y2PONG_Y-4 AND RND(2)=0 AND PONG_Y2>G_LO THEN DEC PONG_Y2 SPRITE 4,,PONG_Y2, END IF IF UP(0) AND PONG_Y1>G_LO THEN DEC PONG_Y1 SPRITE 3,,PONG_Y1, END IF IF DOWN(0) AND PONG_Y1G_RIGHT+4 THEN PLAY 2,19,1 SOUND 2 INC G_SCORE1 PAL 0 SPRITE 0,SPRITE.X(0)+3,,100+G_SCORE1 WAIT 30 GOTO PONG_RESETBALL END IF IF PONG_YG_HI+8 THEN PONG_DY=-ABS(PONG_DY) SPRITE 2,PONG_X,PONG_Y, IF SPRITE HIT(2) THEN IF HIT=3 THEN PLAY 2,30,1 SOUND 2 PONG_DX=ABS(PONG_DX) CHECK=PONG_Y-PONG_Y1-4 PONG_DY=PONG_DY+CHECK/10 END IF IF HIT=4 THEN PLAY 2,30,1 SOUND 2 PONG_DX=-ABS(PONG_DX) CHECK=PONG_Y-PONG_Y2-4 PONG_DY=PONG_DY+CHECK/10 END IF END IF WAIT VBL LOOP PONG_OVER: FOR I=0 TO 4 SPRITE I,166,166,0 NEXT I GOTO WHOTURN '::::::::::: PLAYGAME_2: '::::::::::: REM SCORES REM SPRITE 0,5*8,0,106 REM SPRITE 1,15*8,0,106 CALL PUTSQR(CX+1,CY+1,-1) PAL 1 TEXT 2,0,"<<< SNAKE >>>" ISLOW=0 CX=CX+1 CY=CY+1 DXSNAKE(1)=1 DYSNAKE(1)=0 DXSNAKE(2)=-1 DYSNAKE(2)=0 ITAIL=1 XSNAKE(0,1)=2 YSNAKE(0,1)=1 XSNAKE(1,1)=1 YSNAKE(1,1)=1 XSNAKE(0,2)=3 YSNAKE(0,2)=3 XSNAKE(1,2)=4 YSNAKE(1,2)=3 PAL 0 CHEAD(1)=120 CBODY(1)=121 CTAIL(1)=122 CHEAD(2)=123 CBODY(2)=124 CTAIL(2)=125 TTAIL=0 CELL XSNAKE(0,1)+CX,YSNAKE(0,1)+CY,CHEAD(1) CELL XSNAKE(1,1)+CX,YSNAKE(1,1)+CY,CTAIL(1) CELL XSNAKE(0,2)+CX,YSNAKE(0,2)+CY,CHEAD(2) CELL XSNAKE(1,2)+CX,YSNAKE(1,2)+CY,CTAIL(2) PLAY 0,90,30 SOUND 4 DO ADD ISLOW,1,0 TO 30 IF ISLOW=0 THEN TTAIL=(TTAIL+1) MOD 10 IF TTAIL=0 THEN INC ITAIL ISLOW=15 PLAY 0,90,30 SOUND 4 END IF FOR II=1 TO 2 SX=XSNAKE(0,II)+DXSNAKE(II) SY=YSNAKE(0,II)+DYSNAKE(II) IF SX<0 OR SY<0 OR SX>4 OR SY>4 THEN C=-1 ELSE C=0 IF TTAIL=0 THEN C=1 IF C=0 THEN C=CELL.C(CX+SX,CY+SY) PAL 0 IF C=0 THEN ITIME=0 CELL CX+XSNAKE(ITAIL,II),CY+YSNAKE(ITAIL,II),0 FOR I=ITAIL TO 1 STEP -1 XSNAKE(I,II)=XSNAKE(I-1,II) YSNAKE(I,II)=YSNAKE(I-1,II) IF I=ITAIL THEN CC=CTAIL(II) ELSE CC=CBODY(II) CELL CX+XSNAKE(I,II),CY+YSNAKE(I,II),CC NEXT I XSNAKE(0,II)=SX YSNAKE(0,II)=SY CELL SX+CX,SY+CY,CHEAD(II) ELSE IF C=1 THEN ELSE IF II=1 THEN G_SCORE2=G_SCORE2+(1/2) PAL 3 NUMBER 13,0,INT(G_SCORE2),1 END IF IF II=2 THEN G_SCORE1=G_SCORE1+(1/5) PAL 4 NUMBER 7,0,INT(G_SCORE1),1 END IF STOP PLAY 3,ITIME,1 SOUND 3 WAIT 30 IF G_SCORE1>=5 THEN BOARD(PX,PY)=2 GOTO SNAKE_OVER ELSE IF G_SCORE2>=5 THEN BOARD(PX,PY)=1 GOTO SNAKE_OVER END IF END IF NEXT II END IF IF UP(0) AND DYSNAKE(1)=0 THEN DYSNAKE(1)=-1 DXSNAKE(1)=0 ELSE IF DOWN(0) AND DYSNAKE(1)=0 THEN DYSNAKE(1)=1 DXSNAKE(1)=0 ELSE IF LEFT(0) AND DXSNAKE(1)=0 THEN DXSNAKE(1)=-1 DYSNAKE(1)=0 ELSE IF RIGHT(0) AND DXSNAKE(1)=0 THEN DXSNAKE(1)=1 DYSNAKE(1)=0 END IF IF RND(4)=0 AND DYSNAKE(2)=0 THEN DYSNAKE(2)=-1 DXSNAKE(2)=0 ELSE IF RND(4)=0 AND DYSNAKE(2)=0 THEN DYSNAKE(2)=1 DXSNAKE(2)=0 ELSE IF RND(4)=0 AND DXSNAKE(2)=0 THEN DXSNAKE(2)=-1 DYSNAKE(2)=0 ELSE IF RND(4)=0 AND DXSNAKE(2)=0 THEN DXSNAKE(2)=1 DYSNAKE(2)=0 END IF WAIT VBL LOOP SNAKE_OVER: GOTO WHOTURN END SUB CHECKWIN A=BOARD(1,1)*BOARD(1,2)*BOARD(1,3) B=BOARD(2,1)*BOARD(2,2)*BOARD(2,3) C=BOARD(3,1)*BOARD(3,2)*BOARD(3,3) D=BOARD(1,1)*BOARD(2,1)*BOARD(3,1) E=BOARD(1,2)*BOARD(2,2)*BOARD(3,2) F=BOARD(1,3)*BOARD(2,3)*BOARD(3,3) G=BOARD(1,1)*BOARD(2,2)*BOARD(3,3) H=BOARD(3,1)*BOARD(2,2)*BOARD(1,3) IF A=1 OR B=1 OR C=1 OR D=1 OR E=1 OR F=1 OR H=1 THEN PAL 1 TEXT 2,0,"COMPUTER.....WINS" CALL SHOWTURN(1) GOTO DOREBOOT ELSE IF A=8 OR B=8 OR C=8 OR D=8 OR E=8 OR F=8 OR H=8 THEN PAL 1 TEXT 2,0,"PLAYER.......WINS" CALL SHOWTURN(2) GOTO DOREBOOT END IF END SUB SUB MOVESPOT(X,Y) NEWSPOT: CALL PICKSPOT(X,Y,1) WAIT 15 WHILE NOT BUTTON(0,0) IF BUTTON(0,1) THEN BOARD(X,Y)=0 CALL SHOWBOARD GOTO NEWSPOT END IF WAIT VBL WEND END SUB SUB PICKSPOT(X,Y,NOGO) FOR GO=1 TO NOGO I=-1 WHILE I<>0 X=RND(2)+1 Y=RND(2)+1 I=BOARD(X,Y) WEND BOARD(X,Y)=3 CALL SHOWBOARD WAIT VBL IF GO11 THEN C=96 CALL PUTSQR(PX+1,PY+1,C) NEXT Y NEXT X END SUB SUB PUTSQR(PX,PY,C) IF C=-1 THEN FOR IY=0 TO 4 FOR IX=0 TO 4 CELL PX+IX,PY+IY,0 NEXT IX NEXT IY ELSE FOR IY=0 TO 4 FOR IX=0 TO 4 CELL PX+IX,PY+IY,C+IX+(16*IY) NEXT IX NEXT IY END IF END SUB #1:MAIN PALETTES 003F300C003F3F00003C0C0000303000 000C0C15003F2A15003F2A15003F2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 007F7F7F7F7F7F7F0000000000000000 00FFFFFFFFFFFFFF0000000000000000 00FFFFFFFFFFFFFF0000000000000000 00FFFFFFFFFFFFFF0000000000000000 00FEFEFEFEFEFEFE0000000000000000 0000000000000000007F7F7F7F7F7F7F 000000000000000000FFFFFFFFFFFFFF 000000000000000000FFFFFFFFFFFFFF 000000000000000000FFFFFFFFFFFFFF 000000000000000000FEFEFEFEFEFEFE 007F7F7F7F7F7F7F007F7F7F7F7F7F7F 00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF 00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF 00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF 00FEFEFEFEFEFEFE00FEFEFEFEFEFEFE 00000000000000000000000000000000 7F7F7F7F7F7F7F7F0000000000000000 FFFFFFFFFFFFFFFF0000000000000000 FFFFFFFFFFFFFFFF0000000000000000 FFFFFFFFFFFFFFFF0000000000000000 FEFEFEFEFEFEFEFE0000000000000000 00000000000000007F7F7F7F7F7F7F7F 00000000000000001F0F0783C1E0F0F8 0000000000000000FFFFFFFFFFFF7E3C 0000000000000000F8F0E0C183070F1F 0000000000000000FEFEFEFEFEFEFEFE 7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F FEF8E0C1C78F8F1FFEF8E0C1C78F8F1F 000000FFFFFFFFFF000000FFFFFFFFFF 7F1F0783E3F1F1F87F1F0783E3F1F1F8 FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE 00000000000000000000000000000000 7F7F7F7F7F7F7F7F0000000000000000 FFFFFFFFFFFFFFFF0000000000000000 FFFFFFFFFFFFFFFF0000000000000000 FFFFFFFFFFFFFFFF0000000000000000 FEFEFEFEFEFEFEFE0000000000000000 00000000000000007F7F7F7F7F7F7F7F 0000000000000000FCFEFFFFFFFFFEFC 00000000000000001800008181000018 00000000000000003F7FFFFFFFFF7F3F 0000000000000000FEFEFEFEFEFEFEFE 7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F 1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8 FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE 00000000000000000000000000000000 7F7F7F7F7F7F7F7F0000000000000000 FFFFFFFFFFFFFFFF0000000000000000 FFFFFFFFFFFFFFFF0000000000000000 FFFFFFFFFFFFFFFF0000000000000000 FEFEFEFEFEFEFEFE0000000000000000 00000000000000007F7F7F7F7F7F7F7F 0000000000000000F8F0E0C183070F1F 00000000000000003C7EFFFFFFFFFFFF 00000000000000001F0F0783C1E0F0F8 0000000000000000FEFEFEFEFEFEFEFE 7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F 1F8F8FC7C1E0F8FE1F8F8FC7C1E0F8FE FFFFFFFFFF000000FFFFFFFFFF000000 F8F1F1E383071F7FF8F1F1E383071F7F FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE 00000000000000000000000000000000 7F7F7F7F7F7F7F000000000000000000 FFFFFFFFFFFFFF000000000000000000 FFFFFFFFFFFFFF000000000000000000 FFFFFFFFFFFFFF000000000000000000 FEFEFEFEFEFEFE000000000000000000 00000000000000007F7F7F7F7F7F7F00 0000000000000000FFFFFFFFFFFFFF00 0000000000000000FFFFFFFFFFFFFF00 0000000000000000FFFFFFFFFFFFFF00 0000000000000000FEFEFEFEFEFEFE00 7F7F7F7F7F7F7F007F7F7F7F7F7F7F00 FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00 FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00 FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00 FEFEFEFEFEFEFE00FEFEFEFEFEFEFE00 00784444784040000078444478404000 0040404040407C000040404040407C00 003844447C444400003844447C444400 00444428101010000044442810101000 007C404070407C00007C404070407C00 00784444784444000078444478444400 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0000000000000000001C222020221C00 0000000000000000001C222222221C00 00000000000000000022362A22222200 0000000000000000003C22223C202000 00000000000000000022222222221C00 0000000000000000003E080808080800 0000000000000000003E202038203E00 0000000000000000003C22223C222200 0000000000000000AAAAAAAAAAAAAAAA 007F4040404040400000000000000000 00FF0000000000000000000000000000 00FF0000000000000000000000000000 00FF0000000000000000000000000000 00FE0202020202020000000000000000 00612101010100000061210101010000 00713111010100000071311101010000 00793919090100000079391909010000 007D3D1D0D050000007D3D1D0D050000 007F3F1F0F070000007F3F1F0F070000 00000010281000000000000000000000 000000000000000000FEFCF8F0E00000 000000000000000000BEBCB8B0A00000 0000000000000000009E9C9890800000 0000000000000000008E8C8880800000 00000000000000000086848080800000 40404040404040400000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 02020202020202020000000000000000 80808080808080808080808080808080 80000000000000000000000000000000 00000000000000008080808080808080 00183C66663C180000183C66663C1800 0000183C3C1800000000183C3C180000 00000018180000000000001818000000 000000000000000000183C66663C1800 00000000000000000000183C3C180000 00000000000000000000001818000000 00000000000000000000000000000000 00000000000000000000000000000000 40404040404040400000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 02020202020202020000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 40404040404040400000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 02020202020202020000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 4040404040407F000000000000000000 000000000000FF000000000000000000 000000000000FF000000000000000000 000000000000FF000000000000000000 020202020202FE000000000000000000 #3:MAIN BG 00001410000000000000000000000000 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 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000 #15:MAIN SOUND 2800303A000000002800846C100A0000 08006060000000002800303019FE0000 380022AA00FF00003800505000000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000