OTHELLO+3 V1.0 Ken Brisbin40000E(88),B(99),BB(66),C(8),D(60),G(25),H(25),W(88),B1(25),B2(25),EV(25),B3(25),CC(25)H PRINT@ LOCATION TO DISPLAY SQUARE OF THE BOARD R18:W(10R)282R:W(20R)242R:W(30R)202R:W(40R)162R:W(50R)122R:W(60R)82R:W(70R)42R:W(80R)2R: START OF GAME SQUARE OCCUPATION0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-11,-10,-9,-1,1,9,10,11 IMPOSE ORDER OF SQUARE FOR SEARCH ROUTINEm81,88,11,18,83,86,61,68,31,38,13,16,63,66,33,36,84,85,51,58,41,48,14,15,64,65,53,56,43,46,34,35,74,75,52,57,42,47,24,25,73,76,62,67,32,37,23,26,82,87,71,78,21,28,12,17,72,77,22,27 INITIAL PONDERATION VALUES OF SQUAREe64,-32,32,16,16,32,-32,64,0,0,-32,-64,2,2,2,2,-64,-32,0,0,32,2,8,4,4,8,2,32,0,0,16,2,4,0,0,4,2,16,0,0,16,2,4,0,0,4,2,16,0,0,32,2,8,4,4,8,2,32,0,0,-32,-64,2,2,2,2,-64,-32,0,0,64,-32,32,16,16,32,-32,64Q118110:KQQ7:B(K):::K18:C(K)::K160:D(K)::K1188:E(K):ח#X0:X10:4811::(27)"W"H(@44," WOULD YOU LIKE TO PLAY AGAINST <1>- THE COMPUTER, OR <2>- ANOTHER PERSON")@200,"YOUR CHOICE?";:A$݄$(1):AZ(A$): AZ1 AZ2 41*:@44," WHAT LEVEL OF PLAY<1-4>":@84," -YOUR CHOICE?";:A$݄$(1):LL(A$):LL0LL442,+@164," WANT TO SEE INSTRUCTIONS?";:A$݄$(1):A$"Y"A$"y"44:50G,:" KEY OPERATIONS":n-" *

--PASS PLAY TO COMPUTER."." *--TO MOVE."/" *--EXECUTE JUMP."0" *";:48112:(17,0)(66,63),1,B=5@20,"OTHELLO+3":@100,"Level-";LL;:AZ1ͣ@110,"Pass-

