Tick Tack Toe

Developer(s): Butch Weinberg
Date: 1984
Type: Program
Platform(s): TS 2068

Appears on

Gallery

Source Code

    5 REM TICK TACK TOE \* Written by S.J.Weinberg 1983 For TS1000  MOD. Jul. 1984 For TS2068
    7 BORDER 7: PAPER 7: CLS : PRINT AT 10,9; PAPER 2; INK 7; FLASH 1;"STOP THE TAPE"; FLASH 0: PAUSE 300
   10 GO SUB 1000: POKE 23692,22: GO SUB 1080: CLEAR : GO SUB 1140
   20 CLS 
   30 PRINT AT 1,10; INK 1;"TICK TACK TOE"'' INK 2;" \* By S.J.(BUTCH) Weinberg 7/84": BORDER 6
   40 PRINT AT 6,3; INK 3;"Who will be X ?": INPUT M$ : PRINT TAB 10;M$: LET S=331: BEEP .5,1: BEEP .5,9: BEEP .5,5: BEEP .5,9
   45 PRINT AT 10,3; INK 3;"Who will be O ?": INPUT N$: PRINT TAB 10;N$: LET S=S+30: BEEP .5,1: BEEP .5,9: BEEP .5,5: BEEP .5,9: LET G=0: LET O=0: LET N=0: PAUSE 100
   47 CLS 
   48 LET W=0: LET L=0
   50 PRINT AT 1,10; INK 1; FLASH 1;"TICK TACK TOE"; FLASH 0
   60 FOR X=100 TO 160
   70 PLOT X,84: PLOT X,85: PLOT X,98: PLOT X,99: NEXT X
  110 FOR Y=70 TO 114
  120 PLOT 118,Y: PLOT 119,Y: PLOT 141,Y: PLOT 142,Y: NEXT Y
  130 PRINT AT 1,10; PAPER 1; INK 7;"TICK TACK TOE": BEEP .05,6: BEEP .05,6: BEEP .05,6: BEEP .05,4: BEEP .05,4: BEEP .05,4: BEEP .05,2: BEEP .05,2: BEEP .05,2
  140 DIM E$(3,3)
  150 LET E$(1)="123"
  160 LET E$(2)="456"
  170 LET E$(3)="789"
  175 LET A$="X"
  180 PRINT AT  8,13;E$(1,1);AT 8,16;E$(1,2);AT 8,19;E$(1,3);AT 10,13;E$(2,1);AT 10,16;E$(2,2);AT 10,19;E$(2,3);AT 12,13;E$(3,1);AT 12,16;E$(3,2);AT 12,19;E$(3,3): BEEP .05,4: BEEP .05,0: GO SUB 2500: IF L=9 AND W<>9999 THEN GO TO 560
  190 PRINT AT 3,12;"                  "
  200 IF W=9999 AND A$="O" THEN GO TO 520
  210 IF W=9999 AND A$="X" THEN GO TO 540
  220 IF A$="X" THEN PRINT AT 3,4; INK 4;"PLAYER X  "; INK 0;M$
  230 IF A$="O" THEN PRINT AT 3,4; INK 4;"PLAYER O  "; INK 0;N$
  235 GO TO 270
  250 GO SUB 2000
  270 IF INKEY$="" THEN GO TO 270
  280 LET C=CODE INKEY$-48
  290 IF C=1 AND E$(1,1)<>"1" THEN GO TO 250
  300 IF C=1 AND E$(1,1)="1" THEN LET E$(1,1)=A$
  310 IF C=2 AND E$(1,2)<>"2" THEN GO TO 250
  320 IF C=2 AND E$(1,2)="2" THEN LET E$(1,2)=A$
  330 IF C=3 AND E$(1,3)<>"3" THEN GO TO 250
  340 IF C=3 AND E$(1,3)="3" THEN LET E$(1,3)=A$
  350 IF C=4 AND E$(2,1)<>"4" THEN GO TO 250
  360 IF C=4 AND E$(2,1)="4" THEN LET E$(2,1)=A$
  370 IF C=5 AND E$(2,2)<>"5" THEN GO TO 250
  380 IF C=5 AND E$(2,2)="5" THEN LET E$(2,2)=A$
  390 IF C=6 AND E$(2,3)<>"6" THEN GO TO 250
  400 IF C=6 AND E$(2,3)="6" THEN LET E$(2,3)=A$
  410 IF C=7 AND E$(3,1)<>"7" THEN GO TO 250
  420 IF C=7 AND E$(3,1)="7" THEN LET E$(3,1)=A$
  430 IF C=8 AND E$(3,2)<>"8" THEN GO TO 250
  440 IF C=8 AND E$(3,2)="8" THEN LET E$(3,2)=A$
  450 IF C=9 AND E$(3,3)<>"9" THEN GO TO 250
  460 IF C=9 AND E$(3,3)="9" THEN LET E$(3,3)=A$
  470 IF E$(1,1)=A$ AND E$(1,2)=A$ AND E$(1,3)=A$ OR E$(2,1)=A$ AND E$(2,2)=A$ AND E$(2,3)=A$ OR E$(3,1)=A$ AND E$(3,2)=A$ AND E$(3,3)=A$ OR E$(1,1)=A$ AND E$(2,1)=A$ AND E$(3,1)=A$ OR E$(1,2)=A$ AND E$(2,2)=A$ AND E$(3,2)=A$ OR E$(1,3)=A$ AND E$(2,3)=A$ AND E$(3,3)=A$ OR E$(3,1)=A$ AND E$(3,2)=A$ AND E$(3,3)=A$ OR E$(1,1)=A$ AND E$(2,2)=A$ AND E$(3,3)=A$ OR E$(1,3)=A$ AND E$(2,2)=A$ AND E$(3,1)=A$ THEN LET W=9999
  480 LET L=L+1
  490 IF A$<>"X" THEN GO TO 175
  500 LET A$="O"
  510 GO TO 180
  520 PRINT AT 18,5; INK 5; FLASH 1;"WINNER X ";M$; FLASH 0: BEEP .2,10: BEEP .2,10: BEEP .2,10: BEEP 2,-10: LET G=G+1: GO SUB 2500
  530 GO TO 570
  540 PRINT AT 18,5; INK 5; FLASH 1;"WINNER O ";N$; FLASH 0: BEEP .2,10: BEEP .2,10: BEEP .2,10: BEEP 2,-10: LET O=O+1: GO SUB 2500
  550 GO TO 570
  560 PRINT AT 18,5; INK 5; FLASH 1;"WINNER CAT "; FLASH 0;: BEEP 1,-30: BEEP 2,-50: LET N=N+1: GO SUB 2500
  570 PRINT AT 19,1;"Try again? (Y or N)"
  580 IF INKEY$="" THEN GO TO 580
  590 IF INKEY$="Y" OR INKEY$="y" THEN PAUSE 10: GO TO 3000
  600 IF INKEY$="N" OR INKEY$="n" THEN LET S=S-4881: PRINT AT 5,6; INK 2;"\* By (BUTCH) 7/84": BEEP .20,17: BEEP .20,17: BEEP .20,17: BEEP .15,5: BEEP .20,14: BEEP .20,10: BORDER 7: STOP 
  610 IF INKEY$<>"Y" OR INKEY$<>"y" OR INKEY$<>"N" OR INKEY$<>"n" THEN GO TO 580
 1000 CLS 
 1010 FOR L=1 TO 3
 1020 FOR P=1 TO 7
 1030 LET J=INT 19*RND
 1040 PRINT TAB J; PAPER P; INK 9;"TICK TACK TOE": BEEP .25,J
 1050 NEXT P
 1060 NEXT L
 1070 RETURN 
 1080 FOR L=1 TO 3
 1090 FOR P=1 TO 7
 1100 PRINT PAPER P; INK 9;"\: \: \: \: \: \: \: \: \: TICK TACK TOE\: \: \: \: \: \: \: \: \: ": BEEP .05,P*L
 1110 NEXT P
 1120 NEXT L
 1130 RETURN 
 1140 BORDER 6: PRINT INK 2; FLASH 1;AT 11,9;"TICK TACK TOE"; FLASH 0,,,: PRINT TAB 5; INK 4; FLASH 1;"Touch C to continue!!"; FLASH 0
 1150 IF INKEY$="" THEN GO TO 1150
 1160 IF INKEY$="C" OR INKEY$="c" THEN RETURN 
 1170 IF INKEY$<>"C" OR INKEY$<>"c" THEN GO TO 1150
 2000 LET B$="                ERROR TRY AGAIN "
 2010 LET P=LEN B$
 2020 FOR I=1 TO P
 2025 LET Z=I+29: IF Z>=P THEN LET Z=P
 2030 PRINT AT 5,0; INK 2;" ";B$(I TO Z);" ": BEEP .05,I
 2040 NEXT I
 2050 RETURN 
 2500 PRINT AT 14,20; INK 4;"SCORES";AT 15,20;"X= ";G;AT 16,20;"O= ";O;AT 17,20;"CAT= ";N
 2550 RETURN 
 3000 PRINT AT 20,1; INK 2;"Same players? (Y or N)"
 3010 IF INKEY$="" THEN GO TO 3010
 3020 IF INKEY$="Y" OR INKEY$="y" THEN GO TO 47
 3030 IF INKEY$="N" OR INKEY$="n" THEN RUN 20
 3040 IF INKEY$<>"Y" OR INKEY$<>"y" OR INKEY$<>"N" OR INKEY$<>"n" THEN GO TO 3010
 9997 STOP 
 9998 SAVE "TIC TAC TO" LINE 1
Scroll to Top