Home » Archimedes archive » Archimedes World » AW-1991-10.adf » October91 » !AWOct91/Goodies/PD/!Othello/OTHELLO

!AWOct91/Goodies/PD/!Othello/OTHELLO

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Archimedes World » AW-1991-10.adf » October91
Filename: !AWOct91/Goodies/PD/!Othello/OTHELLO
Read OK:
File size: 1342 bytes
Load address: 0000
Exec address: 0000
File contents
   10 REM>OTHELLO
   20 REM Written by P.L.Smith March 1990.
   25ON ERROR OSCLI("!DEFPAL"):QUIT
   30 MODE12
   40 OFF
   50 *POINTER
   60 PLAYER$="ME"
   70 TURN$="ARC"
   80 MOUSE TO 640,512
   90 SYS"Hourglass_On"
  100 *!PALETTE
  110 GCOL13:FILL500,500
  120 *SLOAD OTHSPRTS
  130 *SCREENLOAD BOARD
  140 PLAYER%=1:TURN%=2:think%=FALSE
  150 MOUSE RECTANGLE 260,49,756,785
  160 DIM BOARD%(8,8):DIM SKILL%(8,8):DIM counters%(2):DIM pass%(2):F%=0:G%=0
  170 SYS"Hourglass_Smash"
  180 squares%=60:counters%(2)=32:counters%(1)=32:PROCSETUP
  190 pass%(1)=FALSE:pass%(2)=FALSE
  200 PLAYER%=1:TURN%=2:moveok%=TRUE
  210 REPEAT
  220 pass%(PLAYER%)=FALSE
  230 IF counters%(PLAYER%)=0 AND counters%(TURN%)=0 THEN 390
  240 IF PLAYER$="ARC" THEN moveok%=TRUE:GOTO 350
  250 IF counters%(PLAYER%)=0 THEN moveok%=TRUE:SWAP PLAYER%,TURN%:SWAP PLAYER$,TURN$:GOTO 350
  260 REPEAT:MOUSE A%,B%,C%
  270 X%=1+((A%-254)/97)
  280 Y%=1+((B%-49)/98.25)
  290 UNTILC%=4AND POINT(A%,B%)=13 AND BOARD%(X%,Y%)=0 OR C%=1
  300 IF C%=1 THEN pass%(PLAYER%)=TRUE:SWAP PLAYER%,TURN%:SWAP PLAYER$,TURN$:moveok%=TRUE:REPEAT:MOUSE A%,B%,C%:UNTILC%=0:GOTO 350
  310 IF think%=FALSE PROCFLIP:squares%-=1
  320 moveok%=FALSE:PROCCHECK:IF moveok%=TRUE PROCREMOVE
  330 IF moveok%=FALSE PROCBADMOVE ELSE IF think%=FALSE  SWAP PLAYER%,TURN%:SWAP PLAYER$,TURN$
  340 REPEAT:MOUSE A%,B%,C%:UNTILC%=0
  350 IF moveok%=TRUE AND PLAYER$="ARC" AND squares%>0 THEN
  360  pass%(PLAYER%)=FALSE:PROCTHINK
  370  SWAP PLAYER%,TURN%:SWAP PLAYER$,TURN$
  380 ENDIF
  390 REM IF counters%(1)=0 OR counters%(2)=0 squares%=0
  400 UNTIL pass%(PLAYER%)=TRUE AND pass%(TURN%)=TRUE OR squares%=0
  410 PROCCLEAR
  420 GOTO 180
  430 END
  440 DEFPROCFLIP
  450 IF PLAYER%=1 THEN SP%=1:INCSP%=1 ELSE SP%=7:INCSP%=-1
  460 FORQ%=1TO7
  470 SYS"OS_CLI","SCHOOSE DISC"+CHR$(SP%+48)
  480 PLOT&ED,264+((X%-1)*96.25),52+((Y%-1)*100.5)
  490 FORE%=1TO1500:NEXT
  500 SP%=SP%+INCSP%
  510 NEXT
  520 IF think%=FALSE THEN BOARD%(X%,Y%)=PLAYER%
  530 ENDPROC
  540 DEFPROCSETUP
  550 PLAYER%=1:X%=4:Y%=4:PROCREMOVE:PROCFLIP
  560 PLAYER%=1:X%=5:Y%=5:PROCREMOVE:PROCFLIP
  570 PLAYER%=2:X%=5:Y%=4:PROCREMOVE:PROCFLIP
  580 PLAYER%=2:X%=4:Y%=5:PROCREMOVE:PROCFLIP
  590 RESTORE 1590:FORX%=1TO8:FORY%=1TO8:READ SKILL%(X%,Y%):NEXT:NEXT
  600 ENDPROC
  610 DEFPROCCHECK
  620 
  630 REM............. CHECK TO THE LEFT.............
  640 
  650 TTAL%=0
  660 IF X%=1 THEN 730
  670 H%=X%:V%=Y%:count%=0
  680 REPEAT
  690 H%-=1
  700 PROCCHECKITEM
  710 UNTIL H%=1 OR ownflag%=TRUE OR blankflag%=TRUE
  720 IF count%>0 AND ownflag%=TRUE PROCDOFLIPS(-1,0)
  730 
  740 REM............ CHECK TO THE RIGHT.............
  750 
  760 IF X%=8 THEN 820
  770 H%=X%:V%=Y%:count%=0:REPEAT:H%+=1:PROCCHECKITEM:UNTIL H%=8 ORownflag%=TRUE OR blankflag%=TRUE
  780 IF count%>0 AND ownflag%=TRUE PROCDOFLIPS(1,0)
  790 
  800 REM................ CHECK UP ................
  810 
  820 IF Y%=8 THEN 850
  830 H%=X%:V%=Y%:count%=0:REPEAT:V%+=1:PROCCHECKITEM:UNTIL V%=8 ORownflag%=TRUE OR blankflag%=TRUE
  840 IF count%>0 AND ownflag%=TRUE PROCDOFLIPS(0,1)
  850 
  860 REM.............. CHECK DOWN ..................
  870 
  880 IF Y%=1 THEN 940
  890 H%=X%:V%=Y%:count%=0:REPEAT:V%-=1:PROCCHECKITEM:UNTIL V%=1 ORownflag%=TRUE OR blankflag%=TRUE
  900 IF count%>0 AND ownflag%=TRUE PROCDOFLIPS(0,-1)
  910 
  920 REM........... CHECK UP AND RIGHT DIAGONAL .......
  930 
  940 IF Y%=8 OR X%=8 THEN 1000
  950 H%=X%:V%=Y%:count%=0:REPEAT:H%+=1:V%+=1:PROCCHECKITEM:UNTIL H%=8 OR V%=8 OR ownflag%=TRUE OR blankflag%=TRUE
  960 IF count%>0 AND ownflag%=TRUE PROCDOFLIPS(1,1)
  970 
  980 REM.......... CHECK DOWN AND RIGHT DIAGONAL ..........
  990 
 1000 IF Y%=1 OR X%=8 THEN 1060
 1010 H%=X%:V%=Y%:count%=0:REPEAT:H%+=1:V%-=1:PROCCHECKITEM:UNTIL H%=8 OR V%=1 OR ownflag%=TRUE OR blankflag%=TRUE
 1020 IF count%>0 AND ownflag%=TRUE PROCDOFLIPS(1,-1)
 1030 REM
 1040 REM .......... CHECK DOWN AND LEFT DIAGONAL ............
 1050 REM
 1060 IF Y%=1 OR X%=1 THEN 1120
 1070 H%=X%:V%=Y%:count%=0:REPEAT:H%-=1:V%-=1:PROCCHECKITEM:UNTIL H%=1 OR V%=1 OR ownflag%=TRUE OR blankflag%=TRUE
 1080 IF count%>0 AND ownflag%=TRUE PROCDOFLIPS(-1,-1)
 1090 REM
 1100 REM............ CHECK UP AND LEFT ............
 1110 REM
 1120 IF Y%=8 OR X%=1 THEN 1150
 1130 H%=X%:V%=Y%:count%=0:REPEAT:H%-=1:V%+=1:PROCCHECKITEM:UNTIL H%=1 OR V%=8 OR ownflag%=TRUE OR blankflag%=TRUE
 1140 IF count%>0 AND ownflag%=TRUE PROCDOFLIPS(-1,1)
 1150 ENDPROC
 1160 DEFPROCCHECKITEM
 1170 blankflag%=FALSE:ownflag%=FALSE
 1180 IF BOARD%(H%,V%)=0 THEN blankflag%=TRUE
 1190 IF BOARD%(H%,V%)=PLAYER% THEN ownflag%=TRUE
 1200 IF blankflag%=FALSE AND ownflag%=FALSE THEN count%+=1
 1210 ENDPROC
 1220 DEFPROCDOFLIPS(XINC%,YINC%)
 1230 TTAL%+=count%
 1240 H%=X%:V%=Y%:FORD%=1TOcount%
 1250 X%+=XINC%:Y%+=YINC%
 1260 IF think%=FALSE PROCFLIP
 1270 NEXT:X%=H%:Y%=V%
 1280 moveok%=TRUE:ENDPROC
 1290 DEFPROCBADMOVE:GCOL8,1:BOARD%(X%,Y%)=0:FORSP%=1TO7:SYS"OS_CLI","SCHOOSE WIPE"+CHR$(48+SP%):PLOT&ED,264+((X%-1)*96.25),52+((Y%-1)*100.5):FORD%=1TO2000:NEXT:NEXT:squares%+=1:ENDPROC
 1300 DEFPROCTHINK
 1310 moveok%=FALSE
 1320 IF counters%(PLAYER%)=0 THEN VDU7:GOTO 1460
 1330 think%=TRUE
 1340 TTAL%=0
 1350 BEST%=0
 1360 FORX%=1TO8:FORY%=1TO8
 1370 IF BOARD%(X%,Y%)=0 PROCCHECK
 1380 IF (TTAL%*SKILL%(X%,Y%))=BEST% AND RND(2)=1 THEN F%=X%:G%=Y%
 1390 IF (TTAL%*SKILL%(X%,Y%))>BEST% THEN BEST%=TTAL%*SKILL%(X%,Y%):F%=X%:G%=Y%
 1400 TTAL%=0
 1410 NEXT:NEXT
 1420 think%=FALSE
 1430 X%=F%:Y%=G%
 1440 IF moveok%=FALSE VDU7:GOTO 1460
 1450 squares%-=1:PROCFLIP:PROCREMOVE:PROCCHECK
 1460 
 1470 IF moveok%=FALSE pass%(PLAYER%)=TRUE:ENDPROC
 1480 ENDPROC
 1490 DEFPROCCLEAR:FORX%=1TO8:FORY%=1TO8:PROCBADMOVE:NEXT:NEXT
 1500 *SCHOOSE COUNTER
 1510 FORX%=1TO32:PLOT&ED,128,20*X%+94:NEXT
 1520 FORX%=1TO32:PLOT&ED,1066,20*X%+94:NEXT
 1530 ENDPROC
 1540 DEFPROCREMOVE
 1550 counters%(PLAYER%)-=1
 1560 IF PLAYER%=1 J%=126 ELSE J%=1064
 1570 GCOL13:RECTANGLEFILL J%,20*counters%(PLAYER%)+118,82,12
 1580 ENDPROC
 1590DATA500,1,20,10,10,20,1,500
 1600DATA1,1,20,5,5,20,1,1
 1610DATA20,20,20,5,5,20,20,20
 1620DATA10,5,5,1,1,5,5,10
 1630DATA10,5,5,1,1,5,5,10
 1640DATA20,20,20,5,5,20,20,20
 1650DATA1,1,20,5,5,20,1,1
 1660DATA500,1,20,10,10,20,1,500

 �>OTHELLO
