start bastext 4609 1.1 start tok64 othello.vic 2 REM s&j kruuv 3 POKE36879,234 5 PRINT"{clear}{down*2}{black} welcome to othello !!" 6 PRINT"{down*2}would you like{space*8}instructions? ( y-n ) 7 GETu$:IFu$=""THEN7 8 IFu$="n"THEN10 9 GOSUB2000 10 dn$="{home}{down*18}":FORi=1TO21:e$=e$+" ":NEXT 12 FORi=1TO21:e$=e$+"{left}":NEXT:r$="{right*20}":f2=0:s2=0 14 DIMa(9,9),i4(8),j4(8),d$(2):PRINT"{clear}should i play my best":INPUTx$ 15 PRINT"forfeit={reverse on}i0{reverse off}" 16 IFLEFT$(x$,1)="n"THEN20 18 s2=2 20 b=-1:w=1:d$(b+1)="W":d$(0+1)=" ":d$(w+1)="Q":FORk=1TO8:READi4(k),j4(k):NEXT 22 FORi=0TO9:FORj=0TO9:a(i,j)=0:NEXTj,i:a(4,4)=w:a(5,5)=w:a(4,5)=b:a(5,4)=b 24 c1=2:h1=c1:n1=4:z=0:PRINT"{down}do you want black or{space*3}white":h=w:INPUTx$:c=b 26 IFLEFT$(x$,1)="b"THEN30 28 c=w:h=b 30 PRINT"do you want to go{space*5}first":INPUTx$:PRINT"{clear}":GOSUB144 32 IFLEFT$(x$,1)="y"THEN76 34 PRINTdn$;e$"i am thinking !" 36 b1=-1:i3=0:j3=0:t1=c:t2=h:FORi=1TO8:FORj=1TO8:IFa(i,j)<>0THEN58 38 GOSUB122:IFf1=0THEN58 40 u=-1:GOSUB128:IFs1=0THEN58 42 IF(i-1)*(i-8)<>0THEN46 44 s1=s1+s2 46 IF(j-1)*(j-8)<>0THEN50 48 s1=s1+s2 50 IFs1b1THEN56 54 IFRND(1)>0.5THEN58 56 b1=s1:i3=i:j3=j 58 NEXTj,i 60 IFb1>0THEN68 62 PRINTdn$"{down}"e$"{down}"e$"{down}"e$"{up*2}i forfeit my move" 64 IFz=1THEN110 66 z=1:GOTO76 68 PRINT"{space*21}" 69 z=0:PRINTdn$"{down}"e$"{down}"e$"{down}"e$"{up*2}i will move to {reverse on}"RIGHT$(STR$(i3),1)"{reverse off} {reverse on}"CHR$(j3+64) 70 GOSUB186:i=i3:j=j3:u=1:GOSUB128:c1=c1+s1+1:h1=h1-s1:n1=n1+1 72 PRINTdn$"{down*2}"e$"that gives me ";s1;"of":PRINT"your pieces" 74 GOSUB144:IFh1=0ORn1=64THEN110 76 t1=h:t2=c 78 PRINTdn$;e$"{white}input your move;{reverse on}row{reverse off}col{up}{left*3}";:GOSUB168:IFi<>0THEN88 80 PRINTdn$"{down}"e$"{down}"e$"{down}"e$"{up*2}forfeiting your turn":INPUTx$ 82 IFLEFT$(x$,1)<>"y"THEN78 84 IFz=1THEN110 86 z=1:GOTO36 88 IF a(i,j)=0THEN92 90 PRINTdn$"{down}"e$"square occupied":GOTO100 92 GOSUB122:IFf1=1THEN96 94 PRINTdn$"{down}"e$"not next to my pieces":GOTO100 96 u=-1:GOSUB128:IFs1>0THEN102 98 PRINTdn$"{down}"e$"doesn't flank a row" 100 PRINTe$"{right*5}try again":PRINTe$:GOTO78 102 PRINT"{space*23}" 103 z=0:PRINTdn$"{down}"e$"{down}"e$"{down}"e$"{up*2}that gives you "; 104 PRINTs1;" of":PRINT"my pieces" 106 u=1:GOSUB128:h1=h1+s1+1:c1=c1-s1:n1=n1+1:GOSUB144:IFc1=0ORn1=64THEN110 108 GOTO36 110 PRINTdn$;e$"you have "h1"pieces " 114 PRINT"{space*22}"e$"{up*2}i have "c1"pieces{space*21}" 115 IFc1>h1THEN117 116 GOTO4000 117 PRINT"{space*24}i win***" 118 PRINTe$"another game":INPUTx$ 119 IFLEFT$(x$,1)="y"THEN10 120 PRINT"it's been fun !{space*10}thank you{>*3}" 121 END 122 f1=0:FORi1=-1TO1:FORj1=-1TO1:IFa(i+i1,j+j1)=t2THEN126 124 NEXTj1,i1:RETURN 126 f1=1:RETURN 128 s1=0:FORk=1TO8:i5=i4(k):j5=j4(k):i6=i+i5:j6=j+j5:s3=0 130 IFa(i6,j6)<>t2THEN142 132 s3=s3+1:i6=i6+i5:j6=j6+j5:IFa(i6,j6)=t1THEN138 134 IFa(i6,j6)=0 THEN142 136 GOTO132 138 s1=s1+s3:IFu<>1THEN142 140 i6=i:j6=j:FORk1=0TOs3:a(i6,j6)=t1:i6=i6+i5:j6=j6+j5:NEXTk1 142 NEXTk:RETURN 144 PRINT"{home}{space*3}a b c d e f g h" 146 PRINT"{space*2}{red}{cm a}{sh asterisk}{cm r}{sh asterisk}{cm r}{sh asterisk}{cm r}{sh asterisk}{cm r}{sh asterisk}{cm r}{sh asterisk}{cm r}{sh asterisk}{cm r}{sh asterisk}{cm s}{black}" 148 FORi=1TO8 150 PRINTi"{blue}{left}{sh -}{black}"; 152 FORj=1TO8 154 PRINTd$(a(i,j)+1)"{blue}{sh -}{black}"; 156 NEXTj 158 PRINT 160 IFi<>8THENPRINT"{space*2}{blue}{cm q}{sh asterisk}{sh +}{sh asterisk}{sh +}{sh asterisk}{sh +}{sh asterisk}{sh +}{sh asterisk}{sh +}{sh asterisk}{sh +}{sh asterisk}{sh +}{sh asterisk}{cm w}{black}" 162 NEXTi 164 PRINT"{space*2}{red}{cm z}{sh asterisk}{cm e}{sh asterisk}{cm e}{sh asterisk}{cm e}{sh asterisk}{cm e}{sh asterisk}{cm e}{sh asterisk}{cm e}{sh asterisk}{cm e}{sh asterisk}{red}{cm x}{black}" 166 RETURN 168 i=-1:j=-1:k=1 170 GETx$:IFx$<>""THEN178 172 IFk=1THENPRINT"{white}{cm +}{left}";:GOTO176 174 PRINT" {left}"; 176 k=-1*k:FORl=1TO200:NEXT:GOTO170 178 g=ASC(x$):IF47-1ANDj<>-1THENRETURN 184 GOTO170 186 PRINTLEFT$(dn$,2*(i3-1)+3);LEFT$(r$,2*(j3-1)+3);:k=1:m=0:x$=d$(c+1) 188 IFk=1THENPRINTx$"{left}";:GOTO192 190 PRINT" {left}"; 192 k=-1*k:FORl=1TO200:NEXT:IFm>9THENRETURN 194 m=m+1:GOTO188 196 DATA 0,1,-1,1,-1,0,-1,-1,0,-1,1,-1,1,0,1,1 2000 REM instructions 2010 PRINT"{down}{space*2}{black}othello is played{space*3}on a 8 V 8 checker" 2020 PRINT"board. rows are{space*7}numbered 1 thru 8, and" 2030 PRINT"columns a thru h. the initial set up is" 2040 PRINT"all blank except for{space*2}the center four " 2050 PRINT"squares, which form{space*3}the pattern:" 2052 PRINT"{blue}hit return to cont.{black}" 2053 GETu$:IFu$=""THEN2053 2054 PRINT"{up}{space*20}" 2055 PRINT"{down}{space*7}QW" 2056 PRINT"{space*7}WQ" 2060 PRINT"{down}try to place your{space*5}piece so that it" 2070 PRINT"outflanks mine,{space*7}creating a horizontal" 2080 PRINT"vertical or diagonal{space*2}run of my pieces" 2090 PRINT"bound on each end by{space*2}at least one of yours." 2093 PRINT"this will flip my{space*5}pieces turning them{space*3}into yours.", 2095 PRINT"{blue}hit return to cont.{black}" 2096 GETu$:IFu$=""THEN2096 2097 PRINT"{up}{space*19}{down}" 3000 PRINT"note: you must captureat least one of my" 3010 PRINT"pieces in this way if at all possible." 3020 PRINT"if it is not possible then you forfeit your" 3030 PRINT"turn by entering i 0{space*2}for your move." 3060 PRINT"{down*2}hit return to start." 3065 GETu$:IFu$=""THEN3065 3070 PRINT"{clear}" 3100 RETURN 4000 REM***you win*** 4010 PRINT"{space*23}**you win!****" 4015 POKE36878,15 4020 FORw3=125TO255 4030 POKE36879,w3:POKE36876,w3:NEXTw3 4050 POKE36878,0:POKE36879,234 4060 GOTO118 stop tok64 (bastext 1.1)