DIM CELLCOORDS(3,3,2) AS INTEGER DIM CELLS(3,3,2) AS BOOLEAN SUB DRAWCROSS(X AS INTEGER, Y AS INTEGER, SIZE AS INTEGER) SETCOLOR 205,90,22 DRAWLINE X+10, Y+10, X+10+SIZE, Y+10+SIZE DRAWLINE X+10+SIZE, Y+10, X+10, Y+10+SIZE END SUB FUNCTION ISWINNER(PLAYER AS INTEGER) AS BOOLEAN DIM VERT, HORIZ, DIAG1, DIAG2 AS BOOLEAN DIM VI, HI AS INTEGER FOR VI=1 TO 3 IF NOT VERT THEN VERT = CELLS(1,VI,PLAYER) AND CELLS(2,VI,PLAYER) AND CELLS(3,VI,PLAYER) END IF END FOR FOR HI=1 TO 3 IF NOT HORIZ THEN HORIZ = CELLS(HI,1,PLAYER) AND CELLS(HI,2,PLAYER) AND CELLS(HI,3,PLAYER) END IF END FOR DIAG1 = CELLS(1,1,PLAYER) AND CELLS(2,2, PLAYER) AND CELLS(3,3,PLAYER) DIAG2 = CELLS(1,3,PLAYER) AND CELLS(2,2,PLAYER) AND CELLS(3,1,PLAYER) ISWINNER = (VERT OR HORIZ OR DIAG1 OR DIAG2) END FUNCTION FUNCTION ISFILLED() AS BOOLEAN DIM I, J AS INTEGER DIM FILLED AS BOOLEAN FILLED=TRUE FOR I=1 TO 3 FOR J=1 TO 3 IF (NOT CELLS(I, J, 1)) AND (NOT CELLS(I, J, 2)) THEN FILLED=FALSE END IF END FOR END FOR ISFILLED=FILLED END FUNCTION SUB MAIN DIM W, H, SIZE AS INTEGER DIM I, J, K AS INTEGER DIM COL, ROW AS INTEGER DIM QUEUE AS BOOLEAN DIM TCHD, TCHX, TCHY AS INTEGER DIM GAMEOVER AS BOOLEAN GRAPHICS W = SCREENWIDTH() H = SCREENHEIGHT() SIZE = 100 FOR I=1 TO 3 FOR J=1 TO 3 CELLCOORDS(I, J, 1) = INTEGER(DOUBLE(W/2)-DOUBLE(SIZE)*1.5)+(SIZE*(I-1)) CELLCOORDS(I, J, 2) = INTEGER(DOUBLE(H/2)-DOUBLE(SIZE)*1.5)+(SIZE*(J-1)) END FOR END FOR WHILE NOT GAMEOVER SETCOLOR 70, 70, 70 CLS SETCOLOR 255, 255, 255 FOR I=1 TO 3 FOR J=1 TO 3 DRAWRECT CELLCOORDS(I, J, 1), CELLCOORDS(I, J, 2), SIZE, SIZE END FOR END FOR TCHD = TOUCHDOWN() TCHX = (TCHD / 65536) & 0x0000ffff TCHY = TCHD & 0x0000ffff FOR I=1 TO 3 FOR J=1 TO 3 IF TCHX > CELLCOORDS(I, J, 1)-1 AND TCHX < CELLCOORDS(I, J, 1)+SIZE AND TCHY > CELLCOORDS(I, J, 2)-1 AND TCHY < CELLCOORDS(I, J, 2)+SIZE AND (NOT CELLS(I, J, 1)) AND (NOT CELLS(I, J, 2)) THEN IF NOT QUEUE THEN CELLS(I, J, 1) = TRUE ELSEIF QUEUE THEN CELLS(I, J, 2) = TRUE END IF QUEUE = NOT QUEUE END IF END FOR END FOR FOR I=1 TO 3 FOR J=1 TO 3 IF CELLS(I, J, 1) THEN DRAWCROSS CELLCOORDS(I, J, 1), CELLCOORDS(I, J, 2), SIZE-SIZE/5 ELSEIF CELLS(I, J, 2) THEN SETCOLOR 50, 90, 170 DRAWCIRCLE (CELLCOORDS(I, J, 1)+SIZE/2), (CELLCOORDS(I, J, 2)+SIZE/2), (SIZE-(SIZE/5))/2 END IF END FOR END FOR REPAINT SLEEP 50 IF ISWINNER(1) THEN SLEEP 100 ALERT "[X] PLAYER 1 IS WINNER", "GAME OVER", "OK","","", TRUE GAMEOVER = TRUE ELSEIF ISWINNER(2) THEN SLEEP 100 ALERT "[O] PLAYER 2 IS WINNER", "GAME OVER", "OK","","", TRUE GAMEOVER = TRUE ELSEIF ISFILLED() THEN SLEEP 100 ALERT "GAME OVER", "", "OK","","", TRUE GAMEOVER=TRUE END IF END WHILE END SUB