Back to Main page.
Back to Main tapes page.
1000  DIM A$[72]
1005  GOSUB 8000
1010  REM: ***** TIC-TAC-TOE
1020  F=Z2=0
1030  F=0
1040  MAT E=CON
1050  PRINT "Do you want to move first ? ";
1060  LINPUT A$
1070  A$=UPS$(A$)
1080  IF  NOT LEN(A$) THEN 1130
1090  GOTO POS("YN",A$[1,1])+1 OF 1100,1130,1830
1100  PRINT "Yes or No please"
1110  GOTO 1050
1120  IF F THEN 1170
1130  FOR A=1 TO 9
1140  IF E[A]=1 THEN 1170
1150  NEXT A
1160  GOTO 1910
1170  A$=" X0"
1180  IF Z2 THEN 1250
1190  PRINT LIN(1);
1200  FOR A=1 TO 9
1210  PRINT "["A$[E[A],E[A]]"]";
1220  IF A/3#INT(A/3) THEN 1240
1230  PRINT LIN(0),LIN(-1);
1240  NEXT A
1250  IF F THEN 130
1260  PRINT LIN(1)"Your move: ";
1280  LINPUT A$
1290  IF  NOT LEN(A$) THEN 1260
1300  CONVERT A$[LEN(A$)] TO A,1310
1310  Z2=POS(A$,"N")
1320  IF POS(A$,"B") THEN 1170
1330  IF A AND A<10 THEN 1360
1340  PRINT "BAD POSITION"
1350  GOTO 1260
1360  IF E[A]#1 THEN 1340
1370  E[A]=2
1380  RESTORE 1940
1390  FOR A=1 TO 8
1400  READ B,C,D
1410  IF E[B]=2 AND E[C]=2 AND E[D]=2 THEN 1980
1420  NEXT A
1430  RESTORE 1940
1440  FOR A=1 TO 8
1450  READ B,C,D
1460  IF E[B]#3 OR E[C]#3 OR E[D]#1 THEN 1500
1470  X=D
1480  E[D]=3
1490  GOTO 2010
1500  IF E[B]#3 OR E[C]#1 OR E[D]#3 THEN 1540
1510  X=C
1520  E[C]=3
1530  GOTO 2010
1540  IF E[B]#1 OR E[C]#3 OR E[D]#3 THEN 1580
1550  X=B
1560  E[B]=3
1570  GOTO 2010
1580  NEXT A
1590  RESTORE 1940
1600  FOR A=1 TO 8
1610  READ B,C,D
1620  IF E[B]#2 OR E[C]#2 OR E[D]#1 THEN 1660
1630  X=D
1640  E[D]=3
1650  GOTO 2050
1660  IF E[B]#2 OR E[C]#1 OR E[D]#2 THEN 1700
1670  X=C
1680  E[C]=3
1690  GOTO 2050
1700  IF E[B]#1 OR E[C]#2 OR E[D]#2 THEN 1740
1710  X=B
1720  E[B]=3
1730  GOTO 2050
1740  NEXT A
1750  RESTORE 1950
1760  FOR A=1 TO 14
1770  READ B,C,D
1780  IF E[B]#2 OR E[C]#2 OR E[D]#1 THEN 1820
1790  X=D
1800  E[D]=3
1810  GOTO 2080
1820  NEXT A
1830  RESTORE 1970
1840  FOR A=1 TO 9
1850  READ B
1860  IF E[B]#1 THEN 1900
1870  E[B]=3
1880  X=B
1890  GOTO 2080
1900  NEXT A
1910  PRINT "CATS GAME"'10
1920  F=1
1930  GOTO 1120
1940  DATA 1,2,3,4,5,6,7,8,9,1,4,7,2,5,8,3,6,9,1,5,9,3,5,7
1950  DATA 2,4,1,4,8,7,8,6,9,6,2,1,1,6,3,3,8,9,9,4,7,7,2,1
1960  DATA 4,3,1,2,9,3,6,7,9,8,1,7,1,9,2,3,7,6
1970  DATA 5,9,1,7,3,2,4,6,8
1980  PRINT LIN(2)"Congratulations, you win"'7"!"'7"!"'7"!"
1990  F=1
2000  GOTO 1130
2010  CONVERT X TO B$
2020  PRINT LIN(1)"Computer moves to position "B$" and wins!"'7"!"'7"!"'7"!"
2030  F=1
2040  GOTO 1120
2050  CONVERT X TO B$
2060  PRINT "Computer blocks at position "B$
2070  GOTO 1120
2080  CONVERT X TO B$
2090  PRINT "Computer moves to position "B$
2100  GOTO 1120
2110  GOTO 130
2120  END 
8000  REM *** This section was written by Lane Rollins.
8010  DIM Z1$[10]
8020  PRINT "Instructions: ";
8030  LINPUT Z1$
8040  IF Z1$[1,1]="N" THEN 8210
8050  PRINT ""
8060  PRINT "    THE OBJECT OF THIS GAME IS TO GET THREE 'X'S IN A ROW OR"
8070  PRINT "COLUMN BEFORE THE COMPUTER GETS THREE 'O'S IN A ROW OR COLUMN."
8080  PRINT "HERE IS AN EXAMPLE:"
8090  PRINT ""
8100  PRINT "     [ ][X][ ]"
8110  PRINT "     [ ][O][ ]"
8120  PRINT "     [ ][ ][ ]"
8130  PRINT ""
8140  PRINT "    THE 'X' IS ON POSITION 2 AND THE 'O' IS ON POSITION 5."
8150  PRINT "P.S.  EXPERTS CAN TYPE 'N' BEFORE THEIR NUMBER TO SPECIFY NO BOARD"
8160  PRINT "IS TO BE PRINTED, AND TYPE A 'B' TO RECIEVE A BOARD AS THE GAME"
8170  PRINT "PROGRESSES."
8180  PRINT ""
8190  PRINT "WARNING:  THE COMPUTER HAS NEVER LOST THIS GAME."
8200  PRINT ""
8210  RETURN 
8220  END