0 'OTHELO.BA Gary Sullivan CLUB 100 Library - 415/939-1246 BBS, 937-5039 NEWSLETTER, 932-8856 VOICE 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 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 3 PRINT@0,"Should I play my best strategy";:INPUTX$:IFLEFT$(X$,1)="N"THEN6 4 IFLEFT$(X$,1)<>"Y"THEN3 5 S2=2 6 PRINT@80,"Wanna have Black or White ";:C=W:H=B:INPUTX$:IFLEFT$(X$,1)="B"THEN9 7 IFLEFT$(X$,1)<>"W"THEN6 8 C=B:H=W 9 PRINT@160,"Want to go first";:INPUTX$:IFLEFT$(X$,1)="N"THEN14 10 IFLEFT$(X$,1)<>"Y"THEN9 11 GOSUB75:GOSUB69:GOTO31 12 IFF2=0THEN15 13 INPUTX$ 14 GOSUB75:GOSUB69 15 GOSUB81:PRINT"(I'm thinking)":B1=-1:I3=0:J3=0:T1=C:T2=H:FORI=1TO8:FORJ=1TO8:IFA(I,J)<>0THEN26 16 GOSUB59:IFF1=0THEN26 17 U=-1:GOSUB62:IFS1=0THEN26 18 IF(I-1)*(I-8)<>0THEN20 19 S1=S1+S2 20 IF(J-1)*(J-8)<>0THEN22 21 S1=S1+S2 22 IFS1B1THEN25 24 R=RND(1):IFR>.5THEN26 25 B1=S1:I3=I:J3=J 26 NEXTJ:NEXTI:IFB1>0THEN29 27 GOSUB81:PRINT"I have to forfeit my move":GOSUB74:IFZ=1THEN57 28 Z=1:GOTO31 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 30 IFN1=64THEN57 31 T1=H 32 T2=C 33 GOSUB81:SOUND999,1:PRINT"Your move (Row,Col) "; 34 J$=INKEY$:IFJ$=""THEN34 35 J=VAL(J$):IFJ$=CHR$(9)THEN15 36 IFJ<1THEN33 37 IFJ>8THEN33 38 PRINT@580,J 39 SOUND999,1 40 X$=INKEY$:IFX$=""THEN40 41 PRINT@583,X$:SOUND999,1:XX=ASC(X$):IFXX<65THEN39 42 IFXX>72THEN39 43 IFJ<>0THEN46 44 GOSUB81:IFZ=1THEN57 45 Z=1:GOTO12 46 FORI=1TO8:IFC$(I)=X$THEN48 47 NEXTI:GOTO32 48 IFA(I,J)=0THEN50 49 GOSUB81:PRINT"That square is occupied; try again";:GOSUB74:GOTO33 50 GOSUB59:IFF1=1THEN52 51 GOSUB81:PRINT"You are not next to one of my pieces;";:GOSUB74:GOSUB81:PRINT"Try again":GOSUB74:GOTO33 52 U=-1:GOSUB62:IFS1>0THEN54 53 GOSUB81:PRINT"That doesn't flank a row; try again";:GOSUB74:GOTO33 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 55 IFN1=64THEN57 56 GOTO12 57 GOSUB81:PRINT"You have "H1"pieces I have "C1"pieces ":INPUT"Another Game ";X$:IFLEFT$(X$,1)="Y"THENRUN 58 MENU 59 FORI1=-1TO1:FORJ1=-1TO1:IFA(I+I1,J+J1)=T2THEN61 60 NEXTJ1:NEXTI1:F1=0:RETURN 61 F1=1:RETURN 62 S1=0:FORK=1TO8:I5=I4(K):J5=J4(K):I6=I+I5:J6=J+J5:S3=0:IFA(I6,J6)<>T2THEN68 63 S3=S3+1:I6=I6+I5:J6=J6+J5:IFA(I6,J6)=T1THEN66 64 IFA(I6,J6)=0THEN68 65 GOTO63 66 S1=S1+S3:IFU<>1THEN68 67 I6=I:J6=J:FORK1=0TOS3:A(I6,J6)=T1:I6=I6+I5:J6=J6+J5:NEXTK1 68 NEXTK:RETURN 69 FORI=1TO8:FORJ=1TO8:IFD$(A(I,J)+1)="X"THENGOSUB72 70 IFD$(A(I,J)+1)="O"THENGOSUB73 71 NEXTJ:NEXTI:PRINT@110,N1-3:PRINT@190,C1;:PRINT@270,H1;:RETURN 72 LINE(X(I),Y(J))-(X(I)+8,Y(J)+8),1,BF:RETURN 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 74 FORK=1TO500:NEXT:RETURN 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) 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) 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) 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 <-= 79 IFS2=2THENPRINT@21,"=-> Hard Game <-= 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 81 PRINT@560,CHR$(27)"J";:RETURN 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 83 FORK=1TO8:READY(K):NEXTK:DATA 11,23,35,47,59,71,83,95:RETURN 84 GOSUB75:KEYON:GOSUB69:GOSUB33:RETURN