home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.tar / ftp.whtech.com / club100 / gam / othelo.200 < prev    next >
Text File  |  2006-10-19  |  5KB  |  86 lines

  1. 0 'OTHELO.BA  Gary Sullivan                CLUB 100 Library - 415/939-1246 BBS,    937-5039 NEWSLETTER, 932-8856 VOICE
  2. 1 KEYON:ONKEYGOSUB84,,,,,,,58:CALL20318:CLS:PRINT@96,"OTHELLO":PRINT@134,"(Ver:G2.00)":PRINT@367,"Modified for the Tandy 200":PRINT@419,"by":PRINT@452,"John Menichelli":PRINT@494,"[72226,1652]":PRINT@606,"Compressed By Gary Sullivan":FORK=1TO1500:NEXT
  3. 2 DIMA(9,9),I4(8),J4(8),C$(8),D$(2),X(9),Y(9):GOSUB82:FORI=0TO9:FORJ=0TO9:A(I,J)=0:NEXTJ:NEXTI:A(4,4)=W:A(5,5)=W:A(4,5)=B:A(5,4)=B:C1=2:H1=2:N1=4:Z=0:S2=0:CLS
  4. 3 PRINT@0,"Should I play my best strategy";:INPUTX$:IFLEFT$(X$,1)="N"THEN6
  5. 4 IFLEFT$(X$,1)<>"Y"THEN3
  6. 5 S2=2
  7. 6 PRINT@80,"Wanna have Black or White ";:C=W:H=B:INPUTX$:IFLEFT$(X$,1)="B"THEN9
  8. 7 IFLEFT$(X$,1)<>"W"THEN6
  9. 8 C=B:H=W
  10. 9 PRINT@160,"Want to go first";:INPUTX$:IFLEFT$(X$,1)="N"THEN14
  11. 10 IFLEFT$(X$,1)<>"Y"THEN9
  12. 11 GOSUB75:GOSUB69:GOTO31
  13. 12 IFF2=0THEN15
  14. 13 INPUTX$
  15. 14 GOSUB75:GOSUB69
  16. 15 GOSUB81:PRINT"(I'm thinking)":B1=-1:I3=0:J3=0:T1=C:T2=H:FORI=1TO8:FORJ=1TO8:IFA(I,J)<>0THEN26
  17. 16 GOSUB59:IFF1=0THEN26
  18. 17 U=-1:GOSUB62:IFS1=0THEN26
  19. 18 IF(I-1)*(I-8)<>0THEN20
  20. 19 S1=S1+S2
  21. 20 IF(J-1)*(J-8)<>0THEN22
  22. 21 S1=S1+S2
  23. 22 IFS1<B1THEN26
  24. 23 IFS1>B1THEN25
  25. 24 R=RND(1):IFR>.5THEN26
  26. 25 B1=S1:I3=I:J3=J
  27. 26 NEXTJ:NEXTI:IFB1>0THEN29
  28. 27 GOSUB81:PRINT"I have to forfeit my move":GOSUB74:IFZ=1THEN57
  29. 28 Z=1:GOTO31
  30. 29 Z=0:GOSUB81:PRINT"I will move to "J3", "C$(I3);:I=I3:J=J3:U=1:GOSUB62:C1=C1+S1+1:H1=H1-S1:N1=N1+1:GOSUB81:PRINT"That gives me "S1" of your pieces":GOSUB74:GOSUB69:IFH1=0THEN57
  31. 30 IFN1=64THEN57
  32. 31 T1=H
  33. 32 T2=C
  34. 33 GOSUB81:SOUND999,1:PRINT"Your move (Row,Col) ";
  35. 34 J$=INKEY$:IFJ$=""THEN34
  36. 35 J=VAL(J$):IFJ$=CHR$(9)THEN15
  37. 36 IFJ<1THEN33
  38. 37 IFJ>8THEN33
  39. 38 PRINT@580,J
  40. 39 SOUND999,1
  41. 40 X$=INKEY$:IFX$=""THEN40
  42. 41 PRINT@583,X$:SOUND999,1:XX=ASC(X$):IFXX<65THEN39
  43. 42 IFXX>72THEN39
  44. 43 IFJ<>0THEN46
  45. 44 GOSUB81:IFZ=1THEN57
  46. 45 Z=1:GOTO12
  47. 46 FORI=1TO8:IFC$(I)=X$THEN48
  48. 47 NEXTI:GOTO32
  49. 48 IFA(I,J)=0THEN50
  50. 49 GOSUB81:PRINT"That square is occupied; try again";:GOSUB74:GOTO33
  51. 50 GOSUB59:IFF1=1THEN52
  52. 51 GOSUB81:PRINT"You are not next to one of my pieces;";:GOSUB74:GOSUB81:PRINT"Try again":GOSUB74:GOTO33
  53. 52 U=-1:GOSUB62:IFS1>0THEN54
  54. 53 GOSUB81:PRINT"That doesn't flank a row; try again";:GOSUB74:GOTO33
  55. 54 Z=0:GOSUB81:PRINT"That gives you "S1" of my pieces";:GOSUB74:U=1:GOSUB62:H1=H1+S1+1:C1=C1-S1:N1=N1+1:GOSUB69:IFC1=0THEN57
  56. 55 IFN1=64THEN57
  57. 56 GOTO12
  58. 57 GOSUB81:PRINT"You have "H1"pieces I have "C1"pieces ":INPUT"Another Game ";X$:IFLEFT$(X$,1)="Y"THENRUN
  59. 58 MENU
  60. 59 FORI1=-1TO1:FORJ1=-1TO1:IFA(I+I1,J+J1)=T2THEN61
  61. 60 NEXTJ1:NEXTI1:F1=0:RETURN
  62. 61 F1=1:RETURN
  63. 62 S1=0:FORK=1TO8:I5=I4(K):J5=J4(K):I6=I+I5:J6=J+J5:S3=0:IFA(I6,J6)<>T2THEN68
  64. 63 S3=S3+1:I6=I6+I5:J6=J6+J5:IFA(I6,J6)=T1THEN66
  65. 64 IFA(I6,J6)=0THEN68
  66. 65 GOTO63
  67. 66 S1=S1+S3:IFU<>1THEN68
  68. 67 I6=I:J6=J:FORK1=0TOS3:A(I6,J6)=T1:I6=I6+I5:J6=J6+J5:NEXTK1
  69. 68 NEXTK:RETURN
  70. 69 FORI=1TO8:FORJ=1TO8:IFD$(A(I,J)+1)="X"THENGOSUB72
  71. 70 IFD$(A(I,J)+1)="O"THENGOSUB73
  72. 71 NEXTJ:NEXTI:PRINT@110,N1-3:PRINT@190,C1;:PRINT@270,H1;:RETURN
  73. 72 LINE(X(I),Y(J))-(X(I)+8,Y(J)+8),1,BF:RETURN
  74. 73 LINE(X(I)+1,Y(J)+1)-(X(I)+7,Y(J)+7),0,BF:LINE(X(I),Y(J))-(X(I)+8,Y(J)+8),1,B:RETURN
  75. 74 FORK=1TO500:NEXT:RETURN
  76. 75 CLS:PRINT@3,"A B C D E F G H":LINE(9,14)-(11,12):LINE-(11,18):LINE(9,18)-(13,18):PSET(9,25):LINE(10,24)-(12,24):LINE(13,25)-(13,26):LINE-(11,28):LINE-(10,28):LINE-(9,29):LINE-(9,30):LINE-(13,30):PSET(9,37):LINE(10,36)-(12,36):LINE(13,37)-(13,38)
  77. 76 LINE(11,39)-(12,39):LINE(13,40)-(13,41):LINE(12,42)-(10,42):PSET(9,41):LINE(12,48)-(12,54):LINE(9,51)-(12,48):LINE(9,52)-(13,52):LINE(13,60)-(9,60):LINE-(9,62):LINE-(11,62):LINE-(13,64):LINE-(11,66):LINE-(9,66):LINE(12,72)-(11,72):LINE-(9,74)
  78. 77 LINE-(9,77):LINE(10,78)-(12,78):LINE(13,77)-(13,76):LINE(12,75)-(10,75):LINE(9,85)-(9,84):LINE-(13,84):LINE-(13,85):LINE-(11,87):LINE-(11,90):LINE(10,96)-(12,96):LINE(10,99)-(12,99):LINE(10,102)-(12,102):LINE(9,97)-(9,98):LINE(9,100)-(9,101)
  79. 78 LINE(13,97)-(13,98):LINE(13,100)-(13,101):LINE(15,9)-(111,105),1,B:FORX=27TO109STEP12:LINE(X,9)-(X,105):NEXT:FORX=21TO109STEP12:LINE(15,X)-(111,X):NEXT:IFS2=0THENPRINT@21,"=-> Easy Game <-=
  80. 79 IFS2=2THENPRINT@21,"=-> Hard Game <-=
  81. 80 PRINT@100,"Move":PRINT@180,"Computer":PRINT@260,"Dumb Human":PRINT@340,"F1 Power up reDRAW":PRINT@420,"F8 to QUIT":PRINT@500,"TAB to forfit turn
  82. 81 PRINT@560,CHR$(27)"J";:RETURN
  83. 82 B=-1:W=1:D$(B+1)="X":D$(O+1)=".":D$(W+1)="O":FORK=1TO8:READI4(K):NEXTK:DATA 0,-1,-1,-1,0,1,1,1:FORK=1TO8:READJ4(K):NEXTK:DATA 1,1,0,-1,-1,-1,0,1:FORK=1TO8:READC$(K):NEXTK:DATA A,B,C,D,E,F,G,H:FORK=1TO8:READX(K):NEXTK:DATA 17,29,41,53,65,77,89,101
  84. 83 FORK=1TO8:READY(K):NEXTK:DATA 11,23,35,47,59,71,83,95:RETURN
  85. 84 GOSUB75:KEYON:GOSUB69:GOSUB33:RETURN
  86.