0 '-=X_O_X=-by George Tompkins Rev. 3/91 this program plays a perfect game of Tic-Tac-Toe you can not win. 1 CLS:DEFSTRA:DEFINTB-Z:DATA71,74,77,151,154,157,231,234,237:PRINT@82,CHR$(27)"VDo you want to go first? (Y/n)";:A=INPUT$(1):CLS:LINE(197,2)-(197,53):LINE(215,2)-(215,53):LINE(179,19)-(231,19):LINE(179,35)-(231,35) 2 FORI=1TO9:READP:PRINT@P,CHR$(27)"p"RIGHT$(STR$(I),1)CHR$(27)"q":X=(PMOD40)*6-1:Y=(P\40)*8-1:LINE(X,Y)-(X+6,Y):LINE(X,Y)-(X,Y+8):NEXT:RESTORE:PRINT@281,"[ENTER] to start new game":PRINT@315,"Menu":PRINT@81,"X at position 1-9 ? 3 IFA="Y"ORA="y"THENA="X"ELSEA="O":GOTO10 4 B$=INKEY$:IFB$=CHR$(13)THENRUNELSEIFB$="M"THENMENU 5 IFB$<"1"ORB$>"9"THEN4 6 B=VAL(B$):IFC(B)THENBEEP:GOTO4ELSEC(B)=1 7 FORI=1TOB:READP:NEXT:PRINT@P,A:X=(PMOD40)*6-1:Y=(P\40)*8-1:LINE(X,Y)-(X+6,Y),0:LINE(X,Y)-(X,Y+8),0:RESTORE:FORI=1TO9:IFC(I)THENNEXTELSE9 8 IFW=0THENPRINT@170,"A tie":PRINT@81,SPACE$(20) 9 IFA="X"THENA="O"ELSEA="X":GOTO4 10 IFC(5)=0THENB=5:GOTO13 11 B=0:D=-2:GOSUB14:IFB=0THEND=2:GOSUB14ELSEW=1:PRINT@81,SPACE$(20):PRINT@170,"I WIN!":SOUND7000,20 12 IFB=0THENGOSUB23 13 C(B)=-1:IFBTHEN7ELSE8 14 IFC(1)+C(2)+C(3)=DTHENFORI=1TO3:IFC(I)THENNEXTELSEB=I 15 IFC(4)+C(5)+C(6)=DTHENFORI=4TO6:IFC(I)THENNEXTELSEB=I 16 IFC(7)+C(8)+C(9)=DTHENFORI=7TO9:IFC(I)THENNEXTELSEB=I 17 IFC(1)+C(4)+C(7)=DTHENFORI=1TO7STEP3:IFC(I)THENNEXTELSEB=I 18 IFC(2)+C(5)+C(8)=DTHENFORI=2TO8STEP3:IFC(I)THENNEXTELSEB=I 19 IFC(3)+C(6)+C(9)=DTHENFORI=3TO9STEP3:IFC(I)THENNEXTELSEB=I 20 IFC(1)+C(5)+C(9)=DTHENFORI=1TO9STEP4:IFC(I)THENNEXTELSEB=I 21 IFC(3)+C(5)+C(7)=DTHENFORI=3TO7STEP4:IFC(I)THENNEXTELSEB=I 22 RETURN 23 FORI=1TO9STEP2:IFC(I)THENNEXTELSEB=I:GOTO25 24 FORI=2TO8STEP2:IFC(I)THENNEXTELSEB=I 25 IFC(1)+C(9)=2ANDC(2)=0THENB=2 26 IFC(3)+C(7)=2ANDC(2)=0THENB=2 27 IFC(1)ANDC(2)+C(9)=2ANDC(7)=0THENB=7 28 IFB=3ANDC(7)=1ANDC(6)=0THENB=6 29 IFB=7ANDC(3)=1ANDC(8)=0THENB=8 30 IFB=9ANDC(1)=1ANDC(8)=0THENB=8 31 IFB=1ANDC(6)=1ANDC(8)=1THENB=9 32 IFC(1)=1ORC(3)=1THENIFC(8)=1ANDC(9)=0THENB=9 33 RETURN 34 end 35 END