mirror of https://github.com/wwarthen/RomWBW.git
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
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
|
|
|