1 NOEXPAND 5 RANDOMIZE 10 PRINT "YOU HAVE THE OPPORTUNITY OF TRYING TO BEAT THE COMPUTER" 20 PRINT "AT TIC-TAC-TOE, ENTER YOUR MOVES AS FOLLOWS: " 30 PRINT 35 YOUW=0:AMTW=0:TIES=0 40 DIM C(11),D(11) 50 FOR K=1 TO 11 60 READ C(K),D(K) 70 NEXT K 80 PRINT "...ROW NUMBER...COMMA...COLUMN NUMBER..." 90 PRINT 100 PRINT "ROWS ARE HORIZONTAL(ACROSS)...COLUMNS ARE VERTICAL(UP+DOWN)" 110 DIM B(9),A(3,3) 120 PRINT 130 PRINT "...........NEW GAME STARTING NOW.....................":PRINT 140 FOR J=1 TO 3 150 FOR I=1 TO 3 160 A(I,J)=0 170 NEXT I 180 I=I-1 190 NEXT J 200 J=J-1 210 Z=0 220 PRINT "YOUR MOVE ", 230 INPUT R,C 240 PRINT 250 IF R>3 OR R<1 THEN 520 260 IF C>3 OR C<1 THEN 520 270 IF A(R,C)<>0 THEN 520 280 A(R,C)=-1 290 GOSUB 1660 300 IF Z=1 THEN 2160 310 REM .........MACHINE MOVE............. 320 GOSUB 1030 330 REM .........TEST FOR GAME WIN........ 340 GOSUB 1660 350 IF Z=0 THEN 550 360 REM .........PRINT GAME BOARD......... 370 GOTO 380 380 PRINT 390 FOR K=1 TO 3 400 B=A(K,1) 410 D=A(K,2) 420 F=A(K,3) 430 GOSUB 770 440 IF K>2 THEN 460 450 PRINT "***************" 460 NEXT K 470 K=K-1 480 PRINT 490 IF Z<>0 THEN 2160 500 GOTO 220 510 STOP 520 PRINT "---- ILLEGAL MOVE -- TRY AGAIN ----" 530 PRINT 540 GOTO 220 550 T2=0 560 FOR J=1 TO 3 570 FOR I=1 TO 3 580 IF A(I,J)<>0 THEN 600 590 T2=T2+1 600 NEXT I 610 I=I-1 620 NEXT J 630 J=J-1 640 IF T2>0 THEN 670 650 GOSUB 1310 660 GOTO 370 670 IF T2>1 THEN 370 680 FOR J=1 TO 8 690 IF B(J)=-2 THEN 730 700 NEXT J 710 J=J-1 720 GOTO 650 730 GOSUB 2090 740 GOTO 290 750 REM ........PRINT TIC-TAC-TOE BOARD ROW...... 770 IF B<>0 THEN 840 780 PRINT " * "; 790 IF D<>0 THEN 870 800 PRINT " * "; 810 IF F<>0 THEN 900 820 PRINT " " 830 GOTO 1000 840 IF B>0 THEN 930 850 PRINT "YOU * "; 860 GOTO 790 870 IF D>0 THEN 950 880 PRINT "YOU * "; 890 GOTO 810 900 IF F>0 THEN 970 910 PRINT "YOU" 920 GOTO 830 930 PRINT "AMT * "; 940 GOTO 790 950 PRINT "AMT * "; 960 GOTO 810 970 PRINT "AMT" 980 GOTO 830 990 REM .........PRINT LEGENDS......... 1000 PRINT " * * " 1010 RETURN 1020 REM .....PROGRAM TO MAKE MOVE FOR THE MACHINE........ 1030 M=0:N=0 1040 M=INT(3.33*RND(M)) 1050 N=INT(3.33333*RND(N)) 1060 IF M=0 THEN 1030 1070 IF M>3 THEN 1030 1080 IF N=0 THEN 1050 1090 IF N>3 THEN 1050 1100 C(2)=M 1110 D(2)=N 1120 C(3)=M 1130 D(3)=N 1140 FOR I=1 TO 8 1150 IF B(I)>1 THEN 1340 1160 NEXT I 1170 I=I-1 1180 FOR I=1 TO 8 1190 IF B(I)<-1 THEN 1340 1200 NEXT I 1210 I=I-1 1220 IF R+C=0 THEN 1550 1230 FOR K=1 TO 11 1240 I=C(K) 1250 J=D(K) 1260 IF A(I,J)<>0 THEN 1290 1270 A(I,J)=1 1280 GOTO 1330 1290 NEXT K 1300 K=K-1 1310 PRINT " ... TIE GAME ... " 1320 Z=3 1325 TIES=TIES+1 1330 RETURN 1340 IF I>3 THEN 1420 1350 FOR J=1 TO 3 1360 IF A(I,J)=0 THEN 1400 1370 NEXT J 1380 J=J-1 1390 GOTO 1330 1400 A(I,J)=1 1410 GOTO 1330 1420 IF I>6 THEN 1500 1430 FOR J=1 TO 3 1440 IF A(J,I-3)=0 THEN 1480 1450 NEXT J 1460 J=J-1 1470 GOTO 1330 1480 A(J,I-3)=1 1490 GOTO 1330 1500 IF I>7 THEN 1550 1510 FOR J=1 TO 3 1520 IF A(J,J)=0 THEN 1590 1530 NEXT J 1540 J=J-1 1550 IF A(1,3)=0 THEN 1610 1560 IF A(3,1)=0 THEN 1630 1570 A(2,2)=1 1580 GOTO 1330 1590 A(J,J)=1 1600 GOTO 1330 1610 A(1,3)=1 1620 GOTO 1330 1630 A(3,1)=1 1640 GOTO 1330 1650 REM ....PROGRAM TO TEST GAME WINNING...... 1660 T1=0 1670 FOR J=1 TO 9 1680 B(J)=0 1690 NEXT J 1700 J=J-1 1710 J=1 1720 FOR I=1 TO 3 1730 IF A(J,1)<>A(J,I) THEN 1770 1740 NEXT I 1750 I=I-1 1760 T1=A(J,I) 1770 J=J+1 1780 IF J<4 THEN 1720 1790 J=J-1 1800 J=1 1810 FOR I=1 TO 3 1820 IF A(1,J)<>A(I,J) THEN 1860 1830 NEXT I 1840 I=I-1 1850 T1=A(I,J) 1860 J=J+1 1870 IF J<4 THEN 1810 1880 J=J-1 1890 IF A(1,1)=A(3,3) THEN 2020 1900 IF A(3,1)=A(1,3) THEN 2060 1910 IF T1<>0 THEN 2080 1920 FOR J=1 TO 3 1930 FOR I=1 TO 3 1940 B(J)=B(J)+A(J,I) 1950 B(J+3)=B(J+3)+A(I,J) 1960 NEXT I 1970 I=I-1 1980 NEXT J 1990 J=J-1 2000 B(7)=A(1,1)+A(2,2)+A(3,3) 2010 RETURN 2020 IF A(2,2)=A(3,3) THEN 2040 2030 GOTO 1900 2040 T1=A(2,2) 2050 GOTO 1910 2060 IF A(2,2)=A(1,3) THEN 2040 2070 GOTO 1910 2080 IF T1>0 THEN 2120 2090 PRINT " ... YOU WIN THIS TIME ..." 2100 Z=1 2105 YOUW=YOUW+1 2110 GOTO 1920 2120 PRINT " ... THE AM-100 WINS THIS TIME ..." 2130 Z=2 2135 AMTW=AMTW+1 2140 GOTO 1920 2150 REM ......END OF TEST WINNER PROGRAM...... 2160 PRINT "DO YOU WANT TO PLAY ANOTHER GAME: YES OR NO"; 2170 INPUT A$ 2180 IF MID(A$,1,1)="Y" THEN 140 2190 IF MID(A$,1,1)="N" THEN 2220 2200 PRINT "I SAID YES OR NO: TRY AGAIN" 2210 GOTO 2170 2220 PRINT:PRINT "YOU WON ";YOUW;" GAMES, I WON ";AMTW;" GAMES AND THERE WERE ";TIES;" TIES" 2225 PRINT:PRINT "IT'S BEEN FUN, COME AGAIN SOMETIME" 2227 PRINT:PRINT 2230 GOTO 2250 2240 DATA 2,2,0,0,0,0,1,1,3,3,1,3,3,1,1,2,3,2,2,3,2,1 2250 END