' � Written by P.L.Smith March 1990.
� � �("!DEFPAL"):Ș
 �12
( �
2
 *POINTER
< PLAYER$="ME"
F TURN$="ARC"
P ȗ � 640,512
Z ș"Hourglass_On"
d *!PALETTE
n �13:Ȑ500,500
x *SLOAD OTHSPRTS
� *SCREENLOAD BOARD
� PLAYER%=1:TURN%=2:think%=�
� ȗ ȓ 260,49,756,785
�D � BOARD%(8,8):� SKILL%(8,8):� counters%(2):� pass%(2):F%=0:G%=0
� ș"Hourglass_Smash"
�7 squares%=60:counters%(2)=32:counters%(1)=32:�SETUP
� pass%(1)=�:pass%(2)=�
�  PLAYER%=1:TURN%=2:moveok%=�
� �
� pass%(PLAYER%)=�
�7 � counters%(PLAYER%)=0 � counters%(TURN%)=0 � �tFA
�' � PLAYER$="ARC" � moveok%=�:� �D^A
�P � counters%(PLAYER%)=0 � moveok%=�:Ȕ PLAYER%,TURN%:Ȕ PLAYER$,TURN$:� �D^A
 �:ȗ A%,B%,C%
 X%=1+((A%-254)/97)
 Y%=1+((B%-49)/98.25)
"/ �C%=4� �A%,B%)=13 � BOARD%(X%,Y%)=0 � C%=1
,e � C%=1 � pass%(PLAYER%)=�:Ȕ PLAYER%,TURN%:Ȕ PLAYER$,TURN$:moveok%=�:�:ȗ A%,B%,C%:�C%=0:� �D^A
6! � think%=� �FLIP:squares%-=1
@) moveok%=�:�CHECK:� moveok%=� �REMOVE
JI � moveok%=� �BADMOVE � � think%=�  Ȕ PLAYER%,TURN%:Ȕ PLAYER$,TURN$
T �:ȗ A%,B%,C%:�C%=0
^/ � moveok%=� � PLAYER$="ARC" � squares%>0 �
h  pass%(PLAYER%)=�:�THINK
r'  Ȕ PLAYER%,TURN%:Ȕ PLAYER$,TURN$
| �
�5 � IF counters%(1)=0 OR counters%(2)=0 squares%=0
�5 � pass%(PLAYER%)=� � pass%(TURN%)=� � squares%=0
� �CLEAR
� � �tt@
� �
� ��FLIP
�3 � PLAYER%=1 � SP%=1:INCSP%=1 � SP%=7:INCSP%=-1
� �Q%=1�7
�( ș"OS_CLI","SCHOOSE DISC"+�(SP%+48)
�. �&ED,264+((X%-1)*96.25),52+((Y%-1)*100.5)
� �E%=1�1500:�
� SP%=SP%+INCSP%
� �
' � think%=� � BOARD%(X%,Y%)=PLAYER%
 �
 ��SETUP
&& PLAYER%=1:X%=4:Y%=4:�REMOVE:�FLIP
0& PLAYER%=1:X%=5:Y%=5:�REMOVE:�FLIP
:& PLAYER%=2:X%=5:Y%=4:�REMOVE:�FLIP
D& PLAYER%=2:X%=4:Y%=5:�REMOVE:�FLIP
N/ � �TvF:�X%=1�8:�Y%=1�8:� SKILL%(X%,Y%):�:�
X �
b ��CHECK
l 
v2 �............. CHECK TO THE LEFT.............
� 
� TTAL%=0
� � X%=1 � �dZB
� H%=X%:V%=Y%:count%=0
� �
�
 H%-=1
� �CHECKITEM
�' � H%=1 � ownflag%=� � blankflag%=�
�+ � count%>0 � ownflag%=� �DOFLIPS(-1,0)
� 
�2 �............ CHECK TO THE RIGHT.............
� 
� � X%=8 � �TtC
N H%=X%:V%=Y%:count%=0:�:H%+=1:�CHECKITEM:� H%=8 �ownflag%=� � blankflag%=�
* � count%>0 � ownflag%=� �DOFLIPS(1,0)
 
 0 �................ CHECK UP ................
* 
4 � Y%=8 � �DRC
>N H%=X%:V%=Y%:count%=0:�:V%+=1:�CHECKITEM:� V%=8 �ownflag%=� � blankflag%=�
H* � count%>0 � ownflag%=� �DOFLIPS(0,1)
R 
\2 �.............. CHECK DOWN ..................
f 
p � Y%=1 � �tlC
zN H%=X%:V%=Y%:count%=0:�:V%-=1:�CHECKITEM:� V%=1 �ownflag%=� � blankflag%=�
�+ � count%>0 � ownflag%=� �DOFLIPS(0,-1)
� 
�5 �........... CHECK UP AND RIGHT DIAGONAL .......
� 
� � Y%=8 � X%=8 � �dhC
�\ H%=X%:V%=Y%:count%=0:�:H%+=1:V%+=1:�CHECKITEM:� H%=8 � V%=8 � ownflag%=� � blankflag%=�
�* � count%>0 � ownflag%=� �DOFLIPS(1,1)
� 
�9 �.......... CHECK DOWN AND RIGHT DIAGONAL ..........
� 
� � Y%=1 � X%=8 � �TdD
�\ H%=X%:V%=Y%:count%=0:�:H%+=1:V%-=1:�CHECKITEM:� H%=8 � V%=1 � ownflag%=� � blankflag%=�
�+ � count%>0 � ownflag%=� �DOFLIPS(1,-1)
 �
; � .......... CHECK DOWN AND LEFT DIAGONAL ............
 �
$ � Y%=1 � X%=1 � �D`D
.\ H%=X%:V%=Y%:count%=0:�:H%-=1:V%-=1:�CHECKITEM:� H%=1 � V%=1 � ownflag%=� � blankflag%=�
8, � count%>0 � ownflag%=� �DOFLIPS(-1,-1)
B �
L1 �............ CHECK UP AND LEFT ............
V �
` � Y%=8 � X%=1 � �D~D
j\ H%=X%:V%=Y%:count%=0:�:H%-=1:V%+=1:�CHECKITEM:� H%=1 � V%=8 � ownflag%=� � blankflag%=�
t+ � count%>0 � ownflag%=� �DOFLIPS(-1,1)
~ �
� ��CHECKITEM
� blankflag%=�:ownflag%=�
�% � BOARD%(H%,V%)=0 � blankflag%=�
�) � BOARD%(H%,V%)=PLAYER% � ownflag%=�
�, � blankflag%=� � ownflag%=� � count%+=1
� �
� ��DOFLIPS(XINC%,YINC%)
� TTAL%+=count%
� H%=X%:V%=Y%:�D%=1�count%
� X%+=XINC%:Y%+=YINC%
� � think%=� �FLIP
� �:X%=H%:Y%=V%
 moveok%=�:�

