OTHELLO---VER 1-11/29/86- DODGER4%Y( A(9,9),I4(8),J4(8),C$(8),D$(2)q2 INITIAL GREETINGSw<F " ************************************************"P " ********** GREETINGS FROM OTHELLO **********"CZ " ************************************************"Md::n "DO YOU WANT INSTRUCTIONS? (Y/N) ": X$x X$"N" 340 X$"Y" 60::: "OTHELLO IS PLAYED ON AN 8 X 8 CHECKER BOARD WITH THE ROWS"< " NUMBERED 1 THROUGH 8 AND THE COLUMNS LETTERED A THROUGH K"B "THE INITIAL CONFIGURATION IS ALL BLANK, EXCEPT FOR THE CENTER" " FOUR POSITIONS WHICH FORM THE PATTERN..." " O X" " X O" P "TRY TO PLACE YOUR PIECE SO THAT IT 'OUTFLANKS' MINE, CREATING" " A HORIZONTAL, VERTICAL, OR DIAGONAL RUN OF MY PIECES," " BOUNDED AT EACH END BY ONE OF YOUR PIECES. THIS WILL"  " 'FLIP' MY PIECES TURNING THEM INTO YOURS." [ " "NOTE: YOU MUST CAPTURE AT LEAST ONE OF MY PIECES IN THIS WAY" , " IF IT IS AT ALL POSSIBLE. IF IT IS NOT POSSIBLE, YOU" 6 " FORFEIT YOUR TURN BY ENTERING 'W' FOR YOUR ROW OR COL MOVE."!@::: "PRESS ANY KEY TO CONTINUE ": Z9$,!J: INITALIZEd!T"SHOULD I PLAY MY BEST STRATEGY? (Y/N) ": X$m!^S20!h X$"N" 390!r X$"Y" 340!|S22!B1!O0!W1!D$(B1)"X"!D$(O1)"."!D$(W1)"O"! K1 8" I4(K)" K!" 0,-1,-1,-1,0,1,1,1/" K1 8;" J4(K)C" K\" 1,1,0,-1,-1,-1,0,1j" K1 8v" C$(K)~"& K"0 "A","B","C","D","E","F","G","H"": SET UP A NEW GAME"D I0 9"N J0 9"XA(I,J)0"b J"l I#vA(4,4)W#A(5,5)W#A(4,5)B)#A(5,4)B2#C12;#H12D#N14L#Z0b# PLAYER'S CHOICE# "DO YOU WANT TO HAVE 'X' OR 'O' ?": X$#CW#HB# X$"X" 790# X$"O" 720#CB# HW $ "DO YOU WANT TO GO FIRST? (Y/N) ": X$$  3060($* X$"N" 850<$4 X$"Y" 790G$> 1470]$H COMPUTER'S MOVEg$RB11p$\I30y$fJ30$pT1C$zT2H$ SCAN FOR BLANKS$I1: 930$II1: I8 1230$ J1 8$ A(I,J)0 1210% FOUND A BLANK POSITION)% TEST FOR OPPONENT NEIGHBOR4% 2510F% F10 1210d% FOUND OPPONENT NEIGHBOR% NUMBER OF PIECES TO INVERT% (NOT DONE AT PRESENT)%U1% 2710% EXTRA POINTS FOR BOUNDRY POSITION% S10 1210 &$ (I1)(I8)0 1080&.S1S1S24&8 (J1)(J8)0 1110A&BS1S1S2e&L TEST FOR BEST POSITION SO FARx&V S1B1 1210&` S1B1 1170&j TIE FOR BEST POSITION&tR(1)&~ R.5 1210& YES&B1S1&I3I&J3J' END OF LOOP SCAN ' J' 920/' COULD WE DO ANYTHING?A' B10 1330J' NOU' 3020u' "I AM FORFEITING MY TURN"~' 1'  Z1 2140'Z1' 1520'( TAKE THAT MOVE'2Z0'< 3020'F "I WILL MOVE TO (";I3;",";C$(J3);")"'P 3(ZII3(dJJ3(nU1#(x 27102(C1C1S11?(H1H1S1L(N1N1N1w("THAT GIVES ME ";S1;" OF YOUR PIECES"( 3( F0 2( F1 3060( TEST FOR END OF GAME( H10 2140( N164 2140( PLAYER'S MOVE)T1H )T2C) 3020;) PLAYER'S MOVE - GET COORDINATESF) 3250j)" X$"W" 1590: I$"W" 1590), E3%0 1560: 1610)6 3060)@ 1540)J I0 1630)T I8 1630: 1670)^ 3020)h "ILLEGAL- INVALID ROW NUMBER")r 2*| 1540* I0 1740#* 3020U* "ARE YOU FORFEITING YOUR TURN? (Y/N) ";X$j* X$"Y" 1540{* Z1 2140*Z1* 840* J1 8* C$(J)X$ 1810* J* 3020* "ILLEGAL-INVALID COLUMN LETTER"* 2: 1540+ CHECK IF BLANK%+ A(I,J)0 18600+ 3020K+& "SQUARE IS OCCUPIED"Z+0 2:1540y+: CHECK FOR LEGAL NEIGHBOR+D 2510+N F11 1920+X 3020+b "ILLEGAL MOVE- YOU ARE NOT NEXT TO ONE OF MY PIECES"+l 2: 1540,v CHECK IF LEGAL RUN,U1, 2710+, S10 19906, 3030e, "ILLEGAL MOVE- THAT DOESN'T FLANK A ROW"u, 2: 1540, EVERYTHING LEGAL, MOVE PLAYER,Z0, "THAT GIVES YOU ";S1;" OF MY PIECES", 2, F21 2,U1, 2710 -H1H1S11- C1C1S1"-N1N118-  PRINT OUT BOARDS-* TEST FOR END OF GAMEe-4 C10 2140x-> N164 2140-H 840-R END OF GAME-\-f "YOU HAVE ";H1;" PIECES AND I HAVE ";C1;" PIECES....";-p H1C1 2200-z H1C1 2220. "I WIN !!!". 22301. "IT'S A TIE !!!"<. 2400P. "YOU WON !!!"].C1C1H1o. C10 2260z.C1C1.C1(64C1)N1. C111 2390. C125 2370. C139 2350. C153 2330. "THAT WAS A PERFECT GAME..."/ 2400%/ "THAT WAS A WALKAWAY..."0/$ 2400\/. "THAT WAS A LITTLE BIT OF A FIGHT..."g/8 2400/B "THAT WAS A HOT GAME..."/L 2400/V "THAT WAS A SQUEAKER..."/` /j "DO YOU WANT TO PLAY ANOTHER GAME? (Y/N) ";X$0t X$"Y" 5800~ X$"N" 241050 "THANKS FOR THE GAME..."@0 2:F0 t0 SUBROUTINE TO TEST FOR PROPER NEIGHBORS0 ASSUMES:0 I,J LOCATES A BLANK POSITION0 YOU HOPE TO SEE THE ADJACENT T2 (=-T1)0 I11 11 J11 1%1 A(II1,JJ1)T2 2600.1 J171 I1S1 NO T2 FOUND *FAILURE*\1 F10b1 p1 SUCCESSy1( F1112 1< SUBROUTINE SCORE AND UPDATE1F ASSUMES:1P I,J IS A TENTATIVE PLACE FOR A PIECE T12Z WANT RUNS OF T2=-T1, TERMINATED BY A T1R2d IF U IS TRUE (1), MARK THOSE RUNS AS T12n RETURN SUM OF ALL RUNS (T2 ONLY) IN S12x MAIN PROGRAM CONTAINS:2 I4: 0,-1,-1,-1,0,1,1,12 J4: 1,1,0,-1,-1,-1,0,12 S103 K1 83 I5I4(K)3 J5J4(K)+3 I6II573 J6JJ5@3 S30Z3 A(I6,J6)T2 2990u3 LOOP THROUGH THE RUN3 S3S313 I6I6I53 J6J6J53 A(I6,J6)T1 28603 A(I6,J6)0 29903" 28003, S1S1S336 U1 2990 4@ UPDATE BOARD4J I6I4T J6J+4^ K10 S3;4h A(I6,J6)T1L4r F1 2960d4| X%6J61:Y%2I61j4 w4 I6I6I54 J6J6J54 K14 K4 U1 4 30704  1,18,79,24,14 "THINKING..."4 4 SUBROUTINE PRINT BOARD5 : 1,1,79,24,1 5  1,1,79,24X5 " A B C D E F G H"f5 I1 8t5 J1 85& " ";50 D$(A(I,J)1);" ";5: J5D " ";I5N 5X I5b 5l 5v 5 5 25 30605 30205 6 --INPUT MOVE (JW 09/09/79)'6 E3%1;6  1,18,79,24,1r6 "YOU HAVE ";H1;" PIECES AND I HAVE ";C1;" PIECES6 15)"IT'S YOUR MOVE ENTER 'W' TO FORFEIT YOUR MOVE"6 6 "ROW NUMBER ? ";6 I$: I$;" "; 7 I$"1" 3270: I$"8" 32707 I$"W" 1690)7 I(I$)B7 "COLUMN LETTER ? ";Q7* X$: X$u74 X$"A" 3270: X$"H" 32707> X$"W" 16907H E3%07R 7\