You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

117 lines
3.0 KiB

2 PRINT "TIC-TAC-TOE"
4 PRINT "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
6 PRINT
8 PRINT "THE BOARD IS NUMBERED:"
10 PRINT " 1 2 3"
12 PRINT " 4 5 6"
14 PRINT " 7 8 9"
16 PRINT
20 FOR I=1 TO 9:@(I)=0:NEXT I
50 INPUT"DO YOU WANT 'X' OR 'O' (X=1,O=0)"C
55 IF C=1 GOTO 475
60 P=0,Q=1
100 G=-1,H=1:IF @(5)#0 GOTO 103
102 @(5)=-1:GOTO 195
103 IF @(5)#1 GOTO 106
104 IF @(1)#0 GOTO 110
105 @(1)=-1:GOTO 195
106 IF (@(2)=1)*(@(1)=0) GOTO 181
107 IF (@(4)=1)*(@(1)=0) GOTO 181
108 IF (@(6)=1)*(@(9)=0) GOTO 189
109 IF (@(8)=1)*(@(9)=0) GOTO 189
110 IF G=1 GOTO 112
111 GOTO 118
112 J=3*(M-1)/3+1
113 IF J=M LET K=1
114 IF J+1=M LET K=2
115 IF J+2=M LET K=3
116 GOTO 120
118 FOR J=1 TO 7 STEP 3:FOR K=1 TO 3
120 IF @(J)#G GOTO 130
122 IF @(J+2)#G GOTO 135
126 IF @(J+1)#0 GOTO 150
128 @(J+1)=-1:GOTO 195
130 IF @(J)=H GOTO 150
131 IF @(J+2)#G GOTO 150
132 IF @(J+1)#G GOTO 150
133 @(J)=-1:GOTO 195
135 IF @(J+2)#0 GOTO 150
136 IF @(J+1)#G GOTO 150
138 @(J+2)=-1:GOTO 195
150 IF @(K)#G GOTO 160
152 IF @(K+6)#G GOTO 165
156 IF @(K+3)#0 GOTO 170
158 @(K+3)=-1:GOTO 195
160 IF @(K)=H GOTO 170
161 IF @(K+6)#G GOTO 170
162 IF @(K+3)#G GOTO 170
163 @(K)=-1:GOTO 195
165 IF @(K+6)#0 GOTO 170
166 IF @(K+3)#G GOTO 170
168 @(K+6)=-1:GOTO 195
170 GOTO 450
171 IF (@(3)=G)*(@(7)=0) GOTO 187
172 IF (@(9)=G)*(@(1)=0) GOTO 181
173 IF (@(7)=G)*(@(3)=0) GOTO 183
174 IF (@(9)=0)*(@(1)=G) GOTO 189
175 IF G=-1 LET G=1,H=-1:GOTO 110
176 IF (@(9)=1)*(@(3)=0) GOTO 182
177 FOR I=2 TO 9:IF @(I)#0 GOTO 179
178 @(I)=-1:GOTO 195
179 NEXT I
181 @(1)=-1:GOTO 195
182 IF @(1)=1 GOTO 177
183 @(3)=-1:GOTO 195
187 @(7)=-1:GOTO 195
189 @(9)=-1
195 PRINT"THE COMPUTER MOVES TO..."
202 GOSUB 1000
205 GOTO 500
450 IF G=1 GOTO 465
455 IF (J=7)*(K=3) GOTO 465
460 NEXT K:NEXT J
465 IF @(5)=G GOTO 171
467 GOTO 175
475 P=1,Q=0
500 INPUT"WHERE DO YOU MOVE"M
502 IF M=0 PRINT"THANKS FOR THE GAME.":GOTO 2000
503 IF M>9 GOTO 506
505 IF @(M)=0 GOTO 510
506 PRINT"THAT SQUARE IS OCCUPIED.":GOTO 500
510 G=1,@(M)=1
520 GOSUB 1000
530 GOTO 100
1000 FOR I=1 TO 9:PRINT" ",:IF @(I)#-1 GOTO 1014
1011 IF Q=1 PRINT "X ",
1012 IF Q=0 PRINT "O ",
1013 GOTO 1020
1014 IF @(I)#0 GOTO 1016
1015 PRINT" ",:GOTO 1020
1016 IF P=1 PRINT "X ",
1017 IF P=0 PRINT "O ",
1020 IF (I#3)*(I#6) GOTO 1050
1030 PRINT"":PRINT"---+---+---"
1040 GOTO 1080
1050 IF I=9 GOTO 1080
1060 PRINT"!",
1080 NEXT I:PRINT
1095 FOR I=1 TO 7 STEP 3
1100 IF @(I)#@(I+1) GOTO 1115
1105 IF @(I)#@(I+2) GOTO 1115
1110 IF @(I)=-1 GOTO 1350
1112 IF @(I)=1 GOTO 1200
1115 NEXT I:FOR I=1 TO 3:IF @(I)#@(I+3) GOTO 1150
1130 IF @(I)#@(I+6) GOTO 1150
1135 IF @(I)=-1 GOTO 1350
1137 IF @(I)=1 GOTO 1200
1150 NEXT I:FOR I=1 TO 9:IF @(I)=0 GOTO 1155
1152 NEXT I:GOTO 1400
1155 IF @(5)#G GOTO 1170
1160 IF (@(1)=G)*(@(9)=G) GOTO 1180
1165 IF (@(3)=G)*(@(7)=G) GOTO 1180
1170 RETURN
1180 IF G=-1 GOTO 1350
1200 PRINT"YOU BEAT ME!! GOOD GAME.":GOTO 2000
1350 PRINT"I WIN, TURKEY!!!":GOTO 2000
1400 PRINT"IT'S A DRAW. THANK YOU."
2000 END