� ��BADMOVE:�8,1:BOARD%(X%,Y%)=0:�SP%=1�7:ș"OS_CLI","SCHOOSE WIPE"+�(48+SP%):�&ED,264+((X%-1)*96.25),52+((Y%-1)*100.5):�D%=1�2000:�:�:squares%+=1:�
 ��THINK
 moveok%=�
(' � counters%(PLAYER%)=0 � �7:� �ttE
2
 think%=�
< TTAL%=0
F BEST%=0
P �X%=1�8:�Y%=1�8
Z � BOARD%(X%,Y%)=0 �CHECK
d9 � (TTAL%*SKILL%(X%,Y%))=BEST% � �(2)=1 � F%=X%:G%=Y%
nJ � (TTAL%*SKILL%(X%,Y%))>BEST% � BEST%=TTAL%*SKILL%(X%,Y%):F%=X%:G%=Y%
x TTAL%=0
� �:�
�
 think%=�
� X%=F%:Y%=G%
� � moveok%=� �7:� �ttE
�% squares%-=1:�FLIP:�REMOVE:�CHECK
� 
�# � moveok%=� pass%(PLAYER%)=�:�
� �
�) ��CLEAR:�X%=1�8:�Y%=1�8:�BADMOVE:�:�
� *SCHOOSE COUNTER
�! �X%=1�32:�&ED,128,20*X%+94:�
�" �X%=1�32:�&ED,1066,20*X%+94:�
� �

 ��REMOVE
 counters%(PLAYER%)-=1
