THE PAST MASTER CLUB
TIC TAC TOE.HTM









10 '' TTT.BAS COPYRIGHTED NICK VAN VLIET 1993 TRANSLATED OCT/99 û
'' THESE WERE DESIGNED IN THE DAYS OF SAVING MEMORY AND A LETTER SAVED
'' ATLEAST 4 T0 5 BYTES - I STILL USE THE METHOD WHERE APPLICABLE!
20 Q = 1: F = Q - Q: R = Q + Q: P = R + Q: S = P + Q: D = S + Q: T = D + Q
U = T + Q: V = U + Q: W = V + Q: X = 15: Y = 20
30 COLOR X, Q, P: CLS : COLOR 11, S, P: N = 189: M = E ^ P
40 LOCATE Q, Q: PRINT "CODEBREAKER "; : COLOR F, S
PRINT " NICK VAN VLIET ";
50 COLOR X, D: PRINT " "; : PRINT DATE$; " "; : PRINT TIME$;
PRINT " "; : COLOR X, F
60 PRINT " TIC TAC TOE ": COLOR F, X: Y$ = CHR$(219):
A$ = " " + Y$ + Y$ + " " + Y$ + Y$ + " "
70 B$ = Y$ + Y$ + Y$ + Y$ + Y$ + Y$ + Y$ + Y$ + Y$ + Y$ + Y$ + Y$ + Y$
C$ = " "
80 LOCATE R, Q: COLOR P, P: PRINT C$: COLOR F, X
90 PRINT A$; : GOSUB 750
100 PRINT " 1 " + Y$ + Y$ + " 2 " + Y$ + Y$ + " 3 "; : GOSUB 750
110 PRINT A$; : GOSUB 750
120 PRINT B$; : GOSUB 750
130 PRINT A$; : GOSUB 750
140 PRINT " 4 " + Y$ + Y$ + " 5 " + Y$ + Y$ + " 6 "; : GOSUB 750
150 PRINT A$; : GOSUB 750
160 PRINT B$; : GOSUB 750
170 PRINT A$; : GOSUB 750
180 PRINT " 7 " + Y$ + Y$ + " 8 " + Y$ + Y$ + " 9 "; : GOSUB 750
190 PRINT A$; : GOSUB 750
200 COLOR P, P: PRINT C$: COLOR F, X
210 LOCATE Y, R: COLOR 15, Q: INPUT "MAY I GO FIRST (/N)? ", Y$
220 IF Y$ = "N" OR Y$ = "n" THEN Y$ = "N": GOTO 250 ELSE Y$ = "Y": GOTO 290
240 GOTO 210
250 LOCATE Y, R: COLOR X, Q: INPUT "CHOOSE YOUR 'O' AT (1/4/5) ", I
260 IF NOT (I = Q OR I = S OR I = D) THEN GOTO 250
270 X$ = "O": GOSUB 610: LOCATE Y, R
280 N = 45 * INT((I + Q) / P): IF I = D THEN I = U ELSE IF I = Q OR I = S THEN I = D
290 IF Y$ = "Y" THEN PRINT " I STARTED MY 'X' AT 4.": I = S
300 X$ = "X": GOSUB 610: K = F: H = F: G = I

310 '' ****MAIN LOOP****
320 LOCATE Y, R: PRINT C$ + C$ + C$ + C$
330 LOCATE Y, R: INPUT "YOUR TURN ", I
340 LOCATE Y + Q, R: PRINT C$ + C$ + C$ + C$
350 X$ = "O": GOSUB 610
360 IF K = F THEN G = I
370 Z = I: ZZ = Q

380 '' ****ERROR LOOP****
390 H = G + N + W * K: GOSUB 650
400 IF H = 94 THEN N = 135
410 IF H = 98 THEN N = 162
420 K = K + Q
440 IF Z = I THEN ZZ = F: IF ZZ = F THEN GOTO 390
450 IF Z <> I AND K AND K = R * INT(K / R) THEN GOTO 550
460 X$ = "X": GOSUB 610: IF H > 243 THEN GOTO 540
470 IF H = 87 OR H = 227 OR H = 228 OR H = 233 THEN GOTO 550
480 IF H = 234 OR H = 154 OR H = 189 THEN GOTO 550
490 IF K >= 4 AND H < 136 AND NOT (H = 87) THEN GOTO 520
500 IF K >= P AND H > 153 AND H < 190 THEN GOTO 520
510 GOTO 320

520 '' ****CAT WON OR DRAW****
530 X$ = "O": COLOR X: LOCATE Y, R: INPUT "YOUR TURN ", I: GOSUB 610
540 LOCATE Y, R: COLOR 30: PRINT "CAT WON"; C$; : INPUT "", X$: CHAIN "GAME.BAS"

550 '' ****COMPUTER WON****
560 X$ = "X": GOSUB 610
570 IF H = 118 OR H = 120 OR H = 126 OR H = 152 THEN GOTO 520
580 IF H = 153 OR H = 172 OR H = 175 OR H = 177 THEN GOTO 520
590 IF H = 239 THEN GOTO 540
600 LOCATE Y, R: COLOR 30: PRINT "COMPUTER WON"; C$;
LOCATE Y + Q, R: COLOR 10
INPUT "HIT ENTER TO RETURN TO MENU", X$: CHAIN "GAME.BAS"



610 IF X$ = "X" THEN COLOR D, U ELSE COLOR 11, U
620 A$ = MID$("040404080808121212", R * (I - Q) + Q, R)
630 B$ = MID$("020712020712020712", R * (I - Q) + Q, R)
640 LOCATE VAL(A$), VAL(B$): PRINT X$: COLOR X, Q: RETURN



650 '' COMPUTER'S NEXT MOVE
660 Y$ = "0327024420783086"
670 Y$ = Y$ + "68044207237066803873089609996712"
680 Y$ = Y$ + "00917839800193227900781383100329"
690 Y$ = Y$ + "79670086619816040218940010042160"
700 Y$ = Y$ + "09006442008008668002002989000021"
710 Y$ = Y$ + "39800001881200009290460400140110"
720 Y$ = Y$ + "10036099090045510115576670776613"
730 Y$ = Y$ + "75039975716025113839083236200062"
740 Y$ = Y$ + "800900098300": I = VAL(MID$(Y$, H, Q)): RETURN



750 COLOR P, P: PRINT " ": COLOR F, X: RETURN



9900 ''
9910 '' CLS
9920 '' SAVE"TTT.BAS"
9930 '' COLOR 15,1,1
9940 '' SYSTEM
END


RETURN TO TOP
PREVIOUS MENU
RETURN TO PMC MENU
HOME PAGE
You are visitor no. to this page.
1