5 DIM A(9) 6 DIM B(9) 7 DIM C(24) 8 DIM D(24) 9 DIM F(9) 10 LET A(1)=2 : LET A(2)=3 : LET A(3)=4 : LET A(4)=9 : LET A(5)=1 : LET A(6)=5 : LET A(7)=8 : LET A(8)=7 : LET A(9)=6 11 LET C(1)=2 : LET C(2)=3 : LET C(3)=4 : LET C(4)=9 : LET C(5)=1 : LET C(6)=5 : LET C(7)=8 : LET C(8)=7 : LET C(9)=6 : LET C(10)=2 12 LET C(11)=9 : LET C(12)=8 : LET C(13)=3 : LET C(14)=1 : LET C(15)=7 : LET C(16)=4 : LET C(17)=5 : LET C(18)=6 : LET C(19)=2 : LET C(20)=1 13 LET C(21)=6 : LET C(22)=4 : LET C(23)=1 : LET C(24)=8 14 LET F(1)=0 : LET F(2)=1 : LET F(3)=0-1 : LET F(4)=1 : LET F(5)=0-1 : LET F(6)=1 : LET F(7)=0-1 : LET F(8)=1 : LET F(9)=0-1 10 LET A(1)=2 : LET A(2)=3 : LET A(3)=4 : LET A(4)=9 : LET A(5)=1 : LET A(6)=5 : LET A(7)=8 : LET A(8)=7 : LET A(9)=6 11 LET C(1)=2 : LET C(2)=3 : LET C(3)=4 : LET C(4)=9 : LET C(5)=1 : LET C(6)=5 : LET C(7)=8 : LET C(8)=7 : LET C(9)=6 : LET C(10)=2 12 LET C(11)=9 : LET C(12)=8 : LET C(13)=3 : LET C(14)=1 : LET C(15)=7 : LET C(16)=4 : LET C(17)=5 : LET C(18)=6 : LET C(19)=2 : LET C(20)=1 13 LET C(21)=6 : LET C(22)=4 : LET C(23)=1 : LET C(24)=8 14 LET F(1)=0 : LET F(2)=1 : LET F(3)=0-1 : LET F(4)=1 : LET F(5)=0-1 : LET F(6)=1 : LET F(7)=0-1 : LET F(8)=1 : LET F(9)=0-1 19 PRINT "TIC-TAC-TOE" 20 PRINT 21 PRINT "THE MOVE POSITIONS ARE:" 22 PRINT 23 PRINT "1 2 3" 24 PRINT "4 5 6" 25 PRINT "7 8 9" 26 GOSUB 133 27 GOSUB 133 32 LET E=0 33 LET G=2 34 LET K=0 35 FOR I=1 TO 9 36 LET B(I)=0 37 NEXT I 38 FOR I=1 TO 24 39 LET D(I)=0 40 NEXT I 41 PRINT 42 PRINT 43 PRINT "--BEGIN GAME--" 44 PRINT "YOU WILL BE 'X', I WILL BE 'O'" 47 PRINT "DO YOU WANT ME TO GO FIRST? (y/n)" 48 LET I=READUPPERCHAR 49 IF I=89 THEN GOTO 65 50 LET L=0-1 51 PRINT "YOUR MOVE: "; 52 INPUT I 53 PRINT 54 PRINT 55 LET H=I 56 IF H|I THEN GOTO 50 57 IF H < 1 THEN GOTO 50 58 IF H>9 THEN GOTO 50 59 LET H=A(H) 60 IF B(H) | 0 THEN GOTO 50 61 IF K=1 THEN GOTO 64 62 LET G=F(H) 63 LET K=1 64 GOSUB 111 65 LET L=1 66 FOR I=1 TO 22 : REM STEP 3 67 IF D(I) + D(I+1) + D(I+2) = 0-3 THEN GOTO 92 68 LET I=I+2 : NEXT I 69 FOR I=1 TO 22 : REM STEP 3 70 IF D(I) + D(I+1) + D(I+2) = 2 THEN GOTO 90 71 LET I=I+2 : NEXT I 72 FOR I=1 TO 22 : REM STEP 3 73 IF D(I) + D(I+1) + D(I+2) = 0-2 THEN GOTO 106 74 LET I=I+2 : NEXT I 75 IF E=1 THEN GOTO 77 76 IF G = 0-1 THEN GOTO 78 77 IF B(1)=0 THEN GOTO 100 78 IF G | 0 THEN GOTO 82 79 FOR I=2 TO 8 : REM STEP 2 80 IF B(I)=0 THEN GOTO 101 81 LET I=I+1 : NEXT I 82 IF H=8 THEN GOTO 86 83 FOR I=H+1 TO 8 84 IF B(I)=0 THEN GOTO 101 85 NEXT I 86 FOR I=2 TO 9 87 IF B(I)=0 THEN GOTO 101 88 NEXT I 89 GOTO 98 90 PRINT "I WIN" 91 GOTO 900 92 PRINT "YOU ARE NOT ALLOWED TO WIN" 93 FOR I=1 TO 9 94 LET B(I)=1 95 NEXT I 96 GOSUB 117 97 GOTO 900 98 PRINT "DRAW" 99 GOTO 900 100 LET I=1 101 LET H=I 102 GOSUB 111 103 LET E=1 104 GOSUB 117 105 GOTO 50 106 FOR J=I TO I+2 107 IF D(J)=0 THEN GOTO 109 108 NEXT J 109 LET I=C(J) 110 GOTO 101 111 LET B(H)=L 112 FOR M=1 TO 24 113 IF C(M) | H THEN GOTO 115 114 LET D(M)=L 115 NEXT M 116 RETURN 117 CLS : LOCATE 10,1 : FOR N=1 TO 9 118 IF B(N)=0 THEN GOTO 200 119 NEXT N 120 IF N<100 THEN GOTO 98 121 FOR N=1 TO 9 : REM STEP 3 122 FOR O= 0 TO 2 123 IF B(A(O+N))=0 THEN GOTO 127 124 IF B(A(O+N))=1 THEN GOTO 129 125 PRINT "X "; 126 GOTO 130 127 PRINT "- "; 128 GOTO 130 129 PRINT "O "; 130 NEXT O 131 PRINT 132 LET N=N+2 : NEXT N 133 PRINT 136 RETURN 137 END 200 LET N=1000 210 GOTO 119 900 GOTO 910 910 PRINT "TRY AGAIN (y/n)" 920 LET I=READUPPERCHAR 930 IF I|89 THEN GOTO 999 940 GOTO 27 999 END