! � PLAYER%=1 J%=126 � J%=1064
"0 �13:ȓȐ J%,20*counters%(PLAYER%)+118,82,12
, �
6�500,1,20,10,10,20,1,500
@�1,1,20,5,5,20,1,1
J�20,20,20,5,5,20,20,20
T�10,5,5,1,1,5,5,10
^�10,5,5,1,1,5,5,10
h�20,20,20,5,5,20,20,20
r�1,1,20,5,5,20,1,1
|�500,1,20,10,10,20,1,500
�
00000000  0d 00 0a 0e 20 f4 3e 4f  54 48 45 4c 4c 4f 0d 00  |.... .>OTHELLO..|
00000010  14 27 20 f4 20 57 72 69  74 74 65 6e 20 62 79 20  |.' . Written by |
00000020  50 2e 4c 2e 53 6d 69 74  68 20 4d 61 72 63 68 20  |P.L.Smith March |
00000030  31 39 39 30 2e 0d 00 19  17 ee 20 85 20 ff 28 22  |1990...... . .("|
00000040  21 44 45 46 50 41 4c 22  29 3a c8 98 0d 00 1e 08  |!DEFPAL"):......|
00000050  20 eb 31 32 0d 00 28 06  20 87 0d 00 32 0d 20 2a  | .12..(. ...2. *|
00000060  50 4f 49 4e 54 45 52 0d  00 3c 11 20 50 4c 41 59  |POINTER..<. PLAY|
00000070  45 52 24 3d 22 4d 45 22  0d 00 46 10 20 54 55 52  |ER$="ME"..F. TUR|
00000080  4e 24 3d 22 41 52 43 22  0d 00 50 11 20 c8 97 20  |N$="ARC"..P. .. |
00000090  b8 20 36 34 30 2c 35 31  32 0d 00 5a 15 20 c8 99  |. 640,512..Z. ..|
000000a0  22 48 6f 75 72 67 6c 61  73 73 5f 4f 6e 22 0d 00  |"Hourglass_On"..|
000000b0  64 0e 20 2a 21 50 41 4c  45 54 54 45 0d 00 6e 12  |d. *!PALETTE..n.|
000000c0  20 e6 31 33 3a c8 90 35  30 30 2c 35 30 30 0d 00  | .13:..500,500..|
000000d0  78 14 20 2a 53 4c 4f 41  44 20 4f 54 48 53 50 52  |x. *SLOAD OTHSPR|
000000e0  54 53 0d 00 82 16 20 2a  53 43 52 45 45 4e 4c 4f  |TS.... *SCREENLO|
000000f0  41 44 20 42 4f 41 52 44  0d 00 8c 1f 20 50 4c 41  |AD BOARD.... PLA|
00000100  59 45 52 25 3d 31 3a 54  55 52 4e 25 3d 32 3a 74  |YER%=1:TURN%=2:t|
00000110  68 69 6e 6b 25 3d a3 0d  00 96 19 20 c8 97 20 c8  |hink%=..... .. .|
00000120  93 20 32 36 30 2c 34 39  2c 37 35 36 2c 37 38 35  |. 260,49,756,785|
00000130  0d 00 a0 44 20 de 20 42  4f 41 52 44 25 28 38 2c  |...D . BOARD%(8,|
00000140  38 29 3a de 20 53 4b 49  4c 4c 25 28 38 2c 38 29  |8):. SKILL%(8,8)|
00000150  3a de 20 63 6f 75 6e 74  65 72 73 25 28 32 29 3a  |:. counters%(2):|
00000160  de 20 70 61 73 73 25 28  32 29 3a 46 25 3d 30 3a  |. pass%(2):F%=0:|
00000170  47 25 3d 30 0d 00 aa 18  20 c8 99 22 48 6f 75 72  |G%=0.... .."Hour|
00000180  67 6c 61 73 73 5f 53 6d  61 73 68 22 0d 00 b4 37  |glass_Smash"...7|
00000190  20 73 71 75 61 72 65 73  25 3d 36 30 3a 63 6f 75  | squares%=60:cou|
000001a0  6e 74 65 72 73 25 28 32  29 3d 33 32 3a 63 6f 75  |nters%(2)=32:cou|
000001b0  6e 74 65 72 73 25 28 31  29 3d 33 32 3a f2 53 45  |nters%(1)=32:.SE|
000001c0  54 55 50 0d 00 be 1a 20  70 61 73 73 25 28 31 29  |TUP.... pass%(1)|
000001d0  3d a3 3a 70 61 73 73 25  28 32 29 3d a3 0d 00 c8  |=.:pass%(2)=....|
000001e0  20 20 50 4c 41 59 45 52  25 3d 31 3a 54 55 52 4e  |  PLAYER%=1:TURN|
000001f0  25 3d 32 3a 6d 6f 76 65  6f 6b 25 3d b9 0d 00 d2  |%=2:moveok%=....|
00000200  06 20 f5 0d 00 dc 15 20  70 61 73 73 25 28 50 4c  |. ..... pass%(PL|
00000210  41 59 45 52 25 29 3d a3  0d 00 e6 37 20 e7 20 63  |AYER%)=....7 . c|
00000220  6f 75 6e 74 65 72 73 25  28 50 4c 41 59 45 52 25  |ounters%(PLAYER%|
00000230  29 3d 30 20 80 20 63 6f  75 6e 74 65 72 73 25 28  |)=0 . counters%(|
00000240  54 55 52 4e 25 29 3d 30  20 8c 20 8d 74 46 41 0d  |TURN%)=0 . .tFA.|
00000250  00 f0 27 20 e7 20 50 4c  41 59 45 52 24 3d 22 41  |..' . PLAYER$="A|
00000260  52 43 22 20 8c 20 6d 6f  76 65 6f 6b 25 3d b9 3a  |RC" . moveok%=.:|
00000270  e5 20 8d 44 5e 41 0d 00  fa 50 20 e7 20 63 6f 75  |. .D^A...P . cou|
00000280  6e 74 65 72 73 25 28 50  4c 41 59 45 52 25 29 3d  |nters%(PLAYER%)=|
00000290  30 20 8c 20 6d 6f 76 65  6f 6b 25 3d b9 3a c8 94  |0 . moveok%=.:..|
000002a0  20 50 4c 41 59 45 52 25  2c 54 55 52 4e 25 3a c8  | PLAYER%,TURN%:.|
000002b0  94 20 50 4c 41 59 45 52  24 2c 54 55 52 4e 24 3a  |. PLAYER$,TURN$:|
000002c0  e5 20 8d 44 5e 41 0d 01  04 12 20 f5 3a c8 97 20  |. .D^A.... .:.. |
000002d0  41 25 2c 42 25 2c 43 25  0d 01 0e 17 20 58 25 3d  |A%,B%,C%.... X%=|
000002e0  31 2b 28 28 41 25 2d 32  35 34 29 2f 39 37 29 0d  |1+((A%-254)/97).|
000002f0  01 18 19 20 59 25 3d 31  2b 28 28 42 25 2d 34 39  |... Y%=1+((B%-49|
00000300  29 2f 39 38 2e 32 35 29  0d 01 22 2f 20 fd 43 25  |)/98.25).."/ .C%|
00000310  3d 34 80 20 b0 41 25 2c  42 25 29 3d 31 33 20 80  |=4. .A%,B%)=13 .|
00000320  20 42 4f 41 52 44 25 28  58 25 2c 59 25 29 3d 30  | BOARD%(X%,Y%)=0|
00000330  20 84 20 43 25 3d 31 0d  01 2c 65 20 e7 20 43 25  | . C%=1..,e . C%|
00000340  3d 31 20 8c 20 70 61 73  73 25 28 50 4c 41 59 45  |=1 . pass%(PLAYE|
00000350  52 25 29 3d b9 3a c8 94  20 50 4c 41 59 45 52 25  |R%)=.:.. PLAYER%|
00000360  2c 54 55 52 4e 25 3a c8  94 20 50 4c 41 59 45 52  |,TURN%:.. PLAYER|
00000370  24 2c 54 55 52 4e 24 3a  6d 6f 76 65 6f 6b 25 3d  |$,TURN$:moveok%=|
00000380  b9 3a f5 3a c8 97 20 41  25 2c 42 25 2c 43 25 3a  |.:.:.. A%,B%,C%:|
00000390  fd 43 25 3d 30 3a e5 20  8d 44 5e 41 0d 01 36 21  |.C%=0:. .D^A..6!|
000003a0  20 e7 20 74 68 69 6e 6b  25 3d a3 20 f2 46 4c 49  | . think%=. .FLI|
000003b0  50 3a 73 71 75 61 72 65  73 25 2d 3d 31 0d 01 40  |P:squares%-=1..@|
000003c0  29 20 6d 6f 76 65 6f 6b  25 3d a3 3a f2 43 48 45  |) moveok%=.:.CHE|
000003d0  43 4b 3a e7 20 6d 6f 76  65 6f 6b 25 3d b9 20 f2  |CK:. moveok%=. .|
000003e0  52 45 4d 4f 56 45 0d 01  4a 49 20 e7 20 6d 6f 76  |REMOVE..JI . mov|
000003f0  65 6f 6b 25 3d a3 20 f2  42 41 44 4d 4f 56 45 20  |eok%=. .BADMOVE |
00000400  8b 20 e7 20 74 68 69 6e  6b 25 3d a3 20 20 c8 94  |. . think%=.  ..|
00000410  20 50 4c 41 59 45 52 25  2c 54 55 52 4e 25 3a c8  | PLAYER%,TURN%:.|
00000420  94 20 50 4c 41 59 45 52  24 2c 54 55 52 4e 24 0d  |. PLAYER$,TURN$.|
00000430  01 54 18 20 f5 3a c8 97  20 41 25 2c 42 25 2c 43  |.T. .:.. A%,B%,C|
00000440  25 3a fd 43 25 3d 30 0d  01 5e 2f 20 e7 20 6d 6f  |%:.C%=0..^/ . mo|
00000450  76 65 6f 6b 25 3d b9 20  80 20 50 4c 41 59 45 52  |veok%=. . PLAYER|
00000460  24 3d 22 41 52 43 22 20  80 20 73 71 75 61 72 65  |$="ARC" . square|
00000470  73 25 3e 30 20 8c 0d 01  68 1d 20 20 70 61 73 73  |s%>0 ...h.  pass|
00000480  25 28 50 4c 41 59 45 52  25 29 3d a3 3a f2 54 48  |%(PLAYER%)=.:.TH|
00000490  49 4e 4b 0d 01 72 27 20  20 c8 94 20 50 4c 41 59  |INK..r'  .. PLAY|
000004a0  45 52 25 2c 54 55 52 4e  25 3a c8 94 20 50 4c 41  |ER%,TURN%:.. PLA|
000004b0  59 45 52 24 2c 54 55 52  4e 24 0d 01 7c 06 20 cd  |YER$,TURN$..|. .|
000004c0  0d 01 86 35 20 f4 20 49  46 20 63 6f 75 6e 74 65  |...5 . IF counte|
000004d0  72 73 25 28 31 29 3d 30  20 4f 52 20 63 6f 75 6e  |rs%(1)=0 OR coun|
000004e0  74 65 72 73 25 28 32 29  3d 30 20 73 71 75 61 72  |ters%(2)=0 squar|
000004f0  65 73 25 3d 30 0d 01 90  35 20 fd 20 70 61 73 73  |es%=0...5 . pass|
00000500  25 28 50 4c 41 59 45 52  25 29 3d b9 20 80 20 70  |%(PLAYER%)=. . p|
00000510  61 73 73 25 28 54 55 52  4e 25 29 3d b9 20 84 20  |ass%(TURN%)=. . |
00000520  73 71 75 61 72 65 73 25  3d 30 0d 01 9a 0b 20 f2  |squares%=0.... .|
00000530  43 4c 45 41 52 0d 01 a4  0b 20 e5 20 8d 74 74 40  |CLEAR.... . .tt@|
00000540  0d 01 ae 06 20 e0 0d 01  b8 0b 20 dd f2 46 4c 49  |.... ..... ..FLI|
00000550  50 0d 01 c2 33 20 e7 20  50 4c 41 59 45 52 25 3d  |P...3 . PLAYER%=|
00000560  31 20 8c 20 53 50 25 3d  31 3a 49 4e 43 53 50 25  |1 . SP%=1:INCSP%|
00000570  3d 31 20 8b 20 53 50 25  3d 37 3a 49 4e 43 53 50  |=1 . SP%=7:INCSP|
00000580  25 3d 2d 31 0d 01 cc 0c  20 e3 51 25 3d 31 b8 37  |%=-1.... .Q%=1.7|
00000590  0d 01 d6 28 20 c8 99 22  4f 53 5f 43 4c 49 22 2c  |...( .."OS_CLI",|
000005a0  22 53 43 48 4f 4f 53 45  20 44 49 53 43 22 2b bd  |"SCHOOSE DISC"+.|
000005b0  28 53 50 25 2b 34 38 29  0d 01 e0 2e 20 f0 26 45  |(SP%+48).... .&E|
000005c0  44 2c 32 36 34 2b 28 28  58 25 2d 31 29 2a 39 36  |D,264+((X%-1)*96|
000005d0  2e 32 35 29 2c 35 32 2b  28 28 59 25 2d 31 29 2a  |.25),52+((Y%-1)*|
000005e0  31 30 30 2e 35 29 0d 01  ea 11 20 e3 45 25 3d 31  |100.5).... .E%=1|
000005f0  b8 31 35 30 30 3a ed 0d  01 f4 13 20 53 50 25 3d  |.1500:..... SP%=|
00000600  53 50 25 2b 49 4e 43 53  50 25 0d 01 fe 06 20 ed  |SP%+INCSP%.... .|
00000610  0d 02 08 27 20 e7 20 74  68 69 6e 6b 25 3d a3 20  |...' . think%=. |
00000620  8c 20 42 4f 41 52 44 25  28 58 25 2c 59 25 29 3d  |. BOARD%(X%,Y%)=|
00000630  50 4c 41 59 45 52 25 0d  02 12 06 20 e1 0d 02 1c  |PLAYER%.... ....|
00000640  0c 20 dd f2 53 45 54 55  50 0d 02 26 26 20 50 4c  |. ..SETUP..&& PL|
00000650  41 59 45 52 25 3d 31 3a  58 25 3d 34 3a 59 25 3d  |AYER%=1:X%=4:Y%=|
00000660  34 3a f2 52 45 4d 4f 56  45 3a f2 46 4c 49 50 0d  |4:.REMOVE:.FLIP.|
00000670  02 30 26 20 50 4c 41 59  45 52 25 3d 31 3a 58 25  |.0& PLAYER%=1:X%|
00000680  3d 35 3a 59 25 3d 35 3a  f2 52 45 4d 4f 56 45 3a  |=5:Y%=5:.REMOVE:|
00000690  f2 46 4c 49 50 0d 02 3a  26 20 50 4c 41 59 45 52  |.FLIP..:& PLAYER|
000006a0  25 3d 32 3a 58 25 3d 35  3a 59 25 3d 34 3a f2 52  |%=2:X%=5:Y%=4:.R|
000006b0  45 4d 4f 56 45 3a f2 46  4c 49 50 0d 02 44 26 20  |EMOVE:.FLIP..D& |
000006c0  50 4c 41 59 45 52 25 3d  32 3a 58 25 3d 34 3a 59  |PLAYER%=2:X%=4:Y|
000006d0  25 3d 35 3a f2 52 45 4d  4f 56 45 3a f2 46 4c 49  |%=5:.REMOVE:.FLI|
000006e0  50 0d 02 4e 2f 20 f7 20  8d 54 76 46 3a e3 58 25  |P..N/ . .TvF:.X%|
000006f0  3d 31 b8 38 3a e3 59 25  3d 31 b8 38 3a f3 20 53  |=1.8:.Y%=1.8:. S|
00000700  4b 49 4c 4c 25 28 58 25  2c 59 25 29 3a ed 3a ed  |KILL%(X%,Y%):.:.|
00000710  0d 02 58 06 20 e1 0d 02  62 0c 20 dd f2 43 48 45  |..X. ...b. ..CHE|
00000720  43 4b 0d 02 6c 05 20 0d  02 76 32 20 f4 2e 2e 2e  |CK..l. ..v2 ....|
00000730  2e 2e 2e 2e 2e 2e 2e 2e  2e 2e 20 43 48 45 43 4b  |.......... CHECK|
00000740  20 54 4f 20 54 48 45 20  4c 45 46 54 2e 2e 2e 2e  | TO THE LEFT....|
00000750  2e 2e 2e 2e 2e 2e 2e 2e  2e 0d 02 80 05 20 0d 02  |............. ..|
00000760  8a 0c 20 54 54 41 4c 25  3d 30 0d 02 94 12 20 e7  |.. TTAL%=0.... .|
00000770  20 58 25 3d 31 20 8c 20  8d 64 5a 42 0d 02 9e 19  | X%=1 . .dZB....|
00000780  20 48 25 3d 58 25 3a 56  25 3d 59 25 3a 63 6f 75  | H%=X%:V%=Y%:cou|
00000790  6e 74 25 3d 30 0d 02 a8  06 20 f5 0d 02 b2 0a 20  |nt%=0.... ..... |
000007a0  48 25 2d 3d 31 0d 02 bc  0f 20 f2 43 48 45 43 4b  |H%-=1.... .CHECK|
000007b0  49 54 45 4d 0d 02 c6 27  20 fd 20 48 25 3d 31 20  |ITEM...' . H%=1 |
000007c0  84 20 6f 77 6e 66 6c 61  67 25 3d b9 20 84 20 62  |. ownflag%=. . b|
000007d0  6c 61 6e 6b 66 6c 61 67  25 3d b9 0d 02 d0 2b 20  |lankflag%=....+ |
000007e0  e7 20 63 6f 75 6e 74 25  3e 30 20 80 20 6f 77 6e  |. count%>0 . own|
000007f0  66 6c 61 67 25 3d b9 20  f2 44 4f 46 4c 49 50 53  |flag%=. .DOFLIPS|
00000800  28 2d 31 2c 30 29 0d 02  da 05 20 0d 02 e4 32 20  |(-1,0).... ...2 |
00000810  f4 2e 2e 2e 2e 2e 2e 2e  2e 2e 2e 2e 2e 20 43 48  |............. CH|
00000820  45 43 4b 20 54 4f 20 54  48 45 20 52 49 47 48 54  |ECK TO THE RIGHT|
00000830  2e 2e 2e 2e 2e 2e 2e 2e  2e 2e 2e 2e 2e 0d 02 ee  |................|
00000840  05 20 0d 02 f8 12 20 e7  20 58 25 3d 38 20 8c 20  |. .... . X%=8 . |
00000850  8d 54 74 43 0d 03 02 4e  20 48 25 3d 58 25 3a 56  |.TtC...N H%=X%:V|
00000860  25 3d 59 25 3a 63 6f 75  6e 74 25 3d 30 3a f5 3a  |%=Y%:count%=0:.:|
00000870  48 25 2b 3d 31 3a f2 43  48 45 43 4b 49 54 45 4d  |H%+=1:.CHECKITEM|
00000880  3a fd 20 48 25 3d 38 20  84 6f 77 6e 66 6c 61 67  |:. H%=8 .ownflag|
00000890  25 3d b9 20 84 20 62 6c  61 6e 6b 66 6c 61 67 25  |%=. . blankflag%|
000008a0  3d b9 0d 03 0c 2a 20 e7  20 63 6f 75 6e 74 25 3e  |=....* . count%>|
000008b0  30 20 80 20 6f 77 6e 66  6c 61 67 25 3d b9 20 f2  |0 . ownflag%=. .|
000008c0  44 4f 46 4c 49 50 53 28  31 2c 30 29 0d 03 16 05  |DOFLIPS(1,0)....|
000008d0  20 0d 03 20 30 20 f4 2e  2e 2e 2e 2e 2e 2e 2e 2e  | .. 0 ..........|
000008e0  2e 2e 2e 2e 2e 2e 2e 20  43 48 45 43 4b 20 55 50  |....... CHECK UP|
000008f0  20 2e 2e 2e 2e 2e 2e 2e  2e 2e 2e 2e 2e 2e 2e 2e  | ...............|
00000900  2e 0d 03 2a 05 20 0d 03  34 12 20 e7 20 59 25 3d  |...*. ..4. . Y%=|
00000910  38 20 8c 20 8d 44 52 43  0d 03 3e 4e 20 48 25 3d  |8 . .DRC..>N H%=|
00000920  58 25 3a 56 25 3d 59 25  3a 63 6f 75 6e 74 25 3d  |X%:V%=Y%:count%=|
00000930  30 3a f5 3a 56 25 2b 3d  31 3a f2 43 48 45 43 4b  |0:.:V%+=1:.CHECK|
00000940  49 54 45 4d 3a fd 20 56  25 3d 38 20 84 6f 77 6e  |ITEM:. V%=8 .own|
00000950  66 6c 61 67 25 3d b9 20  84 20 62 6c 61 6e 6b 66  |flag%=. . blankf|
00000960  6c 61 67 25 3d b9 0d 03  48 2a 20 e7 20 63 6f 75  |lag%=...H* . cou|
00000970  6e 74 25 3e 30 20 80 20  6f 77 6e 66 6c 61 67 25  |nt%>0 . ownflag%|
00000980  3d b9 20 f2 44 4f 46 4c  49 50 53 28 30 2c 31 29  |=. .DOFLIPS(0,1)|
00000990  0d 03 52 05 20 0d 03 5c  32 20 f4 2e 2e 2e 2e 2e  |..R. ..\2 ......|
000009a0  2e 2e 2e 2e 2e 2e 2e 2e  2e 20 43 48 45 43 4b 20  |......... CHECK |
000009b0  44 4f 57 4e 20 2e 2e 2e  2e 2e 2e 2e 2e 2e 2e 2e  |DOWN ...........|
000009c0  2e 2e 2e 2e 2e 2e 2e 0d  03 66 05 20 0d 03 70 12  |.........f. ..p.|
000009d0  20 e7 20 59 25 3d 31 20  8c 20 8d 74 6c 43 0d 03  | . Y%=1 . .tlC..|
000009e0  7a 4e 20 48 25 3d 58 25  3a 56 25 3d 59 25 3a 63  |zN H%=X%:V%=Y%:c|
000009f0  6f 75 6e 74 25 3d 30 3a  f5 3a 56 25 2d 3d 31 3a  |ount%=0:.:V%-=1:|
00000a00  f2 43 48 45 43 4b 49 54  45 4d 3a fd 20 56 25 3d  |.CHECKITEM:. V%=|
00000a10  31 20 84 6f 77 6e 66 6c  61 67 25 3d b9 20 84 20  |1 .ownflag%=. . |
00000a20  62 6c 61 6e 6b 66 6c 61  67 25 3d b9 0d 03 84 2b  |blankflag%=....+|
00000a30  20 e7 20 63 6f 75 6e 74  25 3e 30 20 80 20 6f 77  | . count%>0 . ow|
00000a40  6e 66 6c 61 67 25 3d b9  20 f2 44 4f 46 4c 49 50  |nflag%=. .DOFLIP|
00000a50  53 28 30 2c 2d 31 29 0d  03 8e 05 20 0d 03 98 35  |S(0,-1).... ...5|
00000a60  20 f4 2e 2e 2e 2e 2e 2e  2e 2e 2e 2e 2e 20 43 48  | ............ CH|
00000a70  45 43 4b 20 55 50 20 41  4e 44 20 52 49 47 48 54  |ECK UP AND RIGHT|
00000a80  20 44 49 41 47 4f 4e 41  4c 20 2e 2e 2e 2e 2e 2e  | DIAGONAL ......|
00000a90  2e 0d 03 a2 05 20 0d 03  ac 19 20 e7 20 59 25 3d  |..... .... . Y%=|
00000aa0  38 20 84 20 58 25 3d 38  20 8c 20 8d 64 68 43 0d  |8 . X%=8 . .dhC.|
00000ab0  03 b6 5c 20 48 25 3d 58  25 3a 56 25 3d 59 25 3a  |..\ H%=X%:V%=Y%:|
00000ac0  63 6f 75 6e 74 25 3d 30  3a f5 3a 48 25 2b 3d 31  |count%=0:.:H%+=1|
00000ad0  3a 56 25 2b 3d 31 3a f2  43 48 45 43 4b 49 54 45  |:V%+=1:.CHECKITE|
00000ae0  4d 3a fd 20 48 25 3d 38  20 84 20 56 25 3d 38 20  |M:. H%=8 . V%=8 |
00000af0  84 20 6f 77 6e 66 6c 61  67 25 3d b9 20 84 20 62  |. ownflag%=. . b|
00000b00  6c 61 6e 6b 66 6c 61 67  25 3d b9 0d 03 c0 2a 20  |lankflag%=....* |
00000b10  e7 20 63 6f 75 6e 74 25  3e 30 20 80 20 6f 77 6e  |. count%>0 . own|
00000b20  66 6c 61 67 25 3d b9 20  f2 44 4f 46 4c 49 50 53  |flag%=. .DOFLIPS|
00000b30  28 31 2c 31 29 0d 03 ca  05 20 0d 03 d4 39 20 f4  |(1,1).... ...9 .|
00000b40  2e 2e 2e 2e 2e 2e 2e 2e  2e 2e 20 43 48 45 43 4b  |.......... CHECK|
00000b50  20 44 4f 57 4e 20 41 4e  44 20 52 49 47 48 54 20  | DOWN AND RIGHT |
00000b60  44 49 41 47 4f 4e 41 4c  20 2e 2e 2e 2e 2e 2e 2e  |DIAGONAL .......|
00000b70  2e 2e 2e 0d 03 de 05 20  0d 03 e8 19 20 e7 20 59  |....... .... . Y|
00000b80  25 3d 31 20 84 20 58 25  3d 38 20 8c 20 8d 54 64  |%=1 . X%=8 . .Td|
00000b90  44 0d 03 f2 5c 20 48 25  3d 58 25 3a 56 25 3d 59  |D...\ H%=X%:V%=Y|
00000ba0  25 3a 63 6f 75 6e 74 25  3d 30 3a f5 3a 48 25 2b  |%:count%=0:.:H%+|
00000bb0  3d 31 3a 56 25 2d 3d 31  3a f2 43 48 45 43 4b 49  |=1:V%-=1:.CHECKI|
00000bc0  54 45 4d 3a fd 20 48 25  3d 38 20 84 20 56 25 3d  |TEM:. H%=8 . V%=|
00000bd0  31 20 84 20 6f 77 6e 66  6c 61 67 25 3d b9 20 84  |1 . ownflag%=. .|
00000be0  20 62 6c 61 6e 6b 66 6c  61 67 25 3d b9 0d 03 fc  | blankflag%=....|
00000bf0  2b 20 e7 20 63 6f 75 6e  74 25 3e 30 20 80 20 6f  |+ . count%>0 . o|
00000c00  77 6e 66 6c 61 67 25 3d  b9 20 f2 44 4f 46 4c 49  |wnflag%=. .DOFLI|
00000c10  50 53 28 31 2c 2d 31 29  0d 04 06 06 20 f4 0d 04  |PS(1,-1).... ...|
00000c20  10 3b 20 f4 20 2e 2e 2e  2e 2e 2e 2e 2e 2e 2e 20  |.; . .......... |
00000c30  43 48 45 43 4b 20 44 4f  57 4e 20 41 4e 44 20 4c  |CHECK DOWN AND L|
00000c40  45 46 54 20 44 49 41 47  4f 4e 41 4c 20 2e 2e 2e  |EFT DIAGONAL ...|
00000c50  2e 2e 2e 2e 2e 2e 2e 2e  2e 0d 04 1a 06 20 f4 0d  |............. ..|
00000c60  04 24 19 20 e7 20 59 25  3d 31 20 84 20 58 25 3d  |.$. . Y%=1 . X%=|
00000c70  31 20 8c 20 8d 44 60 44  0d 04 2e 5c 20 48 25 3d  |1 . .D`D...\ H%=|
00000c80  58 25 3a 56 25 3d 59 25  3a 63 6f 75 6e 74 25 3d  |X%:V%=Y%:count%=|
00000c90  30 3a f5 3a 48 25 2d 3d  31 3a 56 25 2d 3d 31 3a  |0:.:H%-=1:V%-=1:|
00000ca0  f2 43 48 45 43 4b 49 54  45 4d 3a fd 20 48 25 3d  |.CHECKITEM:. H%=|
00000cb0  31 20 84 20 56 25 3d 31  20 84 20 6f 77 6e 66 6c  |1 . V%=1 . ownfl|
00000cc0  61 67 25 3d b9 20 84 20  62 6c 61 6e 6b 66 6c 61  |ag%=. . blankfla|
00000cd0  67 25 3d b9 0d 04 38 2c  20 e7 20 63 6f 75 6e 74  |g%=...8, . count|
00000ce0  25 3e 30 20 80 20 6f 77  6e 66 6c 61 67 25 3d b9  |%>0 . ownflag%=.|
00000cf0  20 f2 44 4f 46 4c 49 50  53 28 2d 31 2c 2d 31 29  | .DOFLIPS(-1,-1)|
00000d00  0d 04 42 06 20 f4 0d 04  4c 31 20 f4 2e 2e 2e 2e  |..B. ...L1 .....|
00000d10  2e 2e 2e 2e 2e 2e 2e 2e  20 43 48 45 43 4b 20 55  |........ CHECK U|
00000d20  50 20 41 4e 44 20 4c 45  46 54 20 2e 2e 2e 2e 2e  |P AND LEFT .....|
00000d30  2e 2e 2e 2e 2e 2e 2e 0d  04 56 06 20 f4 0d 04 60  |.........V. ...`|
00000d40  19 20 e7 20 59 25 3d 38  20 84 20 58 25 3d 31 20  |. . Y%=8 . X%=1 |
00000d50  8c 20 8d 44 7e 44 0d 04  6a 5c 20 48 25 3d 58 25  |. .D~D..j\ H%=X%|
00000d60  3a 56 25 3d 59 25 3a 63  6f 75 6e 74 25 3d 30 3a  |:V%=Y%:count%=0:|
00000d70  f5 3a 48 25 2d 3d 31 3a  56 25 2b 3d 31 3a f2 43  |.:H%-=1:V%+=1:.C|
00000d80  48 45 43 4b 49 54 45 4d  3a fd 20 48 25 3d 31 20  |HECKITEM:. H%=1 |
00000d90  84 20 56 25 3d 38 20 84  20 6f 77 6e 66 6c 61 67  |. V%=8 . ownflag|
00000da0  25 3d b9 20 84 20 62 6c  61 6e 6b 66 6c 61 67 25  |%=. . blankflag%|
00000db0  3d b9 0d 04 74 2b 20 e7  20 63 6f 75 6e 74 25 3e  |=...t+ . count%>|
00000dc0  30 20 80 20 6f 77 6e 66  6c 61 67 25 3d b9 20 f2  |0 . ownflag%=. .|
00000dd0  44 4f 46 4c 49 50 53 28  2d 31 2c 31 29 0d 04 7e  |DOFLIPS(-1,1)..~|
00000de0  06 20 e1 0d 04 88 10 20  dd f2 43 48 45 43 4b 49  |. ..... ..CHECKI|
00000df0  54 45 4d 0d 04 92 1c 20  62 6c 61 6e 6b 66 6c 61  |TEM.... blankfla|
00000e00  67 25 3d a3 3a 6f 77 6e  66 6c 61 67 25 3d a3 0d  |g%=.:ownflag%=..|
00000e10  04 9c 25 20 e7 20 42 4f  41 52 44 25 28 48 25 2c  |..% . BOARD%(H%,|
00000e20  56 25 29 3d 30 20 8c 20  62 6c 61 6e 6b 66 6c 61  |V%)=0 . blankfla|
00000e30  67 25 3d b9 0d 04 a6 29  20 e7 20 42 4f 41 52 44  |g%=....) . BOARD|
00000e40  25 28 48 25 2c 56 25 29  3d 50 4c 41 59 45 52 25  |%(H%,V%)=PLAYER%|
00000e50  20 8c 20 6f 77 6e 66 6c  61 67 25 3d b9 0d 04 b0  | . ownflag%=....|
00000e60  2c 20 e7 20 62 6c 61 6e  6b 66 6c 61 67 25 3d a3  |, . blankflag%=.|
00000e70  20 80 20 6f 77 6e 66 6c  61 67 25 3d a3 20 8c 20  | . ownflag%=. . |
00000e80  63 6f 75 6e 74 25 2b 3d  31 0d 04 ba 06 20 e1 0d  |count%+=1.... ..|
00000e90  04 c4 1b 20 dd f2 44 4f  46 4c 49 50 53 28 58 49  |... ..DOFLIPS(XI|
00000ea0  4e 43 25 2c 59 49 4e 43  25 29 0d 04 ce 12 20 54  |NC%,YINC%).... T|
00000eb0  54 41 4c 25 2b 3d 63 6f  75 6e 74 25 0d 04 d8 1d  |TAL%+=count%....|
00000ec0  20 48 25 3d 58 25 3a 56  25 3d 59 25 3a e3 44 25  | H%=X%:V%=Y%:.D%|
00000ed0  3d 31 b8 63 6f 75 6e 74  25 0d 04 e2 18 20 58 25  |=1.count%.... X%|
00000ee0  2b 3d 58 49 4e 43 25 3a  59 25 2b 3d 59 49 4e 43  |+=XINC%:Y%+=YINC|
00000ef0  25 0d 04 ec 15 20 e7 20  74 68 69 6e 6b 25 3d a3  |%.... . think%=.|
00000f00  20 f2 46 4c 49 50 0d 04  f6 12 20 ed 3a 58 25 3d  | .FLIP.... .:X%=|
00000f10  48 25 3a 59 25 3d 56 25  0d 05 00 10 20 6d 6f 76  |H%:Y%=V%.... mov|
00000f20  65 6f 6b 25 3d b9 3a e1  0d 05 0a 97 20 dd f2 42  |eok%=.:..... ..B|
00000f30  41 44 4d 4f 56 45 3a e6  38 2c 31 3a 42 4f 41 52  |ADMOVE:.8,1:BOAR|
00000f40  44 25 28 58 25 2c 59 25  29 3d 30 3a e3 53 50 25  |D%(X%,Y%)=0:.SP%|
00000f50  3d 31 b8 37 3a c8 99 22  4f 53 5f 43 4c 49 22 2c  |=1.7:.."OS_CLI",|
00000f60  22 53 43 48 4f 4f 53 45  20 57 49 50 45 22 2b bd  |"SCHOOSE WIPE"+.|
00000f70  28 34 38 2b 53 50 25 29  3a f0 26 45 44 2c 32 36  |(48+SP%):.&ED,26|
00000f80  34 2b 28 28 58 25 2d 31  29 2a 39 36 2e 32 35 29  |4+((X%-1)*96.25)|
00000f90  2c 35 32 2b 28 28 59 25  2d 31 29 2a 31 30 30 2e  |,52+((Y%-1)*100.|
00000fa0  35 29 3a e3 44 25 3d 31  b8 32 30 30 30 3a ed 3a  |5):.D%=1.2000:.:|
00000fb0  ed 3a 73 71 75 61 72 65  73 25 2b 3d 31 3a e1 0d  |.:squares%+=1:..|
00000fc0  05 14 0c 20 dd f2 54 48  49 4e 4b 0d 05 1e 0e 20  |... ..THINK.... |
00000fd0  6d 6f 76 65 6f 6b 25 3d  a3 0d 05 28 27 20 e7 20  |moveok%=...(' . |
00000fe0  63 6f 75 6e 74 65 72 73  25 28 50 4c 41 59 45 52  |counters%(PLAYER|
00000ff0  25 29 3d 30 20 8c 20 ef  37 3a e5 20 8d 74 74 45  |%)=0 . .7:. .ttE|
00001000  0d 05 32 0d 20 74 68 69  6e 6b 25 3d b9 0d 05 3c  |..2. think%=...<|
00001010  0c 20 54 54 41 4c 25 3d  30 0d 05 46 0c 20 42 45  |. TTAL%=0..F. BE|
00001020  53 54 25 3d 30 0d 05 50  14 20 e3 58 25 3d 31 b8  |ST%=0..P. .X%=1.|
00001030  38 3a e3 59 25 3d 31 b8  38 0d 05 5a 1d 20 e7 20  |8:.Y%=1.8..Z. . |
00001040  42 4f 41 52 44 25 28 58  25 2c 59 25 29 3d 30 20  |BOARD%(X%,Y%)=0 |
00001050  f2 43 48 45 43 4b 0d 05  64 39 20 e7 20 28 54 54  |.CHECK..d9 . (TT|
00001060  41 4c 25 2a 53 4b 49 4c  4c 25 28 58 25 2c 59 25  |AL%*SKILL%(X%,Y%|
00001070  29 29 3d 42 45 53 54 25  20 80 20 b3 28 32 29 3d  |))=BEST% . .(2)=|
00001080  31 20 8c 20 46 25 3d 58  25 3a 47 25 3d 59 25 0d  |1 . F%=X%:G%=Y%.|
00001090  05 6e 4a 20 e7 20 28 54  54 41 4c 25 2a 53 4b 49  |.nJ . (TTAL%*SKI|
000010a0  4c 4c 25 28 58 25 2c 59  25 29 29 3e 42 45 53 54  |LL%(X%,Y%))>BEST|
000010b0  25 20 8c 20 42 45 53 54  25 3d 54 54 41 4c 25 2a  |% . BEST%=TTAL%*|
000010c0  53 4b 49 4c 4c 25 28 58  25 2c 59 25 29 3a 46 25  |SKILL%(X%,Y%):F%|
000010d0  3d 58 25 3a 47 25 3d 59  25 0d 05 78 0c 20 54 54  |=X%:G%=Y%..x. TT|
000010e0  41 4c 25 3d 30 0d 05 82  08 20 ed 3a ed 0d 05 8c  |AL%=0.... .:....|
000010f0  0d 20 74 68 69 6e 6b 25  3d a3 0d 05 96 10 20 58  |. think%=..... X|
00001100  25 3d 46 25 3a 59 25 3d  47 25 0d 05 a0 1a 20 e7  |%=F%:Y%=G%.... .|
00001110  20 6d 6f 76 65 6f 6b 25  3d a3 20 ef 37 3a e5 20  | moveok%=. .7:. |
00001120  8d 74 74 45 0d 05 aa 25  20 73 71 75 61 72 65 73  |.ttE...% squares|
00001130  25 2d 3d 31 3a f2 46 4c  49 50 3a f2 52 45 4d 4f  |%-=1:.FLIP:.REMO|
00001140  56 45 3a f2 43 48 45 43  4b 0d 05 b4 05 20 0d 05  |VE:.CHECK.... ..|
00001150  be 23 20 e7 20 6d 6f 76  65 6f 6b 25 3d a3 20 70  |.# . moveok%=. p|
00001160  61 73 73 25 28 50 4c 41  59 45 52 25 29 3d b9 3a  |ass%(PLAYER%)=.:|
00001170  e1 0d 05 c8 06 20 e1 0d  05 d2 29 20 dd f2 43 4c  |..... ....) ..CL|
00001180  45 41 52 3a e3 58 25 3d  31 b8 38 3a e3 59 25 3d  |EAR:.X%=1.8:.Y%=|
00001190  31 b8 38 3a f2 42 41 44  4d 4f 56 45 3a ed 3a ed  |1.8:.BADMOVE:.:.|
000011a0  0d 05 dc 15 20 2a 53 43  48 4f 4f 53 45 20 43 4f  |.... *SCHOOSE CO|
000011b0  55 4e 54 45 52 0d 05 e6  21 20 e3 58 25 3d 31 b8  |UNTER...! .X%=1.|
000011c0  33 32 3a f0 26 45 44 2c  31 32 38 2c 32 30 2a 58  |32:.&ED,128,20*X|
000011d0  25 2b 39 34 3a ed 0d 05  f0 22 20 e3 58 25 3d 31  |%+94:...." .X%=1|
000011e0  b8 33 32 3a f0 26 45 44  2c 31 30 36 36 2c 32 30  |.32:.&ED,1066,20|
000011f0  2a 58 25 2b 39 34 3a ed  0d 05 fa 06 20 e1 0d 06  |*X%+94:..... ...|
00001200  04 0d 20 dd f2 52 45 4d  4f 56 45 0d 06 0e 1a 20  |.. ..REMOVE.... |
00001210  63 6f 75 6e 74 65 72 73  25 28 50 4c 41 59 45 52  |counters%(PLAYER|
00001220  25 29 2d 3d 31 0d 06 18  21 20 e7 20 50 4c 41 59  |%)-=1...! . PLAY|
00001230  45 52 25 3d 31 20 4a 25  3d 31 32 36 20 8b 20 4a  |ER%=1 J%=126 . J|
00001240  25 3d 31 30 36 34 0d 06  22 30 20 e6 31 33 3a c8  |%=1064.."0 .13:.|
00001250  93 c8 90 20 4a 25 2c 32  30 2a 63 6f 75 6e 74 65  |... J%,20*counte|
00001260  72 73 25 28 50 4c 41 59  45 52 25 29 2b 31 31 38  |rs%(PLAYER%)+118|
00001270  2c 38 32 2c 31 32 0d 06  2c 06 20 e1 0d 06 36 1c  |,82,12..,. ...6.|
00001280  dc 35 30 30 2c 31 2c 32  30 2c 31 30 2c 31 30 2c  |.500,1,20,10,10,|
00001290  32 30 2c 31 2c 35 30 30  0d 06 40 16 dc 31 2c 31  |20,1,500..@..1,1|
000012a0  2c 32 30 2c 35 2c 35 2c  32 30 2c 31 2c 31 0d 06  |,20,5,5,20,1,1..|
000012b0  4a 1a dc 32 30 2c 32 30  2c 32 30 2c 35 2c 35 2c  |J..20,20,20,5,5,|
000012c0  32 30 2c 32 30 2c 32 30  0d 06 54 16 dc 31 30 2c  |20,20,20..T..10,|
000012d0  35 2c 35 2c 31 2c 31 2c  35 2c 35 2c 31 30 0d 06  |5,5,1,1,5,5,10..|
000012e0  5e 16 dc 31 30 2c 35 2c  35 2c 31 2c 31 2c 35 2c  |^..10,5,5,1,1,5,|
000012f0  35 2c 31 30 0d 06 68 1a  dc 32 30 2c 32 30 2c 32  |5,10..h..20,20,2|
00001300  30 2c 35 2c 35 2c 32 30  2c 32 30 2c 32 30 0d 06  |0,5,5,20,20,20..|
00001310  72 16 dc 31 2c 31 2c 32  30 2c 35 2c 35 2c 32 30  |r..1,1,20,5,5,20|
00001320  2c 31 2c 31 0d 06 7c 1c  dc 35 30 30 2c 31 2c 32  |,1,1..|..500,1,2|
00001330  30 2c 31 30 2c 31 30 2c  32 30 2c 31 2c 35 30 30  |0,10,10,20,1,500|
00001340  0d ff                                             |..|
00001342