";U7@182," PLAYER 1 ";m8@222," COMPUTER ";9AZ2 ͣ@222," PLAYER 2 ";:@300,"Your turn-"; AZ2U4:B(54)4:B(45)4:B(55)4:B(44)4:@180,(111);:@220,(120);:@310,(120);:920:220AZ1U3LUU0:VV0:FF0:XY((,1)):XY5X$"Y":X$"N"\X$"N"210@180,(111);:@220,(120);:@310,(111);:920:220@180,(120);:@220,(111);:@310,(111);:B(54)2:B(55)1:B(44)1:B(45)2:920:580 YOUR MOVE OR P#1 OR P#2 MOVE&FFFF1:AZ2UU8::AZ1224k(65024310)120ͣ@310,(111);:@310,(120);yAZ2225X$"Y"ͣ@310,(111);:@310,(120);˜16941:PC(0):@PC3,"";:PC3:4811ԜY$ Y$"P"AZ1FFFF1: 330  Y$(28) 278 Y$(29) 2783 Y$(30) 278H Y$(31) 278Y Y$" "300c 270| Y$(28) PCPC1 XX1029040: PCXXPCXX2 PCXX7 : ŝ Y$(29) PCPC1XX328340: PCXXPCXX2 PCXX7 :  Y$(30) PCPC406YY310: PCYY40 PCPC320: O Y$(31) PCPC40xY283290: PCY40 PCPC320: @PC,""; 4811" Y$" " 300# 270,:6Z0:I18:J8188:W(JZ)PCAJZ:350@J:ZZ10:I"JZ0:I18:J8188:AB(JZ):B(JZ)PC3403KJ:ZZ10:IPTAZ1BB(FF)A:X11:580YU221^B(A)0ͱ:::@300,"OCCUPIED!!!";:R11000::FFFF1:@300,"Your turn-";:221hBB(FF)A:X10ϟrAZ22490|R51:440:R50:540R50:B10:R1160:AD(R1)B(A)0420 440(R1:B1(Z)B1:730RN0:J18:KAC(J)cB(K)1500|KKC(J):B(K)1460B(K)2500KKC(J):KA 500ŠNN1:R51B(K)2:480:480̠JߠN0NB1 530B1NCN0550:::::@300,"ILLEGAL!!! ";:R11000::@300,"Your turn-";(P);:221Y&AZ1B(A)2:920o0AZ2B(A)U:920}:AZ2220?COMPUTER MOVE̡DX$"N"ͣ@310,(111);:@310,(120);:FFFF1:FF11240NLL1FF14610X1280bN10:G(1)0:R40:R160:AD(R):B(A)0640%l780OvG(1)0(FF14LL1)R41:780:900VRfG(1)0770{LL4FF53720 EVALUATION ROUTINEZ1N1ТEV(Z)E(G(Z))60CC(Z):Z:RREV(1):GGCC(1) EVALUATION SORT ROUTINE Z1N1:EV(Z)RR 710GGCC(Z)5Z:AD(GG):R41:780:900cZ1N1:R42:AG(Z):B(A)1:S1A:780:390t1150:V0:Z FLIP-A-PIECE ROUTINEZ1N1:B1(Z)0B1(Z)110ȣB3(Z)B2(Z)B1(Z):Z1160:R41:780:900(@300,"NO MOVE!!! ";:R1900:R:X1:BB(FF)A:X1X111060:220N N0:J18:KAC(J):@215,(229);r SEARCH FOR LEGAL MOVE ROUTINEB(K)2860 KKC(J):B(K)2800*B(K)1860Ĥ4KKC(J):KA 860֤9@215,(230);>NN1:R41B(K)1 HR42B(K)1:VV1:H(V)KR820\J)fR42890TpN0N1N11:G(N1)A:B2(N1)N:CC(N1)RZzn COMPUTER PLAY}V0:B(A)1ߥX0:BB(FF)A::J1N1:H(J)0:G(J)0:B2(J)0:B3(J)0:B1(J)0:EV(J)0:CC(J)0::GG0:920:220  DISPLAY OF THE BOARD PRINTING ROUTINEBZ0:I18:J8188:B(JZ)1X$"Y"P120:VVVV1eB(JZ)1X$"N"P111:VVVV1B(JZ)2X$"Y"P111:UUUU1B(JZ)2X$"N"P120:UUUU1̦B(JZ)4AZ2P111:UUUU1B(JZ)4AZ2P120:VVVV1B(JZ)0P32@215," ";0@W(JZ),(P);:J:ZZ10:IH@191,UU;:@231,VV;`AZ2UUVV641130tUU0VV01130UU0:VV0X1X111060AZ1UUVV641060ͧ END OF GAME ROUTINE٧$M0:N0%Z0:I18:J8188:B(JZ)1MM1.B(JZ)2NN1$8:ZZ10:J9MN A$"COMPUTER WIN":@300,A$;oBMN A$"IT IS A TIE":@300,A$;LMN A$"YOU WIN ":@300,A$;VK13000:ըj@300,"PLAY AGAIN (Y/N)";:A$݄$(1):A$"Y"͉ۨt~R1V:B(H(R))2:R:B(S1)0: NN1:D1DD2:DN 11700D((D1)2)BD0AG(1):YITND:I1IT:JIcLJDB3(L)B3(J)TB3(J):T1G(J):B3(J)B3(L):G(J)G(L):B3(L)T:G(L)T1:JJD:J01210ǩI:1180 COMPUTER PLAY RANDOMLY FIRST MOVE IF HE STARTN@215,(229);:SEC((,1)):SEC(SEC2):SEC01240:SEC1245,1250,1260,1270a@215,(230);:wA35:B(45)1:900A46:B(45)1:900A53:B(54)1:900A64:B(54)1:900 BIT MAP OF WHO OCCUPIED WHAT ON EACH SIDE OF THE BOARD-A$"":B$"":C$"":D$"":K1118:B(K)0A$A$"0"C B(K)1A$A$"1"YB(K)2A$A$"2"rB(K70)0B$B$"0"(B(K70)1B$B$"1"2B(K70)2B$B$"2"<̫FK118110:B(K)0C$C$"0"PB(K)1C$C$"1"ZB(K)2C$C$"2"dB(K7)0D$D$"0"(nB(K7)1D$D$"1"@xB(K7)2D$D$"2"i} UPDATING PONDERATION VALUE ROUTINEoB(11)1E(12)20:E(21)20:E(22)20B(18)1E(17)20:E(27)20:E(28)20笠B(81)1E(71)20:E(72)20:E(82)20B(88)1E(77)20:E(78)20:E(87)20cA$"00111100"A$"01111100"A$"00112200"A$"00122200"A$"00111200"E(17)24A$"00111100"A$"00111110"A$"00221100"A$"00222100"A$"00211100"E(12)24 B$"00111100"B$"01111100"B$"00112200"B$"00122200"A$"00111200"E(87)24_B$"00111100"B$"00111110"B$"00221100"B$"00222100"B$"00211100"E(82)24C$"00111100"C$"01111100"C$"00112200"C$"00122200"C$"00111200"E(71)24C$"00111100"C$"00111110"C$"00221100"C$"00222100"C$"00211100"E(21)24[D$"00111100"D$"01111100"D$"00112200"D$"00122200"D$"00111200"E(78)24D$"00111100"D$"00111110"D$"00221100"D$"00222100"D$"00211100"E(28)24̯A$"20111110"E(12)64A$"01111102"E(17)64B$"20111110"E(82)64#"B$"01111102"E(87)64@,C$"20111110"E(21)64]6C$"01111102"E(71)64z@D$"20111110"E(28)64JD$"01111102"E(78)64TA$"02220100"E(15)32Ѱ^A$"00102220"E(14)32hB$"02220100"E(85)32 rB$"00102220"E(84)32(|C$"02220100"E(51)32EC$"00102220"E(41)32bD$"02220100"E(58)32D$"00102220"E(48)32(A$,4)"0102"E(13)32:(A$,4)"2010"E(16)32(B$,4)"0102"E(83)32:(B$,4)"2010"E(86)32*(C$,4)"0102"E(31)32:(C$,4)"2010"E(61)32c(D$,4)"0102"E(38)32:(D$,4)"2010"E(68)32A$"00002100"E(14)24:A$"00120000"E(15)24ͲB$"00002100"E(84)24:B$"00120000"E(85)24C$"00002100"E(41)24:C$"00120000"E(51)247D$"00002100"E(48)24:D$"00120000"E(58)24lA$"00001110"E(14)24:A$"01110000"E(15)24B$"00001110"E(84)24:B$"01110000"E(85)24ֳC$"00001110"E(41)24:C$"01110000"E(51)24 D$"00001110"E(48)24:D$"01110000"E(58)24QA$"00210000"A$"00221000"A$"00211000"A$"00211110"E(12)24&A$"00001200"A$"00012200"A$"00011200"A$"01111200"E(17)24ݴ0B$"00210000"B$"00221000"B$"00211000"B$"00211110"E(82)24#:B$"00001200"B$"00012200"B$"00011200"B$"01111200"E(87)24iDC$"00210000"C$"00221000"C$"00211000"C$"00211110"E(21)24NC$"00001200"C$"00012200"C$"00011200"C$"01111200"E(71)24XD$"00210000"D$"00221000"D$"00211000"D$"02111100"E(28)24;bD$"00001200"D$"00012200"D$"00011200"D$"01111200"E(78)24lA$"00022200"A$"00222200"E(17)32:A$"00222000"A$"00222200"E(12)32vB$"00022200"B$"00222200"E(87)32:B$"00222000"B$"00222200"E(82)324C$"00022200"C$"00222200"E(71)32:C$"00222000"C$"00222200"E(21)32D$"00022200"D$"00222200"E(78)32:D$"00222000"D$"00222200"E(28)32A$"00200200"E(14)2:E(15)2ѷB$"00200200"E(84)2:E(85)2C$"00200200"E(41)2:E(51)2D$"00200200"E(48)2:E(58)2RA$"01110000"E(16)32:A$"00001110"E(13)32B$"01110000"E(86)32:B$"00001110"E(83)32C$"01110000"E(61)32:C$"00001110"E(31)32D$"01110000"E(68)32:D$"00001110"E(38)32~A$"01110200"E(15)32:A$"01111020"A$"00111020"E(16)32:A$"00201110"E(14)32:A$"02011110"A$"02011100"E(13)32B$"01110200"E(85)32:B$"01111020"B$"00111020"E(86)32:B$"00201110"E(84)32:B$"02011110"B$"02011100"E(83)32C$"01110200"E(51)32:C$"01111020"C$"00111020"E(61)32:C$"00201110"E(41)32:C$"02011110"C$"02011100"E(31)32D$"01110200"E(58)32:D$"01111020"D$"00111020"E(68)32:D$"00201110"E(48)32:D$"02011110"D$"02011100"E(38)320 A$"02222200"E(17)96MA$"00222220"E(12)96j B$"02222200"E(87)96*B$"00222220"E(82)964C$"02222200"E(71)96>C$"00222220"E(21)96޻HD$"02222200"E(78)96RD$"00222220"E(28)96 \LL32390)a COMPUTER PLAY THE GAMBITNfA$"00222220"B(31)0E(22)24jpA$"20222220"E(12)34zA$"02222200"B(38)0E(27)24A$"02222202"E(17)34мB$"00222220"B(61)0E(72)24켘B$"20222220"E(82)34B$"02222200"B(68)0E(77)24-B$"02222202"E(87)34RC$"00222220"B(13)0E(22)24nC$"20222220"E(21)34C$"02222200"B(83)0E(72)24C$"02222202"E(71)34ԽD$"00222220"B(16)0E(27)24D$"20222220"E(28)34D$"02222200"B(86)0E(77)241D$"02222202"E(78)34b COMPUTER PROTECT ITSELF AGAINST THE GAMBIT A$"00111110"C$"00111110"E(11)96 A$"01111100"D$"00111110"E(18)96 B$"00111110"C$"01111100"E(81)96$ B$"01111100"D$"01111100"E(88)963. A$"01111110"E(11)64:E(18)64X8 B$"01111110"E(81)64:E(88)64}B C$"01111110"E(11)64:E(81)64L D$"01111110"E(18)64:E(88)64V 610ɿ[ CHANGE OF LEVEL ROUTINE濵 ROUTINE IF TWO PLAYERS N0:J18:KAC(J) B(K)U 2550. KKC(J):B(K)U 2510A B(K)U 2550Y KKC(J):KA 2550v NN1:B(K)U:2530:2540 J:X0:540@ AZ:SNG B:TI$"OTHELLO+3":LTI(TI$):AU$"by KJB":LAU(AU$):TI((40LTI)2):0,0::(27)"V";:X12:(160,255);:eJ(6TI6,19)((6TI)(6LTI)4,35),1,BF:(6TI4,21)((6TI)(6LTI)2,33),0,BF:@120TI,TI$T(237(LAU6)8,45)(237,57),1,BF:(237(LAU6)7,46)(236,56),0,BF:@279LAU,AU$:5