Compucolor.org – Virtual Media

Listing of file='XO.BAS;01' on disk='vmedia/board_games-sector.ccvf'

1 REM  COPYRIGHT (C) 1981 BY D.PEEL(VERSION 4:81)
2 REM  21 DERSINGHAM CRES.,THORNHILL,ONT.,CANADA,L3T4P5
3 PLOT 6,39,12,14:PLOT 3,19,10:PRINT "COMPUCOLOR PRESENTS"
4 GOTO 15
5 XX= 15:YY= 25:HH= 5:WW= 49:CC= 1:GOSUB 10:DIM LE(59,4),BR(4,4)
6 GOSUB 100:N1$= "COMPUCOLOR":PLOT 27,24:GOTO 1000
7 Z9= CALL (0)
8 PLOT 3,XX,YY+ HH- 1:PRINT SPC( WW)""
9 PLOT 3,XX,YY+ HH- 1:RETURN
10 GOSUB 31
11 Z= 28672+ 128* YY+ XX+ XX:AD= TM+ 2:GOSUB 30
12 Z= 128- WW- WW:AD= TM+ 25:GOSUB 30
13 POKE TM+ 5,HH- 1:POKE TM+ 7,WW* (CC+ 1):POKE TM+ 19,35* (1- CC)
14 RETURN
15 GOSUB 31:RESTORE 16
16 DATA 33,-1,-1,6,-1,14,-1,17,128,0,25,126
17 DATA 17,128,255,25,119,35,-1,13,194,-1,-1
18 DATA 17,-1,-1,25,5,194,-1,-1,201
19 IF TM> 65503THEN TM= TM- 32:GOTO 23
20 FOR I= 1TO 32:READ A
21 IF A> = 0AND A< > PEEK (TM+ 1)THEN I= 32:TM= TM- 32
22 NEXT I
23 RESTORE 16
24 FOR I= 1TO 32:READ A:POKE TM+ I,A- (A< 0):NEXT I
25 Z= TM+ 1:AD= 33283:GOSUB 30
26 Z= TM:AD= ER:GOSUB 30
27 Z= TM+ 6:AD= TM+ 30:GOSUB 30
28 Z= TM+ 8:AD= TM+ 22:GOSUB 30
29 CLEAR 75:GOTO 5
30 ZZ= INT (Z/ 256):POKE AD,Z- 256* ZZ:POKE AD+ 1,ZZ:RETURN
31 ER= 32940:TM= 256* PEEK (ER+ 1)+ PEEK (ER):RETURN
100 RESTORE 65000
120 SP$(1)= CHR$ (10)+ CHR$ (26)
130 SP$(3)= CHR$ (28)+ CHR$ (26)
135 SP$(4)= CHR$ (32)
140 FOR X= 1TO 59:FOR Y= 1TO 4
150 READ LE(X,Y)
160 NEXT Y,X:RETURN
510 PLOT 3,A,B:GOSUB 710
515 IF LEN (A$)= 0THEN 500
520 FOR Y= 1TO LEN (A$)
530 J= ASC (MID$ (A$,Y,1))
540 IF J> 90THEN 600
550 IF J< 32THEN PLOT 29,J:GOTO 630
560 M= PEEK (33227)
570 X= J- 31
580 IF M> 60THEN GOSUB 710:PRINT :PRINT
590 FOR Z= 1TO 4
600 IF LE(X,Z)= > 32THEN PLOT 29:PRINT CHR$ (LE(X,Z));
610 IF LE(X,Z)< 32THEN PLOT 30:PRINT CHR$ (LE(X,Z)+ 96);
620 PRINT SP$(Z);:NEXT Z
630 NEXT Y:RETURN
710 PLOT 10,10,10,10
720 PLOT 28,28,28,28:RETURN
1000 PLOT 6,2:PLOT 14,12::A$= "TIC":A= 2:B= 2:GOSUB 510:A$= "TAC":A= 25:B= 13:GOSUB 510:A$= "TOE":A= 50:B= 23:GOSUB 510
1010 FOR X= 1TO 500:NEXT X
1020 PLOT 12,15:PLOT 6,4:PLOT 2,21,127,242,106,127,106,33,21,33,21,127,255
1030 PLOT 6,3:PLOT 2,49,120,242,49,40,255:PLOT 2,77,120,242,77,40,255
1040 PLOT 2,26,65,242,102,65,255:PLOT 2,26,96,242,102,96,255:GOSUB 64000
1045 GOSUB 20000:GOTO 1060
1050 PLOT 14:A= 18:B= 18:GOSUB 510:RETURN
1051 PLOT 14:A= 31:B= 18:GOSUB 510:RETURN
1052 PLOT 14:A= 44:B= 18:GOSUB 510:RETURN
1053 PLOT 14:A= 18:B= 10:GOSUB 510:RETURN
1054 PLOT 14:A= 31:B= 10:GOSUB 510:RETURN
1055 PLOT 14:A= 44:B= 10:GOSUB 510:RETURN
1056 PLOT 14:A= 18:B= 3:GOSUB 510:RETURN
1057 PLOT 14:A= 31:B= 3:GOSUB 510:RETURN
1058 PLOT 14:A= 44:B= 3:GOSUB 510:RETURN
1060 PLOT 6,3:PLOT 15:GOSUB 7:PRINT :GOSUB 7:INPUT "NUMBER OF PLAYERS ? ";NP
1061 IF NP< > 1AND NP< > 2THEN GOSUB 7:PRINT :GOSUB 7:PRINT "MUST BE EITHER 1 OR 2 PLAYERS !!":GOTO 1060
1062 IF NP= 2THEN 10000
1066 PLOT 6,3:PLOT 15:GOSUB 7:PRINT :GOSUB 7:INPUT "LEVEL OF PLAY (1) OR (2) ? ";RT
1067 IF RT< > 1AND RT< > 2THEN GOSUB 7:PRINT :GOSUB 7:PRINT "MUST BE EITHER LEVEL 1 OR 2 !!":GOTO 1066
1068 IF NM= 1THEN 1080
1069 GOSUB 7:PRINT :GOSUB 7:INPUT "WHAT IS YOUR FIRST NAME ? ";NA$
1070 IF LEN (NA$)< 2THEN GOSUB 7:PRINT :GOSUB 7:PRINT "BE SERIOUS !!":GOTO 1069
1080 GOSUB 7:PRINT :GOSUB 7:PRINT "DO YOU WISH TO GO FIRST ";NA$;:INPUT " ? ";A9$
1081 IF ASC (A9$)< > 89AND ASC (A9$)< > 78THEN GOSUB 7:PRINT :GOSUB 7:PRINT "ANSWER Y OR N !!!":GOTO 1080
1090 NM= 0
2010 IF A9$= "Y"THEN N2$= NA$:A1$= N2$:PLOT 6,1:PLOT 3,0,0:PRINT N1$:PLOT 6,6:PLOT 3,55,0:PRINT N2$:BN= 6:GOTO 10090
2020 A1$= N1$:N2$= NA$:PLOT 6,1:PLOT 3,0,0:PRINT N1$:PLOT 6,6:PLOT 3,55,0:PRINT N2$
2025 RH= 1:GOSUB 60000:POKE 33209,0
2030 T= PEEK (33209)* 10:FOR F= 1TO T:BX= INT ((5- 1)* RND (1)+ 1):NEXT F
2031 GOSUB 40000:GOSUB 10400:KL= KL+ 1:SX= BX:FX= BX:BN= 2:GOSUB 62100:GOTO 10110
3010 BN= 3:GH= KL:M1= 8:GOSUB 9000:M1= 2:GOSUB 9000:IF GH< > KLTHEN SX= BX:GOSUB 62100:GOTO 10110
3020 IF BR(2,2)= 1THEN BX= SX+ 2:GOSUB 40000:GOSUB 10400:KL= KL+ 1:GOSUB 62100:SX= BX:GOTO 10110
3025 IF RH= 1AND RT= 2THEN GOSUB 30000
3030 IF BX= 2AND K1= 8THEN K= 3:GOSUB 10400:KL= KL+ 1:GOSUB 62100:SX= BX:GOTO 10110
3035 IF BX= 2AND K1= 6THEN K= 7:GOSUB 10400:KL= KL+ 1:GOSUB 62100:SX= BX:GOTO 10110
3040 IF BX= 1AND K1= 8THEN K= 1:GOSUB 10400:KL= KL+ 1:GOSUB 62100:SX= BX:GOTO 10110
3045 IF BX= 1AND K1= 4THEN K= 9:GOSUB 10400:KL= KL+ 1:GOSUB 62100:SX= BX:GOTO 10110
3050 IF BX= 4AND K1= 4THEN K= 3:GOSUB 10400:KL= KL+ 1:GOSUB 62100:SX= BX:GOTO 10110
3055 IF BX= 4AND K1= 2THEN K= 7:GOSUB 10400:KL= KL+ 1:GOSUB 62100:SX= BX:GOTO 10110
3060 IF BX= 3AND K1= 6THEN K= 1:GOSUB 10400:KL= KL+ 1:GOSUB 62100:SX= BX:GOTO 10110
3065 IF BX= 3AND K1= 2THEN K= 9:GOSUB 10400:KL= KL+ 1:GOSUB 62100:SX= BX:GOTO 10110
3070 GOSUB 8900:GOSUB 40000:GOSUB 10400:KL= KL+ 1:SX= BX:GOSUB 62100:GOTO 10110
3080 BN= 4
3081 IF DF= 1THEN DF= 0:GOSUB 32000
3090 GH= KL:M1= 8:GOSUB 9000:M1= 2:GOSUB 9000:IF GH< > KLTHEN SX= BX:GOSUB 62100:GOTO 10110
4000 IF FX= 2AND BR(3,1)= 1THEN BX= BX+ 2:GOSUB 40000:GOSUB 10400:KL= KL+ 1:SX= BX:GOSUB 62100:GOTO 10110
4010 IF FX= 1AND BR(3,3)= 1THEN BX= BX+ 2:GOSUB 40000:GOSUB 10400:KL= KL+ 1:SX= BX:GOSUB 62100:GOTO 10110
4020 IF FX= 4AND BR(1,3)= 1THEN BX= BX+ 2:GOSUB 40000:GOSUB 10400:KL= KL+ 1:SX= BX:GOSUB 62100:GOTO 10110
4030 IF FX= 3AND BR(1,1)= 1THEN BX= BX+ 2:GOSUB 40000:GOSUB 10400:KL= KL+ 1:SX= BX:GOSUB 62100:GOTO 10110
4040 BX= BX+ 2:GOSUB 40000:GOSUB 10400:KL= KL+ 1:SX= BX:GOSUB 62100:GOTO 10110
4050 BN= 5
4060 GH= KL:M1= 8:GOSUB 9000:M1= 2:GOSUB 9000:IF GH< > KLTHEN SX= BX:GOSUB 62100:GOTO 10110
4061 BX= 7:GOSUB 41000:GOSUB 10400:KL= KL+ 1:SX= BX:GOSUB 62100:GOTO 10110
4070 BN= 6:GH= KL:M1= 8:GOSUB 9000:M1= 2:GOSUB 9000:IF GH< > KLTHEN SX= BX:GOSUB 62100:GOTO 10110
4071 BX= 7:GOSUB 41000:GOSUB 10400:KL= KL+ 1:SX= BX:GOSUB 62100:GOTO 10110
5000 IF BR(2,2)= 1THEN BN= 1:GOTO 2030
5010 BN= 7:K= 5:GOSUB 10400:KL= KL+ 1:GOSUB 62100:SX= BX:GOTO 10110
5020 GH= KL:M1= 8:GOSUB 9000:M1= 2:GOSUB 9000:IF GH< > KLTHEN SX= BX:BN= 3:GOSUB 62100:GOTO 10110
5021 IF RT= 1THEN 5026
5025 IF BR(1,2)= 1AND BR(2,1)= 1THEN K= 7:GOSUB 10400:KL= KL+ 1:SX= BX:BN= 3:GOSUB 62100:GOTO 10110
5026 IF BR(2,1)+ BR(2,2)+ BR(2,3)+ BR(1,2)+ BR(2,2)+ BR(3,2)= 10THEN K= 3:GOSUB 10400:KL= KL+ 1:SX= BX:BN= 3:GOSUB 62100:GOTO 10110
5027 IF BR(2,1)+ BR(2,2)+ BR(2,3)= 5THEN K= 2:GOSUB 10400:KL= KL+ 1:SX= BX:BN= 3:GOSUB 62100:GOTO 10110
5028 IF BR(1,2)+ BR(2,2)+ BR(3,2)= 5THEN K= 8:GOSUB 10400:KL= KL+ 1:SX= BX:BN= 3:GOSUB 62100:GOTO 10110
5029 BX= INT ((11- 7)* RND (1)+ 7)
5030 GOSUB 41000:GOSUB 10400:KL= KL+ 1:SX= BX:BN= 3:GOSUB 62100:GOTO 10110
8900 PA= INT ((3- 1)* RND (1)+ 1)
8901 IF PA= 1THEN BX= SX+ 1:RETURN
8902 IF PA= 2THEN BX= SX- 1:RETURN
8950 IF PA= 1THEN PA= 2:GOTO 8902
8951 IF PA= 2THEN PA= 1:GOTO 8901
8952 IF PA= 0THEN 8900
9000 IF BR(1,1)+ BR(1,2)+ BR(1,3)= M1THEN 9900
9010 IF BR(2,1)+ BR(2,2)+ BR(2,3)= M1THEN 9910
9020 IF BR(3,1)+ BR(3,2)+ BR(3,3)= M1THEN 9920
9030 IF BR(1,1)+ BR(2,1)+ BR(3,1)= M1THEN 9930
9040 IF BR(1,2)+ BR(2,2)+ BR(3,2)= M1THEN 9940
9050 IF BR(1,3)+ BR(2,3)+ BR(3,3)= M1THEN 9950
9060 IF BR(1,1)+ BR(2,2)+ BR(3,3)= M1THEN 9960
9070 IF BR(1,3)+ BR(2,2)+ BR(3,1)= M1THEN 9970
9080 RETURN
9900 IF BR(1,1)= 0THEN K= 7:KL= KL+ 1:GOSUB 10400:RETURN
9901 IF BR(1,2)= 0THEN K= 8:KL= KL+ 1:GOSUB 10400:RETURN
9902 IF BR(1,3)= 0THEN K= 9:KL= KL+ 1:GOSUB 10400:RETURN
9910 IF BR(2,1)= 0THEN K= 4:KL= KL+ 1:GOSUB 10400:RETURN
9911 IF BR(2,2)= 0THEN K= 5:KL= KL+ 1:GOSUB 10400:RETURN
9912 IF BR(2,3)= 0THEN K= 6:KL= KL+ 1:GOSUB 10400:RETURN
9920 IF BR(3,1)= 0THEN K= 1:KL= KL+ 1:GOSUB 10400:RETURN
9921 IF BR(3,2)= 0THEN K= 2:KL= KL+ 1:GOSUB 10400:RETURN
9922 IF BR(3,3)= 0THEN K= 3:KL= KL+ 1:GOSUB 10400:RETURN
9930 IF BR(1,1)= 0THEN K= 7:KL= KL+ 1:GOSUB 10400:RETURN
9931 IF BR(2,1)= 0THEN K= 4:KL= KL+ 1:GOSUB 10400:RETURN
9932 IF BR(3,1)= 0THEN K= 1:KL= KL+ 1:GOSUB 10400:RETURN
9940 IF BR(1,2)= 0THEN K= 8:KL= KL+ 1:GOSUB 10400:RETURN
9941 IF BR(2,2)= 0THEN K= 5:KL= KL+ 1:GOSUB 10400:RETURN
9942 IF BR(3,2)= 0THEN K= 2:KL= KL+ 1:GOSUB 10400:RETURN
9950 IF BR(1,3)= 0THEN K= 9:KL= KL+ 1:GOSUB 10400:RETURN
9951 IF BR(2,3)= 0THEN K= 6:KL= KL+ 1:GOSUB 10400:RETURN
9952 IF BR(3,3)= 0THEN K= 3:KL= KL+ 1:GOSUB 10400:RETURN
9960 IF BR(1,1)= 0THEN K= 7:KL= KL+ 1:GOSUB 10400:RETURN
9961 IF BR(2,2)= 0THEN K= 5:KL= KL+ 1:GOSUB 10400:RETURN
9962 IF BR(3,3)= 0THEN K= 3:KL= KL+ 1:GOSUB 10400:RETURN
9970 IF BR(1,3)= 0THEN K= 9:KL= KL+ 1:GOSUB 10400:RETURN
9971 IF BR(2,2)= 0THEN K= 5:KL= KL+ 1:GOSUB 10400:RETURN
9972 IF BR(3,1)= 0THEN K= 1:KL= KL+ 1:GOSUB 10400:RETURN
9973 RETURN
10000 IF NM= 1THEN 10060
10006 GOSUB 7:PRINT :GOSUB 7:INPUT "ENTER FIRST NAME OF PLAYER #1 ? ";N1$
10008 IF LEN (N1$)> 9THEN GOSUB 7:PRINT :GOSUB 7:PRINT "LESS THEN 10 LETTERS - PLEASE !!":GOTO 10006
10010 IF LEN (N1$)= 1THEN GOSUB 7:PRINT :GOSUB 7:PRINT "BE SERIOUS !!":GOTO 10000
10030 GOSUB 7:PRINT :GOSUB 7:INPUT "ENTER FIRST NAME OF PLAYER #2 ? ";N2$
10031 IF LEN (N2$)> 9THEN GOSUB 7:PRINT :GOSUB 7:PRINT "LESS THEN 10 LETTERS - PLEASE !!":GOTO 10030
10040 IF LEN (N2$)= 1THEN GOSUB 7:PRINT :GOSUB 7:PRINT "BE SERIOUS !!":GOTO 10030
10050 PLOT 6,1:PLOT 3,0,0:PRINT N1$:PLOT 6,6:PLOT 3,55,0:PRINT N2$
10060 GOSUB 7:PRINT :GOSUB 7:INPUT "WHO WILL GO FIRST ? ";A1$
10070 IF A1$< > N1$AND A1$< > N2$THEN GOSUB 7:PRINT :GOSUB 7:PRINT "MUST BE EITHER ";N1$;" OR ";N2$;" !!":GOTO 10060
10080 NM= 0
10090 GOSUB 60000
10110 POKE 33278,48:PLOT 6,0:PLOT 3,64,1:OUT 8,255
10111 K= PEEK (33278)- 48:PLOT 3,64,32
10120 IF K> 0AND K< 10THEN KL= KL+ 1:OUT 8,247:GOSUB 10400:GOTO 10125
10121 GOTO 10111
10125 POKE 33209,0:GOSUB 62100
10129 IF NP= 1THEN ON BNGOTO 2030,3010,3080,4050,4070,5000,5020,5050
10131 GOTO 10110
10400 IF K= 1THEN C= 3:D= 1
10410 IF K= 2THEN C= 3:D= 2
10420 IF K= 3THEN C= 3:D= 3
10430 IF K= 4THEN C= 2:D= 1
10440 IF K= 5THEN C= 2:D= 2
10450 IF K= 6THEN C= 2:D= 3
10460 IF K= 7THEN C= 1:D= 1
10470 IF K= 8THEN C= 1:D= 2
10480 IF K= 9THEN C= 1:D= 3
10485 IF TW= 1THEN RETURN
10486 IF A1$= N2$THEN K1= K
10495 IF BR(C,D)< > 0THEN KL= KL- 1:GOTO 62000
10496 ON KGOSUB 1050,1051,1052,1053,1054,1055,1056,1057,1058:PLOT 3,64,1
10500 IF A1$= N1$THEN BR(C,D)= 4
10501 IF A1$= N2$THEN BR(C,D)= 1
11000 REM
11001 Q= 1:GOSUB 11010:Q= 2:GOSUB 11010:Q= 3:GOSUB 11010:W= 1:GOSUB 11060:W= 2:GOSUB 11060:W= 3:GOSUB 11060
11002 IF BR(1,1)+ BR(2,2)+ BR(3,3)= 12THEN PLOT 31:GOSUB 1056:GOSUB 1054:GOSUB 1052:PLOT 15:GOTO 63000
11003 IF BR(1,1)+ BR(2,2)+ BR(3,3)= 3THEN PLOT 31:GOSUB 1056:GOSUB 1054:GOSUB 1052:PLOT 15:GOTO 63500
11004 IF BR(1,3)+ BR(2,2)+ BR(3,1)= 12THEN PLOT 31:GOSUB 1058:GOSUB 1054:GOSUB 1050:PLOT 15:GOTO 63000
11005 IF BR(1,3)+ BR(2,2)+ BR(3,1)= 3THEN PLOT 31:GOSUB 1058:GOSUB 1054:GOSUB 1050:PLOT 15:GOTO 63500
11006 IF KL= 9THEN KL= 0:GOTO 12000
11010 FOR W= 1TO 3:TT= TT+ BR(Q,W)
11020 IF TT= 12THEN ON QGOTO 11160,11170,11180
11030 IF TT= 3THEN ON QGOTO 11190,11191,11192
11050 NEXT W:TT= 0:RETURN
11060 FOR Q= 1TO 3:TT= TT+ BR(Q,W)
11070 IF TT= 12THEN ON WGOTO 11100,11110,11120
11080 IF TT= 3THEN ON WGOTO 11130,11140,11150
11090 NEXT Q:TT= 0:RETURN
11100 PLOT 31:GOSUB 1056:GOSUB 1053:GOSUB 1050:PLOT 15:GOTO 63000
11110 PLOT 31:GOSUB 1057:GOSUB 1054:GOSUB 1051:PLOT 15:GOTO 63000
11120 PLOT 31:GOSUB 1058:GOSUB 1055:GOSUB 1052:PLOT 15:GOTO 63000
11130 PLOT 31:GOSUB 1056:GOSUB 1053:GOSUB 1050:PLOT 15:GOTO 63500
11140 PLOT 31:GOSUB 1057:GOSUB 1054:GOSUB 1051:PLOT 15:GOTO 63500
11150 PLOT 31:GOSUB 1058:GOSUB 1055:GOSUB 1052:PLOT 15:GOTO 63500
11160 PLOT 31:GOSUB 1056:GOSUB 1057:GOSUB 1058:PLOT 15:GOTO 63000
11170 PLOT 31:GOSUB 1053:GOSUB 1054:GOSUB 1055:PLOT 15:GOTO 63000
11180 PLOT 31:GOSUB 1050:GOSUB 1051:GOSUB 1052:PLOT 15:GOTO 63000
11190 PLOT 31:GOSUB 1056:GOSUB 1057:GOSUB 1058:PLOT 15:GOTO 63500
11191 PLOT 31:GOSUB 1053:GOSUB 1054:GOSUB 1055:PLOT 15:GOTO 63500
11192 PLOT 31:GOSUB 1050:GOSUB 1051:GOSUB 1052:PLOT 15:GOTO 63500
12000 IF NP= 1AND A1$= N1$THEN BN= 6:RH= 0
12010 IF NP= 1AND A1$= N2$THEN BN= 1:RH= 1
12015 TL= TL+ 1
12020 PLOT 15:GOSUB 7:PRINT :GOSUB 7:PRINT :GOSUB 7:PRINT :GOSUB 7:PRINT :GOSUB 7:PRINT SPC( 10)"!!! DRAW !!!"
12025 FOR T= 1TO 500:NEXT T
12027 PLOT 6,1,14:S5= S5+ 1:PLOT 3,1,20:PRINT S5:S6= S6+ 1:PLOT 6,6:PLOT 3,58,20:PRINT S6:GOTO 63800
15000 GOSUB 31000
15010 IF S1> S2THEN PRINT N1$;" WINS THE MATCH !!!"
15020 IF S2> S1THEN PRINT N2$;" WINS THE MATCH !!!"
15030 IF S2= S1THEN PRINT "    THE MATCH IS A DRAW !!!"
15040 OUT 8,255:GOSUB 7:PRINT :GOSUB 7:INPUT "DO YOU WISH ANOTHER MATCH ? ";J$
15041 IF ASC (J$)< > 89AND ASC (J$)< > 78THEN GOSUB 7:PRINT :GOSUB 7:PRINT "ANSWER Y OR N !!!":GOTO 15040
15050 IF J$= "N"THEN LOAD "MENU":RUN
15060 RUN 1
20000 PLOT 3,0,4:PRINT "GAMES":PLOT 3,1,6:PRINT "WINS":PLOT 3,0,12:PRINT "LOSSES":PLOT 3,0,18:PRINT "DRAWS"
20010 PLOT 3,57,4:PRINT "GAMES":PLOT 3,58,6:PRINT "WINS":PLOT 3,57,12:PRINT "LOSSES":PLOT 3,57,18:PRINT "DRAWS"
20025 PLOT 6,1,14:PLOT 3,1,8:PRINT S1:PLOT 3,1,14:PRINT S3:PLOT 3,1,20:PRINT S5
20030 PLOT 6,6:PLOT 3,58,8:PRINT S2:PLOT 3,58,14:PRINT S4:PLOT 3,58,20:PRINT S6:PLOT 15:RETURN
30000 GOSUB 50000
30002 ON IOGOTO 30005,30010,30020,30030,30040
30005 GOSUB 31000:GOSUB 7:PRINT :GOSUB 7:PLOT 6,7:PRINT "YOU BLEW IT ON YOUR LAST MOVE ";N2$;" !!":GOTO 35000
30010 GOSUB 31000:GOSUB 7:PRINT :GOSUB 7:PLOT 6,3:PRINT "YOU'RE MAKING MISTAKES ";N2$;" !!":GOTO 35000
30020 GOSUB 31000:GOSUB 7:PRINT :GOSUB 7:PLOT 6,5:PRINT SPC( 10)"GOTCHA NOW ";N2$;" !!":GOTO 35000
30030 GOSUB 31000:GOSUB 7:PRINT :GOSUB 7:PLOT 6,3:PRINT "PAY ATTENTION - YOU JUST LOST ";N2$;" !!":GOTO 35000
30035 GOSUB 31000:GOSUB 7:PRINT :GOSUB 7:PLOT 6,1:PRINT "THANKS FOR GIVING ME THE WIN ";N2$;" !!":GOTO 35000
30040 GOSUB 31000:GOSUB 7:PRINT :GOSUB 7:PLOT 6,2:PRINT "LOOKS LIKE A VICTORY FOR US GOOD GUYS !!":GOTO 35000
31000 PLOT 15:GOSUB 7:PRINT :GOSUB 7:PRINT :GOSUB 7:PRINT :GOSUB 7:PRINT :GOSUB 7:RETURN
32000 GOSUB 50000
32005 ON IOGOTO 32010,32020,32030,32040,32050,32010
32010 GOSUB 31000:PRINT "WATCH - I'M GIVING FREE LESSONS !!!":GOTO 35000
32020 GOSUB 31000:PRINT "I'M NOT EVEN TRYING HARD YET !!!":GOTO 35000
32030 GOSUB 31000:PLOT 6,1:PRINT "I HOPE YOU'RE TAKING NOTES ";N2$;" !!":GOTO 35000
32040 GOSUB 31000:PLOT 6,2:PRINT SPC( 5)"I'M SO GOOD IT SCARES ME !!":GOTO 35000
32050 GOSUB 31000:PLOT 6,7:PRINT "DON'T GIVE UP YOUR DAY JOB ";N2$;" !!":GOTO 35000
35000 FOR T= 1TO 500:NEXT T:POKE 33209,0:DF= 1:RETURN
40000 IF BX= 0THEN BX= 4:GOTO 40012
40002 IF BX= 1THEN K= 7:TW= 1:GOSUB 10400:TW= 0:IF BR(C,D)= 0THEN RETURN
40004 IF BX= 1THEN GOSUB 8950
40006 IF BX= 2THEN K= 9:TW= 1:GOSUB 10400:TW= 0:IF BR(C,D)= 0THEN RETURN
40007 IF BX= 2THEN GOSUB 8950
40008 IF BX= 3THEN K= 3:TW= 1:GOSUB 10400:TW= 0:IF BR(C,D)= 0THEN RETURN
40009 IF PEEK (33209)> 7THEN BX= 7:GOTO 41000
40010 IF BX= 3THEN GOSUB 8950
40012 IF BX= 4THEN K= 1:TW= 1:GOSUB 10400:TW= 0:IF BR(C,D)= 0THEN RETURN
40013 IF BX= 4THEN GOSUB 8950
40015 IF BX= 5THEN BX= 1:GOTO 40002
40017 IF BX= 6THEN BX= 2:GOTO 40006
40020 GOTO 40000
41000 IF BX= 7THEN K= 8:TW= 1:GOSUB 10400:TW= 0:IF BR(C,D)= 0THEN RETURN
41005 IF BX= 7THEN BX= BX+ 1
41010 IF BX= 8THEN K= 6:TW= 1:GOSUB 10400:TW= 0:IF BR(C,D)= 0THEN RETURN
41015 IF BX= 8THEN BX= BX+ 1
41017 IF PEEK (33209)> 7THEN BX= 1:GOTO 40000
41020 IF BX= 9THEN K= 2:TW= 1:GOSUB 10400:TW= 0:IF BR(C,D)= 0THEN RETURN
41025 IF BX= 9THEN BX= BX+ 1
41030 IF BX= 10THEN K= 4:TW= 1:GOSUB 10400:TW= 0:IF BR(C,D)= 0THEN RETURN
41035 IF BX= 10THEN BX= BX+ 1
41040 IF BX= 11THEN BX= 7
41045 GOTO 41000
50000 T= PEEK (33209)* 3:FOR F= 1TO T:IO= INT ((6- 1)* RND (1)+ 1):NEXT F:RETURN
60000 IF A1$= N2$THEN A$= "O":PLOT 6,6:GOSUB 64100:RETURN
60010 IF A1$= N1$THEN A$= "X":PLOT 6,1:GOSUB 64100:RETURN
62000 PLOT 15:GOSUB 7:PRINT :GOSUB 7:PRINT SPC( 10)"SQUARE TAKEN !!":FOR T= 1TO 500:NEXT T
62001 IF NP= 2AND A1$= N1$THEN A1$= N2$:RETURN
62003 IF NP= 2AND A1$= N2$THEN A1$= N1$:RETURN
62004 IF A1$= N2$THEN GOTO 10090
62100 IF A1$= N1$THEN A1$= N2$:A$= "O":PLOT 6,6:GOSUB 64100:GOTO 62120
62110 IF A1$= N2$THEN A1$= N1$:A$= "X":PLOT 6,1:GOSUB 64100
62120 RETURN
63000 PLOT 15:GOSUB 7:PRINT :GOSUB 7:PRINT SPC( 10)N1$;" IS THE WINNER !!"
63001 PLOT 6,1,14:S1= S1+ 1:S4= S4+ 1:TL= TL+ 1:PLOT 3,1,8:PRINT S1:PLOT 6,6:PLOT 3,58,14:PRINT S4:PLOT 3,64,1
63002 IF RT= 2THEN FOR T= 1TO 250:NEXT T
63003 IF RT= 2THEN GOSUB 50000:GOSUB 32005:GOSUB 63800:TT= 0:KL= 0:GOTO 63016
63010 FOR T= 1TO 1000:NEXT T:GOSUB 63800:TT= 0:KL= 0
63016 IF NP= 1THEN BN= 6:RH= 0:DF= 0
63018 IF TL= 10THEN 15000
63020 RETURN
63500 PLOT 15:GOSUB 7:PRINT :GOSUB 7:PRINT SPC( 10)N2$;" IS THE WINNER !!"
63501 PLOT 6,6,14:S2= S2+ 1:S3= S3+ 1:TL= TL+ 1:PLOT 3,58,8:PRINT S2:PLOT 6,1:PLOT 3,1,14:PRINT S3:PLOT 3,64,1
63502 FOR T= 1TO 1000:NEXT T:GOSUB 63800:TT= 0:KL= 0
63516 IF NP= 1THEN BN= 1:RH= 1
63518 IF TL= 10THEN 15000
63520 RETURN
63800 HJ= 1:A$= " ":FOR Q= 1TO 3:FOR W= 1TO 3
63810 BR(Q,W)= 0
63820 ON HJGOSUB 1050,1051,1052,1053,1054,1055,1056,1057,1058
63830 HJ= HJ+ 1
63840 NEXT W,Q:PLOT 15
64000 PLOT 6,2:PLOT 3,18,19:PRINT "1":PLOT 3,31,19:PRINT "2":PLOT 3,44,19:PRINT "3":PLOT 3,18,11:PRINT "4"
64001 PLOT 3,31,11:PRINT "5":PLOT 3,44,11:PRINT "6":PLOT 3,18,4:PRINT "7":PLOT 3,31,4:PRINT "8":PLOT 3,44,4:PRINT "9"
64002 IF TL= 10THEN 15000
64003 RETURN
64100 PLOT 15:GOSUB 7:PRINT :GOSUB 7:PRINT :GOSUB 7:PRINT :GOSUB 7
64110 PRINT :GOSUB 7:PRINT :GOSUB 7:PRINT :GOSUB 7:PRINT SPC( 10)A1$;"'S MOVE !!":PLOT 3,64,1:RETURN
65000 DATA 32,32,32,32,32,32,33,110,2,32,32,2,43,43,43,43,3,13,4,14
65010 DATA 79,30,79,30,3,3,24,4,32,32,32,30,20,22,32,32,32,32,23,21
65020 DATA 19,26,16,25,2,15,5,32,32,30,32,32,32,5,5,32,32,42,32,32
65030 DATA 32,30,32,30,0,22,24,21,8,32,1,1,8,25,31,4,5,7,4,26
65040 DATA 30,5,14,1,27,7,4,5,20,123,4,6,5,30,32,26,3,3,4,4
65050 DATA 3,7,23,125,42,42,32,32,42,30,32,32,6,9,8,7,105,102,102,105
65060 DATA 9,6,7,8,8,32,1,4,20,22,9,4,30,14,15,28,27,12,4,4
65070 DATA 20,22,9,6,14,12,23,21,27,12,31,5,27,1,32,5,20,22,29,6
65080 DATA 1,14,15,2,5,31,12,14,32,7,23,2,98,1,28,8,1,12,31,32
65090 DATA 16,1,2,17,16,1,19,2,20,22,23,21,27,1,32,4,20,22,24,21
65100 DATA 27,1,28,4,3,7,4,6,5,32,1,14,1,22,23,2,1,28,30,2
65110 DATA 1,18,19,2,28,30,28,30,28,2,32,30,5,25,31,26