home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.tar / ftp.whtech.com / club100 / gam / x-o-x.ba < prev    next >
Text File  |  2006-10-19  |  2KB  |  37 lines

  1. 0 '-=X_O_X=-by George Tompkins Rev. 3/91   this program plays a perfect game of    Tic-Tac-Toe you can not win.
  2. 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)
  3. 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 ?
  4. 3 IFA="Y"ORA="y"THENA="X"ELSEA="O":GOTO10
  5. 4 B$=INKEY$:IFB$=CHR$(13)THENRUNELSEIFB$="M"THENMENU
  6. 5 IFB$<"1"ORB$>"9"THEN4
  7. 6 B=VAL(B$):IFC(B)THENBEEP:GOTO4ELSEC(B)=1
  8. 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
  9. 8 IFW=0THENPRINT@170,"A tie":PRINT@81,SPACE$(20)
  10. 9 IFA="X"THENA="O"ELSEA="X":GOTO4
  11. 10 IFC(5)=0THENB=5:GOTO13
  12. 11 B=0:D=-2:GOSUB14:IFB=0THEND=2:GOSUB14ELSEW=1:PRINT@81,SPACE$(20):PRINT@170,"I WIN!":SOUND7000,20
  13. 12 IFB=0THENGOSUB23
  14. 13 C(B)=-1:IFBTHEN7ELSE8
  15. 14 IFC(1)+C(2)+C(3)=DTHENFORI=1TO3:IFC(I)THENNEXTELSEB=I
  16. 15 IFC(4)+C(5)+C(6)=DTHENFORI=4TO6:IFC(I)THENNEXTELSEB=I
  17. 16 IFC(7)+C(8)+C(9)=DTHENFORI=7TO9:IFC(I)THENNEXTELSEB=I
  18. 17 IFC(1)+C(4)+C(7)=DTHENFORI=1TO7STEP3:IFC(I)THENNEXTELSEB=I
  19. 18 IFC(2)+C(5)+C(8)=DTHENFORI=2TO8STEP3:IFC(I)THENNEXTELSEB=I
  20. 19 IFC(3)+C(6)+C(9)=DTHENFORI=3TO9STEP3:IFC(I)THENNEXTELSEB=I
  21. 20 IFC(1)+C(5)+C(9)=DTHENFORI=1TO9STEP4:IFC(I)THENNEXTELSEB=I
  22. 21 IFC(3)+C(5)+C(7)=DTHENFORI=3TO7STEP4:IFC(I)THENNEXTELSEB=I
  23. 22 RETURN
  24. 23 FORI=1TO9STEP2:IFC(I)THENNEXTELSEB=I:GOTO25
  25. 24 FORI=2TO8STEP2:IFC(I)THENNEXTELSEB=I
  26. 25 IFC(1)+C(9)=2ANDC(2)=0THENB=2
  27. 26 IFC(3)+C(7)=2ANDC(2)=0THENB=2
  28. 27 IFC(1)ANDC(2)+C(9)=2ANDC(7)=0THENB=7
  29. 28 IFB=3ANDC(7)=1ANDC(6)=0THENB=6
  30. 29 IFB=7ANDC(3)=1ANDC(8)=0THENB=8
  31. 30 IFB=9ANDC(1)=1ANDC(8)=0THENB=8
  32. 31 IFB=1ANDC(6)=1ANDC(8)=1THENB=9
  33. 32 IFC(1)=1ORC(3)=1THENIFC(8)=1ANDC(9)=0THENB=9
  34. 33 RETURN
  35. 34 end
  36. 35 END
  37.