0 ' *TIKTAK.BA* - AUTHOR UNKNOWN 1 'CLUB 100 LIBRARY - 415/939-1246 BBS, 937-5039 NEWSLETTER, 932-8856 VOICE 2 CLS:DEFINTA-Z:PRINT:PRINT:PRINT:PRINT:PRINTTAB(14)"TIC-TAC-TOE":PRINT:PRINT:FORX=1TO5000:NEXT:CLS:CLEAR:DIMS(9):CL$=CHR$(27)+CHR$(75):PRINT:PRINT"Do you want 'X' or 'O' ?"; 3 C$=INKEY$:IFC$=""THEN3ELSEIFC$<>"X"ANDC$<>"O"THEN3ELSEPRINTC$:CLS:GOSUB103 4 IFC$="X"THEN65 5 P$="O":Q$="X" 6 G=-1:H=1:IFS(5)<>0THEN8 7 S(5)=-1:GOTO59 8 IFS(5)<>1THEN11 9 IFS(1)<>0THEN15 10 S(1)=-1:GOTO59 11 IFS(2)=1ANDS(1)=0THEN54 12 IFS(4)=1ANDS(1)=0THEN54 13 IFS(6)=1ANDS(9)=0THEN58 14 IFS(8)=1ANDS(9)=0THEN58 15 IFG=1THEN17 16 GOTO21 17 J=3*INT((M-1)/3)+1:IF3*INT((M-1)/3)+1=MTHENK=1 18 IF3*INT((M-1)/3)+2=MTHENK=2 19 IF3*INT((M-1)/3)+3=MTHENK=3 20 GOTO22 21 FORJ=1TO7STEP3:FORK=1TO3 22 IFS(J)<>GTHEN26 23 IFS(J+2)<>GTHEN30 24 IFS(J+1)<>0THEN33 25 S(J+1)=-1:GOTO59 26 IFS(J)=HTHEN33 27 IFS(J+2)<>GTHEN33 28 IFS(J+1)<>GTHEN33 29 S(J)=-1:GOTO59 30 IFS(J+2)<>0THEN33 31 IFS(J+1)<>GTHEN33 32 S(J+2)=-1:GOTO59 33 IFS(K)<>GTHEN37 34 IFS(K+6)<>GTHEN41 35 IFS(K+3)<>0THEN44 36 S(K+3)=-1:GOTO59 37 IFS(K)=HTHEN44 38 IFS(K+6)<>GTHEN44 39 IFS(K+3)<>GTHEN44 40 S(K)=-1:GOTO59 41 IFS(K+6)<>0THEN44 42 IFS(K+3)<>GTHEN44 43 S(K+6)=-1:GOTO59 44 GOTO60 45 IFS(3)=GANDS(7)=0THEN57 46 IFS(9)=GANDS(1)=0THEN54 47 IFS(7)=GANDS(3)=0THEN56 48 IFS(9)=0ANDS(1)=GTHEN58 49 IFG=-1THENG=1:H=-1:GOTO15 50 IFS(9)=1ANDS(3)=0THEN55 51 FORI=2TO9:IFS(I)<>0THEN53 52 S(I)=-1:GOTO59 53 NEXTI 54 S(1)=-1:GOTO59 55 IFS(2)=1THEN51 56 S(3)=-1:GOTO59 57 S(7)=-1:GOTO59 58 S(9)=-1 59 PRINT@200,CL$;"The computer moves to....":GOSUB73:GOTO66 60 IFG=1THEN63 61 IFJ=7ANDK=3THEN63 62 NEXTK,J 63 IFS(5)=GTHEN45 64 GOTO49 65 P$="X":Q$="O" 66 PRINT@200,CL$;"Where do you want your '";P$;"'? "; 67 M$=INKEY$:IFM$=""THEN67ELSEM=VAL(M$):PRINTM$ 68 IFM=0THENPRINT"Thanks for the game":GOTO100 69 IFM>9THEN71 70 IFS(M)=0THEN72 71 PRINT@200,CL$;"THAT SQUARE IS OCCUPIED !!!";:FORX=1TO1000:NEXT:GOTO66 72 G=1:S(M)=1:GOSUB73:GOTO6 73 PRINTCHR$(11);:FORI=1TO9:PRINT" ";:IFS(I)<>-1THEN75 74 CP=I:PRINTQ$" ";:GOTO78 75 IFS(I)<>0THEN77 76 PRINT" ";:GOTO78 77 PRINTP$" "; 78 IFI<>3ANDI<>6THEN80 79 PRINT:PRINT"---+---+---":GOTO82 80 IFI=9THEN82 81 PRINT"!"; 82 NEXTI:PRINT:FORI=1TO7STEP3:IFS(I)<>S(I+1)THEN86 83 IFS(I)<>S(I+2)THEN86 84 IFS(I)=-1THEN98 85 IFS(I)=1THEN97 86 NEXTI:FORI=1TO3:IFS(I)<>S(I+3)THEN90 87 IFS(I)<>S(I+6)THEN90 88 IFS(I)=-1THEN98 89 IFS(I)=1THEN97 90 NEXTI:IFS(5)<>GTHEN93 91 IFS(1)=GANDS(9)=GTHEN96 92 IFS(3)=GANDS(7)=GTHEN96 93 FORI=1TO9:IFS(I)=0THEN95 94 NEXTI:GOTO99 95 RETURN 96 IFG=-1THEN98 97 PRINT@200,CL$;"YOU BEAT ME!! GOOD GAME":GOTO100 98 PRINT@200,CL$;"I WIN, TURKEY!!!":GOTO100 99 PRINT@200,CL$;"It's a draw. Thank you." 100 FORX=1TO1000:NEXT:PRINT"Do you want another game ?"; 101 A$=INKEY$:IFA$=""THEN101ELSEPRINTA$; 102 IFLEFT$(A$,1)="Y"THENRUNELSEMENU 103 PRINT@65," THE BOARD ":PRINT@105,"1 2 3":PRINT@145,"4 5 6":PRINT@185,"7 8 9":RETURN:END