10 DEFINT A-Z 20 T=0 30 DIM S(8) 40 FOR I=0 TO 8 50 LET S(I)=0 60 NEXT I 70 PRINT 80 IF T=0 THEN 100 90 INPUT "ANOTHER GAME";L$:IF LEFT$(L$,1)="N" THEN 1780 100 T=1:PRINT CHR$(26) 110 PRINT "TIC-TAC-TOE" 120 PRINT "MATRIX: 1 : 2 : 3" 130 PRINT " -----------" 140 PRINT " 4 : 5 : 6" 150 PRINT " -----------" 160 PRINT " 7 : 8 : 9" 170 GOSUB 750 180 IF A=5 THEN 210 190 S(4)=7 200 GOTO 250 210 IF S(O)<>0 THEN 240 220 LET S(0)=7 230 GOTO 250 240 S(2)=7 250 GOSUB 830 260 GOSUB 750 270 GOSUB 1020 280 IF R<>0 THEN 330 290 PRINT 300 PRINT "YOU WIN, YOU CHEAT!" 310 GOSUB 830 320 GOTO 40 330 A=0 340 FOR I=0 TO 8 350 IF S(I)<>0 THEN 370 360 A=1 370 NEXT I 380 IF A=1 THEN 420 390 PRINT 400 PRINT"THE GAME IS A TIE. OH WELL..." 410 GOTO 310 420 IF R<>2 THEN 510 430 S(B)=7 440 GOSUB 1020 450 IF R<>1 THEN 490 460 PRINT 470 PRINT "I WIN! HA! HA!" 480 GOTO 310 490 GOSUB 830 500 GOTO 260 510 IF R<>3 THEN 540 520 S(B)=7 530 GOTO 460 540 IF S(4)<>0 THEN 570 550 S(4)=7 560 GOTO 490 570 IF S(O)<>0 THEN 600 580 LET S(O)=7 590 GOTO 490 600 IF S(2)><0 THEN 630 610 LET S(2)=7 620 GOTO 490 630 IF S(6)<>0 THEN 660 640 S(6)=7 650 GOTO 490 660 IF S(8)<>0 THEN 690 670 S(8)=7 680 GOTO 490 690 I=1 700 IF S(I)<>0 THEN 730 710 S(I)=7 720 GOTO 490 730 I=I+2 740 GOTO 700 750 PRINT 760 INPUT "CHOOSE X";A 770 IF S(A-1)=0 THEN 810 780 PRINT 790 PRINT "HUH? YOU CAN'T MOVE THERE, DUMMY! IT'S MY SQUARE!" 800 GOTO 760 810 S(A-1)=1 820 RETURN 830 PRINT 840 FOR I=0 TO 6 STEP 3 850 FOR J=0 TO 2 860 K=I+J 870 B=S(K) 880 IF B<>0 THEN 910 890 PRINT" "; 900 GOTO 950 910 IF B<>1 THEN 940 920 PRINT" X "; 930 GOTO 950 940 PRINT" O "; 950 IF J=2 THEN 970 960 PRINT":"; 970 NEXT J 980 PRINT 990 IF I=6 THEN 1010 1000 PRINT "-----------" 1010 NEXT I 1020 LET V=3 1030 GOSUB 1240 1040 IF R<>V THEN 1070 1050 R=0 1060 RETURN 1070 V=21 1080 GOSUB 1240 1090 IF R<>V THEN 1120 1100 R=1 1110 RETURN 1120 V=14 1130 GOSUB 1240 1140 IF R<>V THEN 1170 1150 R=3 1160 RETURN 1170 V=2 1180 GOSUB 1240 1190 IF R<>V THEN 1220 1200 R=2 1210 RETURN 1220 R=4 1230 RETURN 1240 F=0 1250 E=2 1260 I=1 1270 GOSUB 1710 1280 IF R<>V THEN 1300 1290 RETURN 1300 F=3 1310 E=5 1320 I=1 1330 GOSUB 1710 1340 IF R<>V THEN 1360 1350 RETURN 1360 F=6 1370 E=8 1380 I=1 1390 GOSUB 1710 1400 IF R<>V THEN 1420 1410 RETURN 1420 F=0 1430 E=6 1440 I=3 1450 GOSUB 1710 1460 IF R<>V THEN 1480 1470 RETURN 1480 F=1 1490 E=7 1500 I=3 1510 GOSUB 1710 1520 IF R<>V THEN 1540 1530 RETURN 1540 F=2 1550 E=8 1560 I=3 1570 GOSUB 1710 1580 IF R<>V THEN 1600 1590 RETURN 1600 F=0 1610 E=8 1620 I=4 1630 GOSUB 1710 1640 IF R<>V THEN 1660 1650 RETURN 1660 F=2 1670 E=6 1680 I=2 1690 GOSUB 1710 1700 RETURN 1710 R=0 1720 FOR J=F TO E STEP I 1730 R=R+S(J) 1740 IF S(J)<>0 THEN 1760 1750 B=J 1760 NEXT J 1770 RETURN 1780 RUN "DIR" 1790 END 0 FOR J=F TO E STEP I 1730 R=R+S(J) 1740 IF S(J)<>0 THEN 1760 1750 B=J 1760 NEXT J 1770 RETURN 1780