Home » Archimedes archive » Archimedes World » AW-1994-04-Disc1.adf » Disk1Apr94 » !AWApr94/Goodies/Hex/!Hex/Library/Lib11_13

!AWApr94/Goodies/Hex/!Hex/Library/Lib11_13

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-1994-04-Disc1.adf » Disk1Apr94
Filename: !AWApr94/Goodies/Hex/!Hex/Library/Lib11_13
Read OK:
File size: 41BF bytes
Load address: 0000
Exec address: 0000
File contents
   10REM HEX library: Lib11_13: Section 11 and 13.
   40DEFPROCdummy:ENDPROC
  190DEFPROCwin_check
  220IF move% > 20 THEN
  240IF player% = 1 THEN
  250PROCtranslate_red_moves   
  260ELSE
  270PROCtranslate_blue_moves  
  280ENDIF
  300full_check% = FALSE
  310PROCquick_check             
  330IF full_check% THEN
  340PROCinitial_array_data    
  350PROCchain_hexes           
  360ENDIF
  380ENDIF
  400ENDPROC
  470DEFPROCquick_check
  520LOCAL col%, row%, count%
  540col%   = 0
  550row%   = 0
  560count% = 0
  580REPEAT
  600IF check_win%(col%,row%,1) THEN
  610col% += 1
  620row% = 0
  630count% += 1
  640ELSE
  650row% += 1
  660ENDIF
  680UNTIL count% = 11 OR row% = 11
  700IF count% = 11 THENfull_check% = TRUE
  720ENDPROC
  790DEFPROCinitial_array_data
  810LOCAL X%, Y%
  830FOR X% = 0 TO 10
  840FOR Y% = 0 TO 10
  860check_win%(X%,Y%,0) = 63
  880IF X% =  0 THENcheck_win%(X%,Y%,0) = 39
  900IF X% = 10 THENcheck_win%(X%,Y%,0) = 60
  920IF Y% = 0 THEN
  930check_win%(X%,Y%,0) = 57
  940IF X% =  0 THENcheck_win%(X%,Y%,0) = 33
  950IF X% = 10 THENcheck_win%(X%,Y%,0) = 56
  960ENDIF
  980IF Y% = 10 THEN
  990check_win%(X%,Y%,0) = 15
 1000IF X% =  0 THENcheck_win%(X%,Y%,0) =  7
 1010IF X% = 10 THENcheck_win%(X%,Y%,0) = 12
 1020ENDIF
 1040NEXT Y%
 1050NEXT X%
 1070ENDPROC
 1140DEFPROCtranslate_red_moves 
 1160LOCAL X%,Y%
 1180FOR X% = 0 TO 10
 1190FOR Y% = 0 TO 10
 1210IF board_status%(X%,Y%) = 1 THEN
 1220check_win%(X%,Y%,1) = TRUE
 1230ELSE
 1240check_win%(X%,Y%,1) = FALSE
 1250ENDIF
 1270NEXT Y%
 1280NEXT X%
 1300ENDPROC
 1370DEFPROCtranslate_blue_moves 
 1390LOCAL X%,Y%
 1410FOR X% = 0 TO 10
 1420FOR Y% = 0 TO 10
 1440IF board_status%(X%,Y%) = 2 THEN
 1450check_win%(Y%,X%,1) = TRUE
 1460ELSE
 1470check_win%(Y%,X%,1) = FALSE
 1480ENDIF
 1500NEXT Y%
 1510NEXT X%
 1530ENDPROC
 1600DEFPROCchain_hexes
 1620col%       = 0
 1630entry%     = 4
 1640count%     = 0 
 1670winning_moves%() = -1
 1690row% = -1
 1700REPEAT row% += 1
 1710REPEAT
 1730IF check_win%(col%, row%, 1) THEN
 1740PROCstore_winning_move
 1750look%  = (entry% MOD 6) + 1
 1770REPEAT
 1780PROCcase 
 1790look%  = (look% MOD 6) + 1
 1800IF col% = 10 THENwin% = TRUE :winner% = player% :VDU 7
 1810UNTIL win% OR check_win%(col%,row%,0) = 0
 1830ENDIF
 1840UNTIL win% OR check_win%(col%,row%,0)= 0 OR check_win%(col%,row%,1) = 0
 1850UNTIL win% OR row% = 10
 1870ENDPROC
 1940DEFPROCcase
 1960CASE look% OF
 1980WHEN 1 
 1990IF(check_win%(col%,row%,0)AND1)THEN
 2000check_win%(col%,row%,0)=check_win%(col%,row%,0)EOR1
 2010IF(check_win%((col%+1),row%,1)) THEN
 2020col%+=1:entry%=4:look%=4
 2030PROCstore_winning_move 
 2040ENDIF
 2050ENDIF
 2070WHEN 2 
 2080IF(check_win%(col%,row%,0)AND2)THEN
 2090check_win%(col%,row%,0)=check_win%(col%,row%,0)EOR2
 2100IF(check_win%((col%+1),(row%-1),1))THEN
 2110col%+=1:row%-=1:entry%=5:look%=5
 2120PROCstore_winning_move 
 2130ENDIF
 2140ENDIF
 2160WHEN 3 
 2170IF(check_win%(col%,row%,0)AND4)THEN
 2180check_win%(col%,row%,0)=check_win%(col%,row%,0)EOR4
 2190IF(check_win%(col%,(row%-1),1))THEN
 2200row%-=1:entry%=6:look%=6
 2210PROCstore_winning_move 
 2220ENDIF
 2230ENDIF
 2250WHEN 4 
 2260IF(check_win%(col%, row%,0)AND8)THEN
 2270check_win%(col%,row%,0)=check_win%(col%,row%,0)EOR8
 2280IF(check_win%((col%-1),row%,1))THEN
 2290col%-=1:entry%=1:look%=1
 2300PROCstore_winning_move 
 2310ENDIF
 2320ENDIF
 2340WHEN 5 
 2350IF(check_win%(col%,row%,0)AND16)THEN
 2360check_win%(col%,row%,0)=check_win%(col%,row%,0)EOR16
 2370IF(check_win%((col%-1),(row%+1),1))THEN
 2380col%-=1:row%+=1:entry%=2:look%=2
 2390PROCstore_winning_move 
 2400ENDIF
 2410ENDIF
 2430WHEN 6 
 2440IF(check_win%(col%,row%,0)AND32)THEN
 2450check_win%(col%,row%,0)=check_win%(col%,row%,0)EOR32
 2460IF(check_win%(col%,(row%+1),1))THEN
 2470row%+=1:entry%=3:look%=3
 2480PROCstore_winning_move 
 2490ENDIF
 2500ENDIF
 2520ENDCASE
 2530ENDPROC
 2600DEFPROCstore_winning_move
 2620count% = count% + 1
 2630winning_moves%(count%,0) = col%
 2640winning_moves%(count%,1) = row%
 2660ENDPROC
 2740DEFPROCannounce_winner
 2760IF NOT resign% THENPROCshow_winning_moves
 2790PROCshow_winner_on_board
 2810IF winner% = 1 THEN
 2820red_wins% += 1
 2830ELSE
 2840blue_wins% += 1
 2850ENDIF
 2870PROCupdate_scores 
 2890win%         = FALSE
 2900during_game% = FALSE
 2920ENDPROC
 2990DEFPROCshow_winning_moves
 3010PROCfind_start_end 
 3030y% = start%
 3050PROCdisplay_win_move_on_board(start%) 
 3070REPEAT
 3090start% = end%
 3100PROCdisplay_win_move_on_board(start%) 
 3110start% = y%
 3130WHILE NOT FNadjacent(start%, end%) 
 3140start% += 1
 3150ENDWHILE
 3170end% = start%
 3180UNTIL y% = start%
 3200ENDPROC
 3270DEFPROCfind_start_end
 3300count% = 121
 3310REPEAT
 3330count% = count% - 1
 3350IF winning_moves%(count%,0) = 10 THENend%   = count%
 3360IF winning_moves%(count%,0) =  0 THENstart% = count%
 3380UNTIL winning_moves%(count%,0) =  0 OR count% = 0
 3400ENDPROC
 3470DEFPROCdisplay_win_move_on_board(start%)
 3490IF winner% = 1 THEN
 3500col% = winning_moves%(start%,0)
 3510row% = winning_moves%(start%,1)
 3520ELSE
 3530col% = winning_moves%(start%,1)
 3540row% = winning_moves%(start%,0)
 3550ENDIF
 3570window_y% = -((10-row%)*52)-105
 3580window_x% = (col%*72)+(row%*36)+10
 3600PROCdelete_icon(hex_window%,hex%(col%,row%))
 3620IF winner% = 1 THEN
 3630hex%(col%,row%)=FNadd_icon("sprite","win_red",hex_window%,window_x%,window_y%,0,sprites%,0)
 3640ELSE
 3650hex%(col%,row%)=FNadd_icon("sprite","win_blue",hex_window%,window_x%,window_y%,0,sprites%,0)
 3660ENDIF
 3680ENDPROC
 3750DEFFNadjacent(start%, end%)
 3770LOCAL col_start%, row_start%, col_end%, row_end%
 3790col_start% = winning_moves%(start%,0)
 3800row_start% = winning_moves%(start%,1)
 3810col_end%   = winning_moves%(end%,0)
 3820row_end%   = winning_moves%(end%,1)
 3840IF col_start%-1 = col_end% AND row_start%+1 = row_end% THEN= TRUE
 3850IF col_start%   = col_end% AND row_start%+1 = row_end% THEN= TRUE
 3860IF col_start%+1 = col_end% AND row_start%   = row_end% THEN= TRUE
 3870IF col_start%+1 = col_end% AND row_start%-1 = row_end% THEN= TRUE
 3880IF col_start%   = col_end% AND row_start%-1 = row_end% THEN= TRUE
 3890IF col_start%-1 = col_end% AND row_start%   = row_end% THEN= TRUE
 3910= FALSE
 3980DEFPROCshow_winner_on_board
 4010IF winner% = 1 THEN
 4020PROCput_icon_text(hex_window%,report_red%, " WINNER ")
 4030IF resign% THEN
 4040PROCput_icon_text(hex_window%,report_blue%,"Resigns")
 4050ELSE
 4060PROCput_icon_text(hex_window%,report_blue%,"")
 4070ENDIF
 4100PROCicon_bg_colour(hex_window%,report_red%,red%)
 4110PROCicon_bg_colour(hex_window%,report_blue%,white%)
 4130ELSE
 4140PROCput_icon_text(hex_window%,report_blue%," WINNER ")
 4160IF resign% THEN
 4170PROCput_icon_text(hex_window%,report_red%, "Resigns")
 4180ELSE
 4190PROCput_icon_text(hex_window%,report_red%, "")
 4200ENDIF
 4230PROCicon_bg_colour(hex_window%,report_red%,white%)
 4240PROCicon_bg_colour(hex_window%,report_blue%,blue%)
 4260ENDIF
 4280ENDPROC
 4430DEFPROCcomputer_move
 4450IF comp_count% = 0 OR level% = 1 THENPROCcopy_array 
 4470IF level% = 1 THENcalcs_done% = TRUE
 4490IF NOT calcs_done% THEN
 4510PROCscore_possible_moves               
 4530ELSE
 4550PROCbest_move                          
 4570PROCmark_move_on_board                 
 4600player% = player% EOR 3
 4620PROCset_hex_window_icons               
 4630PROCset_menu_shades                    
 4650calcs_done% = FALSE
 4660comp_count% = 0
 4680ENDIF
 4700ENDPROC
 4770DEFPROCcopy_array
 4860LOCAL X%,Y%
 4880computer%() = 0
 4910IF player% = 1 THEN
 4930FOR X% = 0 TO 10
 4940FOR Y% = 0 TO 10
 4950computer%(X%,Y%,1) =  board_status%(X%,Y%)
 4960NEXT Y%
 4970NEXT X%
 4990ELSE
 5010FOR X% = 0 TO 10
 5020FOR Y% = 0 TO 10
 5050IF board_status%(X%,Y%) THENcomputer%(Y%,X%,1) = board_status%(X%,Y%) EOR 3
 5060NEXT Y%
 5070NEXT X%
 5090ENDIF
 5110ENDPROC
 5180DEFPROCbest_move
 5240LOCAL highest%, count%, X%, Y%, use_this_highest%, temp%
 5260highest%  = -1
 5270count%    = 0
 5280col% = 0
 5290row% = 0
 5310FOR Y% = 0 TO 10
 5320FOR X% = 0 TO 10
 5330IF computer%(X%,Y%,1) = 0 THEN
 5340IF computer%(X%,Y%,0) >= highest% THEN
 5350count% += 1
 5360IF computer%(X%,Y%,0) > highest% THEN
 5370highest%  = computer%(X%,Y%,0)
 5380col%   = X%
 5390row%   = Y%
 5400count% = 1
 5410ENDIF
 5420ENDIF
 5430ENDIF
 5440NEXT X%
 5450NEXT Y%
 5480IF count% > 1 THEN
 5490use_this_highest% = RND(count%)
 5500count% = 0
 5510Y% = -1
 5520REPEAT Y% += 1
 5530X% = -1
 5540REPEAT X% += 1
 5550IF computer%(X%,Y%,1) = 0 AND computer%(X%,Y%,0) = highest% THEN
 5560count% += 1
 5570ENDIF
 5580UNTIL X% = 10 OR count% = use_this_highest%
 5590UNTIL count% = use_this_highest%
 5600col%   = X%
 5610row%   = Y%
 5620ENDIF
 5640IF player% = 2 THEN
 5650temp% = col%
 5660col%  = row%
 5670row%  = temp%
 5680ENDIF
 5700ENDPROC
 5770DEFFNa(player%):IF computer%(col%-2,row%+2,1) = player% = TRUE
 5780= FALSE
 5810DEFFNb(player%):IF computer%(col%-1,row%+2,1) = player% = TRUE
 5820= FALSE
 5850DEFFNc(player%):IF computer%(col%,row%+2,1) = player% = TRUE
 5860= FALSE
 5890DEFFNd(player%):IF computer%(col%+1,row%+2,1) = player% = TRUE
 5900= FALSE
 5930DEFFNe(player%):IF computer%(col%+2,row%+2,1) = player% = TRUE
 5940= FALSE
 5970DEFFNf(player%):IF computer%(col%-2,row%+1,1) = player% = TRUE
 5980= FALSE
 6010DEFFNg(player%):IF computer%(col%-1,row%+1,1) = player% = TRUE
 6020= FALSE
 6050DEFFNh(player%):IF computer%(col%,row%+1,1) = player% = TRUE
 6060= FALSE
 6090DEFFNi(player%):IF computer%(col%+1,row%+1,1) = player% = TRUE
 6100= FALSE
 6130DEFFNj(player%):IF computer%(col%+2,row%+1,1) = player% = TRUE
 6140= FALSE
 6170DEFFNk(player%):IF computer%(col%-2,row%,1) = player% = TRUE
 6180= FALSE
 6210DEFFNl(player%):IF computer%(col%-1,row%,1) = player% = TRUE
 6220= FALSE
 6250DEFFNm(player%):IF computer%(col%+1,row%,1) = player% = TRUE
 6260= FALSE
 6290DEFFNn(player%):IF computer%(col%+2,row%,1) = player% = TRUE
 6300= FALSE
 6330DEFFNo(player%):IF computer%(col%-2,row%-1,1) = player% = TRUE
 6340= FALSE
 6370DEFFNp(player%):IF computer%(col%-1,row%-1,1) = player% = TRUE
 6380= FALSE
 6410DEFFNq(player%):IF computer%(col%,row%-1,1) = player% = TRUE
 6420= FALSE
 6450DEFFNr(player%):IF computer%(col%+1,row%-1,1) = player% = TRUE
 6460= FALSE
 6490DEFFNs(player%):IF computer%(col%+2,row%-1,1) = player% = TRUE
 6500= FALSE
 6530DEFFNt(player%):IF computer%(col%-2,row%-2,1) = player% = TRUE
 6540= FALSE
 6570DEFFNu(player%):IF computer%(col%-1,row%-2,1) = player% = TRUE
 6580= FALSE
 6610DEFFNv(player%):IF computer%(col%,row%-2,1) = player% = TRUE
 6620= FALSE
 6650DEFFNw(player%):IF computer%(col%+1,row%-2,1) = player% = TRUE
 6660= FALSE
 6690DEFFNx(player%):IF computer%(col%+2,row%-2,1) = player% = TRUE
 6700= FALSE
 6730DEFFNaa(player%):IF computer%(col%-4,row%+2,1) = player% = TRUE
 6740= FALSE
 6770DEFFNab(player%):IF computer%(col%-3,row%+2,1) = player% = TRUE
 6780= FALSE
 6810DEFFNac(player%):IF computer%(col%-3,row%+1,1) = player% = TRUE
 6820= FALSE
 6850DEFFNba(player%):IF computer%(col%+4,row%-2,1) = player% = TRUE
 6860= FALSE
 6890DEFFNbb(player%):IF computer%(col%+3,row%-1,1) = player% = TRUE
 6900= FALSE
 6930DEFFNbc(player%):IF computer%(col%+3,row%-2,1) = player% = TRUE
 6940= FALSE
 6970DEFFNca(player%):IF computer%(col%-2,row%+4,1) = player% = TRUE
 6980= FALSE
 7010DEFFNcb(player%):IF computer%(col%-2,row%+3,1) = player% = TRUE
 7020= FALSE
 7050DEFFNcc(player%):IF computer%(col%-1,row%+3,1) = player% = TRUE
 7060= FALSE
 7090DEFFNda(player%):IF computer%(col%+2,row%-4,1) = player% = TRUE
 7100= FALSE
 7130DEFFNdb(player%):IF computer%(col%+1,row%-3,1) = player% = TRUE
 7140= FALSE
 7170DEFFNdc(player%):IF computer%(col%+2,row%-3,1) = player% = TRUE
 7180= FALSE
 7210DEFFNea(player%):IF computer%(col%-3,row%,1) = player% = TRUE
 7220= FALSE
 7250DEFFNeb(player%):IF computer%(col%-3,row%+3,1) = player% = TRUE
 7260= FALSE
 7290DEFFNec(player%):IF computer%(col%+2,row%-2,1) = player% = TRUE
 7300= FALSE
 7330DEFFNed(player%):IF computer%(col%+3,row%,1) = player% = TRUE
 7340= FALSE
 7370DEFFNef(player%):IF computer%(col%+3,row%-3,1) = player% = TRUE
 7380= FALSE
 7410DEFFNeg(player%):IF computer%(col%,row%-3,1) = player% = TRUE
 7420= FALSE
 7500DEFPROCscore_possible_moves
 7520IF move% = 1 THEN
 7530CASE level% OF
 7540WHEN 3   :PROCl_3_initial
 7550WHEN 4,5 :PROCl_4_5_initial
 7560ENDCASE
 7570ENDIF
 7590comp_count% += 1
 7610CASE comp_count% OF
 7630WHEN  1 :PROC_0a
 7640WHEN  2 :PROC_0b
 7650WHEN  3 :PROC_0c
 7660WHEN  4 :PROC_0d
 7680WHEN  5 :PROC_1a
 7690WHEN  6 :PROC_1b
 7700WHEN  7 :PROC_1c
 7710WHEN  8 :PROC_1d
 7720WHEN  9 :PROC_1e
 7730WHEN 10 :PROC_1f :IF level% = 2 THENcalcs_done% = TRUE
 7750WHEN 11 :PROC_2a
 7760WHEN 12 :PROC_2b
 7770WHEN 13 :PROC_2c
 7780WHEN 14 :PROC_2d
 7790WHEN 15 :PROC_2e
 7800WHEN 16 :PROC_2f :IF level% = 3 THENcalcs_done% = TRUE
 7820WHEN 17 :PROC_3a
 7830WHEN 18 :PROC_3b :IF level% = 4 THENcalcs_done% = TRUE
 7850WHEN 19 :PROC_4a
 7860WHEN 20 :PROC_4b
 7880WHEN 21 :PROC_5a
 7890WHEN 22 :PROC_5b :calcs_done% = TRUE
 7910ENDCASE
 7930ENDPROC
 8000DEFPROCl_3_initial
 8040computer%(5,5,0) = 1
 8050computer%(4,5,0) = 1
 8060computer%(4,6,0) = 1
 8070computer%(5,6,0) = 1
 8080computer%(6,5,0) = 1
 8090computer%(6,4,0) = 1
 8100computer%(5,4,0) = 1
 8120ENDPROC
 8190DEFPROCl_4_5_initial
 8220computer%(5,5,0) = 1
 8240ENDPROC
 8310DEFPROC_0a
 8330LOCAL col%, row%
 8350FOR col% = 0 TO 10
 8360FOR row% = 0 TO 9
 8390IF computer%(col%,row%, 1) = 0 THEN
 8420IF FNh(2) THEN
 8450IF col% + row% > 9 THEN
 8460computer%(col%,row%, 0) += 10
 8480ELSE
 8490computer%(col%,row%, 0) += 5
 8500ENDIF
 8520IF level% = 5 AND col% > 0 AND col% < 10 AND row% < 9 THEN
 8530IF FNb(2) computer%(col%,row%, 0) += 1
 8540IF FNc(2) computer%(col%,row%, 0) += 1
 8550IF FNg(1) AND FNb(1) AND FNc(1) AND FNi(1) THENcomputer%(col%,row%, 0) = 0
 8560ENDIF
 8580ENDIF
 8590ENDIF
 8610NEXT row%
 8620NEXT col%
 8640ENDPROC
 8710DEFPROC_0b
 8730LOCAL col%, row%
 8750FOR col% = 0 TO 10
 8760FOR row% = 1 TO 10
 8780IF computer%(col%,row%, 1) = 0 THEN
 8810IF FNq(2) THEN
 8840IF col% + row% < 11 THEN
 8850computer%(col%,row%, 0) += 10
 8870ELSE
 8880computer%(col%,row%, 0) += 5
 8890ENDIF
 8910IF level% = 5 AND col% > 0 AND col% < 10 AND row% > 1 THEN
 8920IF FNv(2) computer%(col%,row%, 0) += 1
 8930IF FNw(2) computer%(col%,row%, 0) += 1
 8940IF FNp(1) AND FNv(1) AND FNw(1) AND FNr(1) THENcomputer%(col%,row%, 0) = 0
 8950ENDIF
 8970ENDIF
 8980ENDIF
 9000NEXT row%
 9010NEXT col%
 9030ENDPROC
 9100DEFPROC_0c
 9120LOCAL col%, row%
 9140FOR col% = 0 TO 9
 9150FOR row% = 1 TO 10
 9170IF computer%(col%,row%, 1) = 0 THEN
 9200IF FNr(2) THEN
 9210computer%(col%,row%, 0) += 2
 9250IF col% + row% >9 AND FNm(1) THEN
 9260computer%(col%,row%, 0) += 10
 9270ENDIF
 9290IF level% = 5 AND col% < 9 AND row% > 1 THEN
 9300IF FNw(2) computer%(col%,row%, 0) += 1
 9310IF FNx(2) computer%(col%,row%, 0) += 1
 9320IF FNq(1) AND FNw(1) AND FNx(1) AND FNs(1) THENcomputer%(col%,row%, 0) = 0
 9330ENDIF
 9350ENDIF
 9360ENDIF
 9380NEXT row%
 9390NEXT col%
 9410ENDPROC
 9480DEFPROC_0d
 9500LOCAL col%, row%
 9520FOR col% = 1 TO 10
 9530FOR row% = 0 TO 9
 9550IF computer%(col%,row%, 1) = 0 THEN
 9580IF FNg(2) THEN
 9590computer%(col%,row%, 0) += 2
 9630IF col% + row% <11 AND FNl(1) THEN
 9640computer%(col%,row%, 0) += 10
 9650ENDIF
 9670IF level% = 5 AND col% > 1 AND row% < 9 THEN
 9680IF FNa(2) computer%(col%,row%, 0) += 1
 9690IF FNb(2) computer%(col%,row%, 0) += 1
 9700IF FNf(1) AND FNa(1) AND FNb(1) AND FNh(1) THENcomputer%(col%,row%, 0) = 0
 9710ENDIF
 9730ENDIF
 9740ENDIF
 9760NEXT row%
 9770NEXT col%
 9790ENDPROC
 9860DEFPROC_1a
 9880LOCAL col%, row%
 9900FOR col% = 1 TO 10
 9910FOR row% = 1 TO 9
 9930IF computer%(col%,row%, 1) = 0 THEN
 9950IF FNg(2) AND FNq(2) THEN
 9960IF FNl(1) THENcomputer%(col%,row%, 0) += 10
 9970IF FNl(2) THENcomputer%(col%,row%, 0) = 0
 9980ENDIF
10000ENDIF
10020NEXT row%
10030NEXT col%
10050ENDPROC
10120DEFPROC_1b
10140LOCAL col%, row%
10160FOR col% = 0 TO 9
10170FOR row% = 1 TO 9
10190IF computer%(col%,row%, 1) = 0 THEN
10210IF FNh(2) AND FNr(2) THEN
10220IF FNm(1) THENcomputer%(col%,row%, 0) += 10
10230IF FNm(2) THENcomputer%(col%,row%, 0) = 0
10240ENDIF
10260ENDIF
10280NEXT row%
10290NEXT col%
10310ENDPROC
10380DEFPROC_1c
10400LOCAL col%, row%
10420FOR col% = 1 TO 10
10430FOR row% = 0 TO 9
10450IF computer%(col%,row%, 1) = 0 THEN
10470IF FNh(2) AND FNl(2) THEN
10480IF FNg(1) THENcomputer%(col%,row%, 0) += 10
10490IF FNg(2) THENcomputer%(col%,row%, 0) = 0
10500ENDIF
10520ENDIF
10540NEXT row%
10550NEXT col%
10570ENDPROC
10640DEFPROC_1d
10660LOCAL col%, row%
10680FOR col% = 0 TO 9
10690FOR row% = 1 TO 10
10710IF computer%(col%,row%, 1) = 0 THEN
10730IF FNm(2) AND FNq(2) THEN
10740IF FNr(1) THENcomputer%(col%,row%, 0) += 10
10750IF FNr(2) THENcomputer%(col%,row%, 0) = 0
10760ENDIF
10780ENDIF
10800NEXT row%
10810NEXT col%
10830ENDPROC
10900DEFPROC_1e
10920LOCAL col%, row%
10940FOR col% = 1 TO 9
10950FOR row% = 0 TO 9
10970IF computer%(col%,row%, 1) = 0 THEN
10990IF FNg(2) AND FNm(2) THEN
11000IF FNh(1) THENcomputer%(col%,row%, 0) += 10
11010IF FNh(2) THENcomputer%(col%,row%, 0) = 0
11020ENDIF
11040ENDIF
11060NEXT row%
11070NEXT col%
11090ENDPROC
11160DEFPROC_1f
11180LOCAL col%, row%
11200FOR col% = 1 TO 9
11210FOR row% = 1 TO 10
11230IF computer%(col%,row%, 1) = 0 THEN
11250IF FNl(2) AND FNr(2) THEN
11260IF FNq(1) THENcomputer%(col%,row%, 0) += 10
11270IF FNq(2) THENcomputer%(col%,row%, 0) = 0
11280ENDIF
11300ENDIF
11320NEXT row%
11330NEXT col%
11350ENDPROC
11420DEFPROC_2a
11440LOCAL col%, row%
11460FOR col% = 1 TO 10
11470FOR row% = 0 TO 9
11490IF computer%(col%,row%, 1) = 0 THEN
11510IF FNg(2) AND FNl(2) THENcomputer%(col%,row%, 0) = 0
11530ENDIF
11550NEXT row%
11560NEXT col%
11580ENDPROC
11650DEFPROC_2b
11670LOCAL col%, row%
11690FOR col% = 1 TO 10
11700FOR row% = 1 TO 10
11720IF computer%(col%,row%, 1) = 0 THEN
11740IF FNl(2) AND FNq(2) THENcomputer%(col%,row%, 0) = 0
11760ENDIF
11780NEXT row%
11790NEXT col%
11810ENDPROC
11880DEFPROC_2c
11900LOCAL col%, row%
11920FOR col% = 0 TO 9
11930FOR row% = 0 TO 9
11950IF computer%(col%,row%, 1) = 0 THEN
11970IF FNh(2) AND FNm(2) THENcomputer%(col%,row%, 0) = 0
11990ENDIF
12010NEXT row%
12020NEXT col%
12040ENDPROC
12110DEFPROC_2d
12130LOCAL col%, row%
12150FOR col% = 0 TO 9
12160FOR row% = 1 TO 10
12180IF computer%(col%,row%, 1) = 0 THEN
12200IF FNm(2) AND FNr(2) THENcomputer%(col%,row%, 0) = 0
12220ENDIF
12240NEXT row%
12250NEXT col%
12270ENDPROC
12350DEFPROC_2e
12370LOCAL col%, row%
12390FOR col% = 1 TO 10
12400FOR row% = 0 TO 9
12420IF computer%(col%,row%, 1) = 0 THEN
12440IF FNg(2) AND FNh(2) THENcomputer%(col%,row%, 0) = 0
12460ENDIF
12480NEXT row%
12490NEXT col%
12510ENDPROC
12570DEFPROC_2f
12590LOCAL col%, row%
12610FOR col% = 0 TO 9
12620FOR row% = 1 TO 10
12640IF computer%(col%,row%, 1) = 0 THEN
12660IF FNq(2) AND FNr(2) THENcomputer%(col%,row%, 0) = 0
12680ENDIF
12700NEXT row%
12710NEXT col%
12730ENDPROC
12800DEFPROC_3a
12820LOCAL col%, row%
12840FOR col% = 1 TO 9
12850FOR row% = 1 TO 9
12870IF computer%(col%,row%, 1) = 0 THEN
12900IF FNl(1) AND FNm(1) THEN
12930IF (FNq(2) OR FNr(2)) AND (NOT FNg(1) OR NOT FNh(1)) THEN
12940computer%(col%,row%, 0) += 5
12950ENDIF
12960ENDIF
12970ENDIF
12990NEXT row%
13000NEXT col%
13020ENDPROC
13100DEFPROC_3b
13120LOCAL col%, row%
13140FOR col% = 1 TO 9
13150FOR row% = 1 TO 9
13170IF computer%(col%,row%, 1) = 0 THEN
13200IF FNl(1) AND FNm(1) THEN
13230IF (FNg(2) OR FNh(2)) AND (NOT FNq(1) OR NOT FNr(1)) THEN
13240computer%(col%,row%, 0) += 5
13250ENDIF
13260ENDIF
13270ENDIF
13290NEXT row%
13300NEXT col%
13320ENDPROC
13390DEFPROC_4a
13410LOCAL col%, row%
13430FOR col% = 2 TO 10
13440FOR row% = 0 TO 8
13460IF computer%(col%,row%, 1) = 0 THEN
13490IF col% + row% <10 THEN
13510IF FNa(1) AND FNb(2) AND FNg(0) AND FNh(0) THEN
13520computer%(col%,row%, 0) += 20
13540IF level% = 5 AND row% < 8 THEN
13550IF FNa(1) AND FNcb(1) AND FNcc(1) AND FNc(1) THENcomputer%(col%,row%, 0) = 0
13560IF FNcb(2) THENcomputer%(col%,row%, 0) += 1
13570IF FNcc(2) THENcomputer%(col%,row%, 0) += 1
13590ENDIF
13600ENDIF
13610ENDIF
13620ENDIF
13640NEXT row%
13650NEXT col%
13670ENDPROC
13740DEFPROC_4b
13760LOCAL col%, row%
13780FOR col% = 0 TO 8
13790FOR row% = 2 TO 10
13810IF computer%(col%,row%, 1) = 0 THEN
13840IF col% + row% >10 THEN
13860IF FNx(1) AND FNw(2) AND FNq(0) AND FNr(0) THEN
13870computer%(col%,row%, 0) += 20
13890IF level% = 5 AND row% > 2 THEN
13900IF FNv(1) AND FNdb(1) AND FNdc(1) AND FNx(1) THENcomputer%(col%,row%, 0) = 0
13910IF FNdb(2) THENcomputer%(col%,row%, 0) += 1
13920IF FNdc(2) THENcomputer%(col%,row%, 0) += 1
13940ENDIF
13950ENDIF
13960ENDIF
13970ENDIF
13990NEXT row%
14000NEXT col%
14020ENDPROC
14090DEFPROC_5a
14110LOCAL col%, row%
14130FOR col% = 0 TO 8
14140FOR row% = 4 TO 10
14160IF computer%(col%,row%, 1) = 0 THEN
14180IF FNw(2) AND ((FNq(0) AND FNr(0))OR(FNq(2) OR FNr(2))) THEN
14190computer%(col%,row%, 0) += 3
14200IF FNda(2) AND ((FNdb(0) AND FNdc(0))OR(FNdb(2) OR FNdc(2))) THEN
14210computer%(col%,row%, 0) += 17
14220ENDIF
14230ENDIF
14240ENDIF
14260NEXT row%
14270NEXT col%
14290ENDPROC
14360DEFPROC_5b
14380LOCAL col%, row%
14400FOR col% = 2 TO 10
14410FOR row% = 0 TO 6
14430IF computer%(col%,row%, 1) = 0 THEN
14450IF FNb(2) AND ((FNg(0) AND FNh(0))OR(FNg(2) OR FNh(2))) THEN
14460computer%(col%,row%, 0) += 3
14470IF FNca(2) AND ((FNcb(0) AND FNcc(0))OR(FNcb(2) OR FNcc(2))) THEN
14480computer%(col%,row%, 0) += 17
14490ENDIF
14500ENDIF
14510ENDIF
14530NEXT row%
14540NEXT col%
14560ENDPROC

/� HEX library: Lib11_13: Section 11 and 13.
(
��dummy:�
���win_check
�� move% > 20 �
�� player% = 1 �
��translate_red_moves   
�
�translate_blue_moves  
�
,full_check% = �
6�quick_check             
J� full_check% �
T�initial_array_data    
^�chain_hexes           
h�
|�
��
���quick_check
� col%, row%, count%
col%   = 0
&row%   = 0
0count% = 0
D�
X� check_win%(col%,row%,1) �
b
col% += 1
lrow% = 0
vcount% += 1
��
�
row% += 1
��
�� count% = 11 � row% = 11
�"� count% = 11 �full_check% = �
��
��initial_array_data
*� X%, Y%
>� X% = 0 � 10
H� Y% = 0 � 10
\check_win%(X%,Y%,0) = 63
p'� X% =  0 �check_win%(X%,Y%,0) = 39
�'� X% = 10 �check_win%(X%,Y%,0) = 60
�� Y% = 0 �
�check_win%(X%,Y%,0) = 57
�'� X% =  0 �check_win%(X%,Y%,0) = 33
�'� X% = 10 �check_win%(X%,Y%,0) = 56
��
�� Y% = 10 �
�check_win%(X%,Y%,0) = 15
�'� X% =  0 �check_win%(X%,Y%,0) =  7
�'� X% = 10 �check_win%(X%,Y%,0) = 12
��
� Y%
� X%
.�
t��translate_red_moves 
�� X%,Y%
�� X% = 0 � 10
�� Y% = 0 � 10
� � board_status%(X%,Y%) = 1 �
�check_win%(X%,Y%,1) = �
��
�check_win%(X%,Y%,1) = �
��
�� Y%
� X%
�
Z��translate_blue_moves 
n� X%,Y%
�� X% = 0 � 10
�� Y% = 0 � 10
� � board_status%(X%,Y%) = 2 �
�check_win%(Y%,X%,1) = �
��
�check_win%(Y%,X%,1) = �
��
�� Y%
�� X%
��
@��chain_hexes
Tcol%       = 0
^entry%     = 4
hcount%     = 0 
�winning_moves%() = -1
�
row% = -1
�� row% += 1
��
�!� check_win%(col%, row%, 1) �
��store_winning_move
�look%  = (entry% � 6) + 1
��
�
�case 
�look%  = (look% � 6) + 1
1� col% = 10 �win% = � :winner% = player% :� 7
(� win% � check_win%(col%,row%,0) = 0
&�
0E� win% � check_win%(col%,row%,0)= 0 � check_win%(col%,row%,1) = 0
:� win% � row% = 10
N�
�
��case
�Ȏ look% �
�� 1 
�!�(check_win%(col%,row%,0)�1)�
�5check_win%(col%,row%,0)=check_win%(col%,row%,0)�1
�$�(check_win%((col%+1),row%,1)) �
�col%+=1:entry%=4:look%=4
��store_winning_move 
��
�
� 2 
 !�(check_win%(col%,row%,0)�2)�
*5check_win%(col%,row%,0)=check_win%(col%,row%,0)�2
4'�(check_win%((col%+1),(row%-1),1))�
>$col%+=1:row%-=1:entry%=5:look%=5
H�store_winning_move 
R�
\�
p� 3 
z!�(check_win%(col%,row%,0)�4)�
�5check_win%(col%,row%,0)=check_win%(col%,row%,0)�4
�#�(check_win%(col%,(row%-1),1))�
�row%-=1:entry%=6:look%=6
��store_winning_move 
��
��
�� 4 
�"�(check_win%(col%, row%,0)�8)�
�5check_win%(col%,row%,0)=check_win%(col%,row%,0)�8
�#�(check_win%((col%-1),row%,1))�
�col%-=1:entry%=1:look%=1
��store_winning_move 
	�
	�
	$� 5 
	."�(check_win%(col%,row%,0)�16)�
	86check_win%(col%,row%,0)=check_win%(col%,row%,0)�16
	B'�(check_win%((col%-1),(row%+1),1))�
	L$col%-=1:row%+=1:entry%=2:look%=2
	V�store_winning_move 
	`�
	j�
	~� 6 
	�"�(check_win%(col%,row%,0)�32)�
	�6check_win%(col%,row%,0)=check_win%(col%,row%,0)�32
	�#�(check_win%(col%,(row%+1),1))�
	�row%+=1:entry%=3:look%=3
	��store_winning_move 
	��
	��
	��
	��
(��store_winning_move
<count% = count% + 1
F#winning_moves%(count%,0) = col%
P#winning_moves%(count%,1) = row%
d�
���announce_winner
�$� � resign% ��show_winning_moves
��show_winner_on_board
�� winner% = 1 �
red_wins% += 1
�
blue_wins% += 1
"�
6�update_scores 
Jwin%         = �
Tduring_game% = �
h�
���show_winning_moves
��find_start_end 
�y% = start%
�'�display_win_move_on_board(start%) 
��
start% = end%
'�display_win_move_on_board(start%) 
&start% = y%
:!ȕ � �adjacent(start%, end%) 
Dstart% += 1
N�
bend% = start%
l� y% = start%
��
���find_start_end
�count% = 121
��

count% = count% - 1

4� winning_moves%(count%,0) = 10 �end%   = count%

 4� winning_moves%(count%,0) =  0 �start% = count%

40� winning_moves%(count%,0) =  0 � count% = 0

H�

�'��display_win_move_on_board(start%)

�� winner% = 1 �

�#col% = winning_moves%(start%,0)

�#row% = winning_moves%(start%,1)

��

�#col% = winning_moves%(start%,1)

�#row% = winning_moves%(start%,0)

��

�#window_y% = -((10-row%)*52)-105

�&window_x% = (col%*72)+(row%*36)+10
-�delete_icon(hex_window%,hex%(col%,row%))
$� winner% = 1 �
.^hex%(col%,row%)=�add_icon("sprite","win_red",hex_window%,window_x%,window_y%,0,sprites%,0)
8�
B_hex%(col%,row%)=�add_icon("sprite","win_blue",hex_window%,window_x%,window_y%,0,sprites%,0)
L�
`�
�ݤadjacent(start%, end%)
�0� col_start%, row_start%, col_end%, row_end%
�)col_start% = winning_moves%(start%,0)
�)row_start% = winning_moves%(start%,1)
�'col_end%   = winning_moves%(end%,0)
�'row_end%   = winning_moves%(end%,1)
<� col_start%-1 = col_end% � row_start%+1 = row_end% �= �

<� col_start%   = col_end% � row_start%+1 = row_end% �= �
<� col_start%+1 = col_end% � row_start%   = row_end% �= �
<� col_start%+1 = col_end% � row_start%-1 = row_end% �= �
(<� col_start%   = col_end% � row_start%-1 = row_end% �= �
2<� col_start%-1 = col_end% � row_start%   = row_end% �= �
F= �
���show_winner_on_board
�� winner% = 1 �
�7�put_icon_text(hex_window%,report_red%, " WINNER ")
�� resign% �
�6�put_icon_text(hex_window%,report_blue%,"Resigns")
��
�/�put_icon_text(hex_window%,report_blue%,"")
��
1�icon_bg_colour(hex_window%,report_red%,red%)
4�icon_bg_colour(hex_window%,report_blue%,white%)
"�
,7�put_icon_text(hex_window%,report_blue%," WINNER ")
@� resign% �
J6�put_icon_text(hex_window%,report_red%, "Resigns")
T�
^/�put_icon_text(hex_window%,report_red%, "")
h�
�3�icon_bg_colour(hex_window%,report_red%,white%)
�3�icon_bg_colour(hex_window%,report_blue%,blue%)
��
��
N��computer_move
b0� comp_count% = 0 � level% = 1 ��copy_array 
v!� level% = 1 �calcs_done% = �
�� � calcs_done% �
�(�score_possible_moves               
��
�(�best_move                          
�(�mark_move_on_board                 
�player% = player% � 3
(�set_hex_window_icons               
(�set_menu_shades                    
*calcs_done% = �
4comp_count% = 0
H�
\�
���copy_array
�� X%,Y%
computer%() = 0
.� player% = 1 �
B� X% = 0 � 10
L� Y% = 0 � 10
V.computer%(X%,Y%,1) =  board_status%(X%,Y%)
`� Y%
j� X%
~�
�� X% = 0 � 10
�� Y% = 0 � 10
�I� board_status%(X%,Y%) �computer%(Y%,X%,1) = board_status%(X%,Y%) � 3
�� Y%
�� X%
��
��
<��best_move
x8� highest%, count%, X%, Y%, use_this_highest%, temp%
�highest%  = -1
�count%    = 0
�col% = 0
�row% = 0
�� Y% = 0 � 10
�� X% = 0 � 10
�� computer%(X%,Y%,1) = 0 �
�&� computer%(X%,Y%,0) >= highest% �
�count% += 1
�%� computer%(X%,Y%,0) > highest% �
�"highest%  = computer%(X%,Y%,0)
col%   = X%
row%   = Y%
count% = 1
"�
,�
6�
@� X%
J� Y%
h� count% > 1 �
r!use_this_highest% = �(count%)
|count% = 0
�Y% = -1
�
� Y% += 1
�X% = -1
�
� X% += 1
�>� computer%(X%,Y%,1) = 0 � computer%(X%,Y%,0) = highest% �
�count% += 1
��
�*� X% = 10 � count% = use_this_highest%
� � count% = use_this_highest%
�col%   = X%
�row%   = Y%
��
� player% = 2 �
temp% = col%
col%  = row%
&row%  = temp%
0�
D�
�;ݤa(player%):� computer%(col%-2,row%+2,1) = player% = �
�= �
�;ݤb(player%):� computer%(col%-1,row%+2,1) = player% = �
�= �
�9ݤc(player%):� computer%(col%,row%+2,1) = player% = �
�= �
;ݤd(player%):� computer%(col%+1,row%+2,1) = player% = �
= �
*;ݤe(player%):� computer%(col%+2,row%+2,1) = player% = �
4= �
R;ݤf(player%):� computer%(col%-2,row%+1,1) = player% = �
\= �
z;ݤg(player%):� computer%(col%-1,row%+1,1) = player% = �
�= �
�9ݤh(player%):� computer%(col%,row%+1,1) = player% = �
�= �
�;ݤi(player%):� computer%(col%+1,row%+1,1) = player% = �
�= �
�;ݤj(player%):� computer%(col%+2,row%+1,1) = player% = �
�= �
9ݤk(player%):� computer%(col%-2,row%,1) = player% = �
$= �
B9ݤl(player%):� computer%(col%-1,row%,1) = player% = �
L= �
j9ݤm(player%):� computer%(col%+1,row%,1) = player% = �
t= �
�9ݤn(player%):� computer%(col%+2,row%,1) = player% = �
�= �
�;ݤo(player%):� computer%(col%-2,row%-1,1) = player% = �
�= �
�;ݤp(player%):� computer%(col%-1,row%-1,1) = player% = �
�= �

9ݤq(player%):� computer%(col%,row%-1,1) = player% = �
= �
2;ݤr(player%):� computer%(col%+1,row%-1,1) = player% = �
<= �
Z;ݤs(player%):� computer%(col%+2,row%-1,1) = player% = �
d= �
�;ݤt(player%):� computer%(col%-2,row%-2,1) = player% = �
�= �
�;ݤu(player%):� computer%(col%-1,row%-2,1) = player% = �
�= �
�9ݤv(player%):� computer%(col%,row%-2,1) = player% = �
�= �
�;ݤw(player%):� computer%(col%+1,row%-2,1) = player% = �
= �
";ݤx(player%):� computer%(col%+2,row%-2,1) = player% = �
,= �
J<ݤaa(player%):� computer%(col%-4,row%+2,1) = player% = �
T= �
r<ݤab(player%):� computer%(col%-3,row%+2,1) = player% = �
|= �
�<ݤac(player%):� computer%(col%-3,row%+1,1) = player% = �
�= �
�<ݤba(player%):� computer%(col%+4,row%-2,1) = player% = �
�= �
�<ݤbb(player%):� computer%(col%+3,row%-1,1) = player% = �
�= �
<ݤbc(player%):� computer%(col%+3,row%-2,1) = player% = �
= �
:<ݤca(player%):� computer%(col%-2,row%+4,1) = player% = �
D= �
b<ݤcb(player%):� computer%(col%-2,row%+3,1) = player% = �
l= �
�<ݤcc(player%):� computer%(col%-1,row%+3,1) = player% = �
�= �
�<ݤda(player%):� computer%(col%+2,row%-4,1) = player% = �
�= �
�<ݤdb(player%):� computer%(col%+1,row%-3,1) = player% = �
�= �
<ݤdc(player%):� computer%(col%+2,row%-3,1) = player% = �
= �
*:ݤea(player%):� computer%(col%-3,row%,1) = player% = �
4= �
R<ݤeb(player%):� computer%(col%-3,row%+3,1) = player% = �
\= �
z<ݤec(player%):� computer%(col%+2,row%-2,1) = player% = �
�= �
�:ݤed(player%):� computer%(col%+3,row%,1) = player% = �
�= �
�<ݤef(player%):� computer%(col%+3,row%-3,1) = player% = �
�= �
�:ݤeg(player%):� computer%(col%,row%-3,1) = player% = �
�= �
L��score_possible_moves
`� move% = 1 �
jȎ level% �
t� 3   :�l_3_initial
~� 4,5 :�l_4_5_initial
��
��
�comp_count% += 1
�Ȏ comp_count% �
��  1 :�_0a
��  2 :�_0b
��  3 :�_0c
��  4 :�_0d
�  5 :�_1a

�  6 :�_1b
�  7 :�_1c
�  8 :�_1d
(�  9 :�_1e
2-� 10 :�_1f :� level% = 2 �calcs_done% = �
F� 11 :�_2a
P� 12 :�_2b
Z� 13 :�_2c
d� 14 :�_2d
n� 15 :�_2e
x-� 16 :�_2f :� level% = 3 �calcs_done% = �
�� 17 :�_3a
�-� 18 :�_3b :� level% = 4 �calcs_done% = �
�� 19 :�_4a
�� 20 :�_4b
�� 21 :�_5a
�� 22 :�_5b :calcs_done% = �
��
��
@��l_3_initial
hcomputer%(5,5,0) = 1
rcomputer%(4,5,0) = 1
|computer%(4,6,0) = 1
�computer%(5,6,0) = 1
�computer%(6,5,0) = 1
�computer%(6,4,0) = 1
�computer%(5,4,0) = 1
��
���l_4_5_initial
 computer%(5,5,0) = 1
 0�
 v	��_0a
 �� col%, row%
 �� col% = 0 � 10
 �� row% = 0 � 9
 �#� computer%(col%,row%, 1) = 0 �
 �
� �h(2) �
!� col% + row% > 9 �
!!computer%(col%,row%, 0) += 10
! �
!* computer%(col%,row%, 0) += 5
!4�
!H4� level% = 5 � col% > 0 � col% < 10 � row% < 9 �
!R(� �b(2) computer%(col%,row%, 0) += 1
!\(� �c(2) computer%(col%,row%, 0) += 1
!f@� �g(1) � �b(1) � �c(1) � �i(1) �computer%(col%,row%, 0) = 0
!p�
!��
!��
!�
� row%
!�
� col%
!��
"	��_0b
"� col%, row%
".� col% = 0 � 10
"8� row% = 1 � 10
"L#� computer%(col%,row%, 1) = 0 �
"j
� �q(2) �
"�� col% + row% < 11 �
"�!computer%(col%,row%, 0) += 10
"��
"� computer%(col%,row%, 0) += 5
"��
"�4� level% = 5 � col% > 0 � col% < 10 � row% > 1 �
"�(� �v(2) computer%(col%,row%, 0) += 1
"�(� �w(2) computer%(col%,row%, 0) += 1
"�@� �p(1) � �v(1) � �w(1) � �r(1) �computer%(col%,row%, 0) = 0
"��
#
�
#�
#(
� row%
#2
� col%
#F�
#�	��_0c
#�� col%, row%
#�� col% = 0 � 9
#�� row% = 1 � 10
#�#� computer%(col%,row%, 1) = 0 �
#�
� �r(2) �
#� computer%(col%,row%, 0) += 2
$"� col% + row% >9 � �m(1) �
$,!computer%(col%,row%, 0) += 10
$6�
$J(� level% = 5 � col% < 9 � row% > 1 �
$T(� �w(2) computer%(col%,row%, 0) += 1
$^(� �x(2) computer%(col%,row%, 0) += 1
$h@� �q(1) � �w(1) � �x(1) � �s(1) �computer%(col%,row%, 0) = 0
$r�
$��
$��
$�
� row%
$�
� col%
$��
%	��_0d
%� col%, row%
%0� col% = 1 � 10
%:� row% = 0 � 9
%N#� computer%(col%,row%, 1) = 0 �
%l
� �g(2) �
%v computer%(col%,row%, 0) += 2
%�� col% + row% <11 � �l(1) �
%�!computer%(col%,row%, 0) += 10
%��
%�(� level% = 5 � col% > 1 � row% < 9 �
%�(� �a(2) computer%(col%,row%, 0) += 1
%�(� �b(2) computer%(col%,row%, 0) += 1
%�@� �f(1) � �a(1) � �b(1) � �h(1) �computer%(col%,row%, 0) = 0
%��
&�
&�
& 
� row%
&*
� col%
&>�
&�	��_1a
&�� col%, row%
&�� col% = 1 � 10
&�� row% = 1 � 9
&�#� computer%(col%,row%, 1) = 0 �
&�� �g(2) � �q(2) �
&�*� �l(1) �computer%(col%,row%, 0) += 10
&�(� �l(2) �computer%(col%,row%, 0) = 0
&��
'�
'$
� row%
'.
� col%
'B�
'�	��_1b
'�� col%, row%
'�� col% = 0 � 9
'�� row% = 1 � 9
'�#� computer%(col%,row%, 1) = 0 �
'�� �h(2) � �r(2) �
'�*� �m(1) �computer%(col%,row%, 0) += 10
'�(� �m(2) �computer%(col%,row%, 0) = 0
(�
(�
((
� row%
(2
� col%
(F�
(�	��_1c
(�� col%, row%
(�� col% = 1 � 10
(�� row% = 0 � 9
(�#� computer%(col%,row%, 1) = 0 �
(�� �h(2) � �l(2) �
(�*� �g(1) �computer%(col%,row%, 0) += 10
(�(� �g(2) �computer%(col%,row%, 0) = 0
)�
)�
),
� row%
)6
� col%
)J�
)�	��_1d
)�� col%, row%
)�� col% = 0 � 9
)�� row% = 1 � 10
)�#� computer%(col%,row%, 1) = 0 �
)�� �m(2) � �q(2) �
)�*� �r(1) �computer%(col%,row%, 0) += 10
)�(� �r(2) �computer%(col%,row%, 0) = 0
*�
*�
*0
� row%
*:
� col%
*N�
*�	��_1e
*�� col%, row%
*�� col% = 1 � 9
*�� row% = 0 � 9
*�#� computer%(col%,row%, 1) = 0 �
*�� �g(2) � �m(2) �
*�*� �h(1) �computer%(col%,row%, 0) += 10
+(� �h(2) �computer%(col%,row%, 0) = 0
+�
+ �
+4
� row%
+>
� col%
+R�
+�	��_1f
+�� col%, row%
+�� col% = 1 � 9
+�� row% = 1 � 10
+�#� computer%(col%,row%, 1) = 0 �
+�� �l(2) � �r(2) �
+�*� �q(1) �computer%(col%,row%, 0) += 10
,(� �q(2) �computer%(col%,row%, 0) = 0
,�
,$�
,8
� row%
,B
� col%
,V�
,�	��_2a
,�� col%, row%
,�� col% = 1 � 10
,�� row% = 0 � 9
,�#� computer%(col%,row%, 1) = 0 �
,�0� �g(2) � �l(2) �computer%(col%,row%, 0) = 0
-
�
-
� row%
-(
� col%
-<�
-�	��_2b
-�� col%, row%
-�� col% = 1 � 10
-�� row% = 1 � 10
-�#� computer%(col%,row%, 1) = 0 �
-�0� �l(2) � �q(2) �computer%(col%,row%, 0) = 0
-��
.
� row%
.
� col%
."�
.h	��_2c
.|� col%, row%
.�� col% = 0 � 9
.�� row% = 0 � 9
.�#� computer%(col%,row%, 1) = 0 �
.�0� �h(2) � �m(2) �computer%(col%,row%, 0) = 0
.��
.�
� row%
.�
� col%
/�
/N	��_2d
/b� col%, row%
/v� col% = 0 � 9
/�� row% = 1 � 10
/�#� computer%(col%,row%, 1) = 0 �
/�0� �m(2) � �r(2) �computer%(col%,row%, 0) = 0
/��
/�
� row%
/�
� col%
/��
0>	��_2e
0R� col%, row%
0f� col% = 1 � 10
0p� row% = 0 � 9
0�#� computer%(col%,row%, 1) = 0 �
0�0� �g(2) � �h(2) �computer%(col%,row%, 0) = 0
0��
0�
� row%
0�
� col%
0��
1	��_2f
1.� col%, row%
1B� col% = 0 � 9
1L� row% = 1 � 10
1`#� computer%(col%,row%, 1) = 0 �
1t0� �q(2) � �r(2) �computer%(col%,row%, 0) = 0
1��
1�
� row%
1�
� col%
1��
2	��_3a
2� col%, row%
2(� col% = 1 � 9
22� row% = 1 � 9
2F#� computer%(col%,row%, 1) = 0 �
2d� �l(1) � �m(1) �
2�-� (�q(2) � �r(2)) � (� �g(1) � � �h(1)) �
2� computer%(col%,row%, 0) += 5
2��
2��
2��
2�
� row%
2�
� col%
2��
3,	��_3b
3@� col%, row%
3T� col% = 1 � 9
3^� row% = 1 � 9
3r#� computer%(col%,row%, 1) = 0 �
3�� �l(1) � �m(1) �
3�-� (�g(2) � �h(2)) � (� �q(1) � � �r(1)) �
3� computer%(col%,row%, 0) += 5
3��
3��
3��
3�
� row%
3�
� col%
4�
4N	��_4a
4b� col%, row%
4v� col% = 2 � 10
4�� row% = 0 � 8
4�#� computer%(col%,row%, 1) = 0 �
4�� col% + row% <10 �
4�%� �a(1) � �b(2) � �g(0) � �h(0) �
4�!computer%(col%,row%, 0) += 20
4�� level% = 5 � row% < 8 �
4�B� �a(1) � �cb(1) � �cc(1) � �c(1) �computer%(col%,row%, 0) = 0
4�*� �cb(2) �computer%(col%,row%, 0) += 1
5*� �cc(2) �computer%(col%,row%, 0) += 1
5�
5 �
5*�
54�
5H
� row%
5R
� col%
5f�
5�	��_4b
5�� col%, row%
5�� col% = 0 � 8
5�� row% = 2 � 10
5�#� computer%(col%,row%, 1) = 0 �
6� col% + row% >10 �
6$%� �x(1) � �w(2) � �q(0) � �r(0) �
6.!computer%(col%,row%, 0) += 20
6B� level% = 5 � row% > 2 �
6LB� �v(1) � �db(1) � �dc(1) � �x(1) �computer%(col%,row%, 0) = 0
6V*� �db(2) �computer%(col%,row%, 0) += 1
6`*� �dc(2) �computer%(col%,row%, 0) += 1
6t�
6~�
6��
6��
6�
� row%
6�
� col%
6��
7
	��_5a
7� col%, row%
72� col% = 0 � 8
7<� row% = 4 � 10
7P#� computer%(col%,row%, 1) = 0 �
7d1� �w(2) � ((�q(0) � �r(0))�(�q(2) � �r(2))) �
7n computer%(col%,row%, 0) += 3
7x6� �da(2) � ((�db(0) � �dc(0))�(�db(2) � �dc(2))) �
7�!computer%(col%,row%, 0) += 17
7��
7��
7��
7�
� row%
7�
� col%
7��
8	��_5b
8,� col%, row%
8@� col% = 2 � 10
8J� row% = 0 � 6
8^#� computer%(col%,row%, 1) = 0 �
8r1� �b(2) � ((�g(0) � �h(0))�(�g(2) � �h(2))) �
8| computer%(col%,row%, 0) += 3
8�6� �ca(2) � ((�cb(0) � �cc(0))�(�cb(2) � �cc(2))) �
8�!computer%(col%,row%, 0) += 17
8��
8��
8��
8�
� row%
8�
� col%
8��
�
00000000  0d 00 0a 2f f4 20 48 45  58 20 6c 69 62 72 61 72  |.../. HEX librar|
00000010  79 3a 20 4c 69 62 31 31  5f 31 33 3a 20 53 65 63  |y: Lib11_13: Sec|
00000020  74 69 6f 6e 20 31 31 20  61 6e 64 20 31 33 2e 0d  |tion 11 and 13..|
00000030  00 28 0d dd f2 64 75 6d  6d 79 3a e1 0d 00 be 0f  |.(...dummy:.....|
00000040  dd f2 77 69 6e 5f 63 68  65 63 6b 0d 00 dc 12 e7  |..win_check.....|
00000050  20 6d 6f 76 65 25 20 3e  20 32 30 20 8c 0d 00 f0  | move% > 20 ....|
00000060  13 e7 20 70 6c 61 79 65  72 25 20 3d 20 31 20 8c  |.. player% = 1 .|
00000070  0d 00 fa 1b f2 74 72 61  6e 73 6c 61 74 65 5f 72  |.....translate_r|
00000080  65 64 5f 6d 6f 76 65 73  20 20 20 0d 01 04 05 cc  |ed_moves   .....|
00000090  0d 01 0e 1b f2 74 72 61  6e 73 6c 61 74 65 5f 62  |.....translate_b|
000000a0  6c 75 65 5f 6d 6f 76 65  73 20 20 0d 01 18 05 cd  |lue_moves  .....|
000000b0  0d 01 2c 13 66 75 6c 6c  5f 63 68 65 63 6b 25 20  |..,.full_check% |
000000c0  3d 20 a3 0d 01 36 1d f2  71 75 69 63 6b 5f 63 68  |= ...6..quick_ch|
000000d0  65 63 6b 20 20 20 20 20  20 20 20 20 20 20 20 20  |eck             |
000000e0  0d 01 4a 13 e7 20 66 75  6c 6c 5f 63 68 65 63 6b  |..J.. full_check|
000000f0  25 20 8c 0d 01 54 1b f2  69 6e 69 74 69 61 6c 5f  |% ...T..initial_|
00000100  61 72 72 61 79 5f 64 61  74 61 20 20 20 20 0d 01  |array_data    ..|
00000110  5e 1b f2 63 68 61 69 6e  5f 68 65 78 65 73 20 20  |^..chain_hexes  |
00000120  20 20 20 20 20 20 20 20  20 0d 01 68 05 cd 0d 01  |         ..h....|
00000130  7c 05 cd 0d 01 90 05 e1  0d 01 d6 11 dd f2 71 75  ||.............qu|
00000140  69 63 6b 5f 63 68 65 63  6b 0d 02 08 18 ea 20 63  |ick_check..... c|
00000150  6f 6c 25 2c 20 72 6f 77  25 2c 20 63 6f 75 6e 74  |ol%, row%, count|
00000160  25 0d 02 1c 0e 63 6f 6c  25 20 20 20 3d 20 30 0d  |%....col%   = 0.|
00000170  02 26 0e 72 6f 77 25 20  20 20 3d 20 30 0d 02 30  |.&.row%   = 0..0|
00000180  0e 63 6f 75 6e 74 25 20  3d 20 30 0d 02 44 05 f5  |.count% = 0..D..|
00000190  0d 02 58 1f e7 20 63 68  65 63 6b 5f 77 69 6e 25  |..X.. check_win%|
000001a0  28 63 6f 6c 25 2c 72 6f  77 25 2c 31 29 20 8c 0d  |(col%,row%,1) ..|
000001b0  02 62 0d 63 6f 6c 25 20  2b 3d 20 31 0d 02 6c 0c  |.b.col% += 1..l.|
000001c0  72 6f 77 25 20 3d 20 30  0d 02 76 0f 63 6f 75 6e  |row% = 0..v.coun|
000001d0  74 25 20 2b 3d 20 31 0d  02 80 05 cc 0d 02 8a 0d  |t% += 1.........|
000001e0  72 6f 77 25 20 2b 3d 20  31 0d 02 94 05 cd 0d 02  |row% += 1.......|
000001f0  a8 1d fd 20 63 6f 75 6e  74 25 20 3d 20 31 31 20  |... count% = 11 |
00000200  84 20 72 6f 77 25 20 3d  20 31 31 0d 02 bc 22 e7  |. row% = 11...".|
00000210  20 63 6f 75 6e 74 25 20  3d 20 31 31 20 8c 66 75  | count% = 11 .fu|
00000220  6c 6c 5f 63 68 65 63 6b  25 20 3d 20 b9 0d 02 d0  |ll_check% = ....|
00000230  05 e1 0d 03 16 18 dd f2  69 6e 69 74 69 61 6c 5f  |........initial_|
00000240  61 72 72 61 79 5f 64 61  74 61 0d 03 2a 0c ea 20  |array_data..*.. |
00000250  58 25 2c 20 59 25 0d 03  3e 11 e3 20 58 25 20 3d  |X%, Y%..>.. X% =|
00000260  20 30 20 b8 20 31 30 0d  03 48 11 e3 20 59 25 20  | 0 . 10..H.. Y% |
00000270  3d 20 30 20 b8 20 31 30  0d 03 5c 1c 63 68 65 63  |= 0 . 10..\.chec|
00000280  6b 5f 77 69 6e 25 28 58  25 2c 59 25 2c 30 29 20  |k_win%(X%,Y%,0) |
00000290  3d 20 36 33 0d 03 70 27  e7 20 58 25 20 3d 20 20  |= 63..p'. X% =  |
000002a0  30 20 8c 63 68 65 63 6b  5f 77 69 6e 25 28 58 25  |0 .check_win%(X%|
000002b0  2c 59 25 2c 30 29 20 3d  20 33 39 0d 03 84 27 e7  |,Y%,0) = 39...'.|
000002c0  20 58 25 20 3d 20 31 30  20 8c 63 68 65 63 6b 5f  | X% = 10 .check_|
000002d0  77 69 6e 25 28 58 25 2c  59 25 2c 30 29 20 3d 20  |win%(X%,Y%,0) = |
000002e0  36 30 0d 03 98 0e e7 20  59 25 20 3d 20 30 20 8c  |60..... Y% = 0 .|
000002f0  0d 03 a2 1c 63 68 65 63  6b 5f 77 69 6e 25 28 58  |....check_win%(X|
00000300  25 2c 59 25 2c 30 29 20  3d 20 35 37 0d 03 ac 27  |%,Y%,0) = 57...'|
00000310  e7 20 58 25 20 3d 20 20  30 20 8c 63 68 65 63 6b  |. X% =  0 .check|
00000320  5f 77 69 6e 25 28 58 25  2c 59 25 2c 30 29 20 3d  |_win%(X%,Y%,0) =|
00000330  20 33 33 0d 03 b6 27 e7  20 58 25 20 3d 20 31 30  | 33...'. X% = 10|
00000340  20 8c 63 68 65 63 6b 5f  77 69 6e 25 28 58 25 2c  | .check_win%(X%,|
00000350  59 25 2c 30 29 20 3d 20  35 36 0d 03 c0 05 cd 0d  |Y%,0) = 56......|
00000360  03 d4 0f e7 20 59 25 20  3d 20 31 30 20 8c 0d 03  |.... Y% = 10 ...|
00000370  de 1c 63 68 65 63 6b 5f  77 69 6e 25 28 58 25 2c  |..check_win%(X%,|
00000380  59 25 2c 30 29 20 3d 20  31 35 0d 03 e8 27 e7 20  |Y%,0) = 15...'. |
00000390  58 25 20 3d 20 20 30 20  8c 63 68 65 63 6b 5f 77  |X% =  0 .check_w|
000003a0  69 6e 25 28 58 25 2c 59  25 2c 30 29 20 3d 20 20  |in%(X%,Y%,0) =  |
000003b0  37 0d 03 f2 27 e7 20 58  25 20 3d 20 31 30 20 8c  |7...'. X% = 10 .|
000003c0  63 68 65 63 6b 5f 77 69  6e 25 28 58 25 2c 59 25  |check_win%(X%,Y%|
000003d0  2c 30 29 20 3d 20 31 32  0d 03 fc 05 cd 0d 04 10  |,0) = 12........|
000003e0  08 ed 20 59 25 0d 04 1a  08 ed 20 58 25 0d 04 2e  |.. Y%..... X%...|
000003f0  05 e1 0d 04 74 1a dd f2  74 72 61 6e 73 6c 61 74  |....t...translat|
00000400  65 5f 72 65 64 5f 6d 6f  76 65 73 20 0d 04 88 0b  |e_red_moves ....|
00000410  ea 20 58 25 2c 59 25 0d  04 9c 11 e3 20 58 25 20  |. X%,Y%..... X% |
00000420  3d 20 30 20 b8 20 31 30  0d 04 a6 11 e3 20 59 25  |= 0 . 10..... Y%|
00000430  20 3d 20 30 20 b8 20 31  30 0d 04 ba 20 e7 20 62  | = 0 . 10... . b|
00000440  6f 61 72 64 5f 73 74 61  74 75 73 25 28 58 25 2c  |oard_status%(X%,|
00000450  59 25 29 20 3d 20 31 20  8c 0d 04 c4 1b 63 68 65  |Y%) = 1 .....che|
00000460  63 6b 5f 77 69 6e 25 28  58 25 2c 59 25 2c 31 29  |ck_win%(X%,Y%,1)|
00000470  20 3d 20 b9 0d 04 ce 05  cc 0d 04 d8 1b 63 68 65  | = ..........che|
00000480  63 6b 5f 77 69 6e 25 28  58 25 2c 59 25 2c 31 29  |ck_win%(X%,Y%,1)|
00000490  20 3d 20 a3 0d 04 e2 05  cd 0d 04 f6 08 ed 20 59  | = ........... Y|
000004a0  25 0d 05 00 08 ed 20 58  25 0d 05 14 05 e1 0d 05  |%..... X%.......|
000004b0  5a 1b dd f2 74 72 61 6e  73 6c 61 74 65 5f 62 6c  |Z...translate_bl|
000004c0  75 65 5f 6d 6f 76 65 73  20 0d 05 6e 0b ea 20 58  |ue_moves ..n.. X|
000004d0  25 2c 59 25 0d 05 82 11  e3 20 58 25 20 3d 20 30  |%,Y%..... X% = 0|
000004e0  20 b8 20 31 30 0d 05 8c  11 e3 20 59 25 20 3d 20  | . 10..... Y% = |
000004f0  30 20 b8 20 31 30 0d 05  a0 20 e7 20 62 6f 61 72  |0 . 10... . boar|
00000500  64 5f 73 74 61 74 75 73  25 28 58 25 2c 59 25 29  |d_status%(X%,Y%)|
00000510  20 3d 20 32 20 8c 0d 05  aa 1b 63 68 65 63 6b 5f  | = 2 .....check_|
00000520  77 69 6e 25 28 59 25 2c  58 25 2c 31 29 20 3d 20  |win%(Y%,X%,1) = |
00000530  b9 0d 05 b4 05 cc 0d 05  be 1b 63 68 65 63 6b 5f  |..........check_|
00000540  77 69 6e 25 28 59 25 2c  58 25 2c 31 29 20 3d 20  |win%(Y%,X%,1) = |
00000550  a3 0d 05 c8 05 cd 0d 05  dc 08 ed 20 59 25 0d 05  |........... Y%..|
00000560  e6 08 ed 20 58 25 0d 05  fa 05 e1 0d 06 40 11 dd  |... X%.......@..|
00000570  f2 63 68 61 69 6e 5f 68  65 78 65 73 0d 06 54 12  |.chain_hexes..T.|
00000580  63 6f 6c 25 20 20 20 20  20 20 20 3d 20 30 0d 06  |col%       = 0..|
00000590  5e 12 65 6e 74 72 79 25  20 20 20 20 20 3d 20 34  |^.entry%     = 4|
000005a0  0d 06 68 13 63 6f 75 6e  74 25 20 20 20 20 20 3d  |..h.count%     =|
000005b0  20 30 20 0d 06 86 19 77  69 6e 6e 69 6e 67 5f 6d  | 0 ....winning_m|
000005c0  6f 76 65 73 25 28 29 20  3d 20 2d 31 0d 06 9a 0d  |oves%() = -1....|
000005d0  72 6f 77 25 20 3d 20 2d  31 0d 06 a4 0f f5 20 72  |row% = -1..... r|
000005e0  6f 77 25 20 2b 3d 20 31  0d 06 ae 05 f5 0d 06 c2  |ow% += 1........|
000005f0  21 e7 20 63 68 65 63 6b  5f 77 69 6e 25 28 63 6f  |!. check_win%(co|
00000600  6c 25 2c 20 72 6f 77 25  2c 20 31 29 20 8c 0d 06  |l%, row%, 1) ...|
00000610  cc 17 f2 73 74 6f 72 65  5f 77 69 6e 6e 69 6e 67  |...store_winning|
00000620  5f 6d 6f 76 65 0d 06 d6  1d 6c 6f 6f 6b 25 20 20  |_move....look%  |
00000630  3d 20 28 65 6e 74 72 79  25 20 83 20 36 29 20 2b  |= (entry% . 6) +|
00000640  20 31 0d 06 ea 05 f5 0d  06 f4 0a f2 63 61 73 65  | 1..........case|
00000650  20 0d 06 fe 1c 6c 6f 6f  6b 25 20 20 3d 20 28 6c  | ....look%  = (l|
00000660  6f 6f 6b 25 20 83 20 36  29 20 2b 20 31 0d 07 08  |ook% . 6) + 1...|
00000670  31 e7 20 63 6f 6c 25 20  3d 20 31 30 20 8c 77 69  |1. col% = 10 .wi|
00000680  6e 25 20 3d 20 b9 20 3a  77 69 6e 6e 65 72 25 20  |n% = . :winner% |
00000690  3d 20 70 6c 61 79 65 72  25 20 3a ef 20 37 0d 07  |= player% :. 7..|
000006a0  12 28 fd 20 77 69 6e 25  20 84 20 63 68 65 63 6b  |.(. win% . check|
000006b0  5f 77 69 6e 25 28 63 6f  6c 25 2c 72 6f 77 25 2c  |_win%(col%,row%,|
000006c0  30 29 20 3d 20 30 0d 07  26 05 cd 0d 07 30 45 fd  |0) = 0..&....0E.|
000006d0  20 77 69 6e 25 20 84 20  63 68 65 63 6b 5f 77 69  | win% . check_wi|
000006e0  6e 25 28 63 6f 6c 25 2c  72 6f 77 25 2c 30 29 3d  |n%(col%,row%,0)=|
000006f0  20 30 20 84 20 63 68 65  63 6b 5f 77 69 6e 25 28  | 0 . check_win%(|
00000700  63 6f 6c 25 2c 72 6f 77  25 2c 31 29 20 3d 20 30  |col%,row%,1) = 0|
00000710  0d 07 3a 16 fd 20 77 69  6e 25 20 84 20 72 6f 77  |..:.. win% . row|
00000720  25 20 3d 20 31 30 0d 07  4e 05 e1 0d 07 94 0a dd  |% = 10..N.......|
00000730  f2 63 61 73 65 0d 07 a8  0e c8 8e 20 6c 6f 6f 6b  |.case...... look|
00000740  25 20 ca 0d 07 bc 08 c9  20 31 20 0d 07 c6 21 e7  |% ...... 1 ...!.|
00000750  28 63 68 65 63 6b 5f 77  69 6e 25 28 63 6f 6c 25  |(check_win%(col%|
00000760  2c 72 6f 77 25 2c 30 29  80 31 29 8c 0d 07 d0 35  |,row%,0).1)....5|
00000770  63 68 65 63 6b 5f 77 69  6e 25 28 63 6f 6c 25 2c  |check_win%(col%,|
00000780  72 6f 77 25 2c 30 29 3d  63 68 65 63 6b 5f 77 69  |row%,0)=check_wi|
00000790  6e 25 28 63 6f 6c 25 2c  72 6f 77 25 2c 30 29 82  |n%(col%,row%,0).|
000007a0  31 0d 07 da 24 e7 28 63  68 65 63 6b 5f 77 69 6e  |1...$.(check_win|
000007b0  25 28 28 63 6f 6c 25 2b  31 29 2c 72 6f 77 25 2c  |%((col%+1),row%,|
000007c0  31 29 29 20 8c 0d 07 e4  1c 63 6f 6c 25 2b 3d 31  |1)) .....col%+=1|
000007d0  3a 65 6e 74 72 79 25 3d  34 3a 6c 6f 6f 6b 25 3d  |:entry%=4:look%=|
000007e0  34 0d 07 ee 18 f2 73 74  6f 72 65 5f 77 69 6e 6e  |4.....store_winn|
000007f0  69 6e 67 5f 6d 6f 76 65  20 0d 07 f8 05 cd 0d 08  |ing_move .......|
00000800  02 05 cd 0d 08 16 08 c9  20 32 20 0d 08 20 21 e7  |........ 2 .. !.|
00000810  28 63 68 65 63 6b 5f 77  69 6e 25 28 63 6f 6c 25  |(check_win%(col%|
00000820  2c 72 6f 77 25 2c 30 29  80 32 29 8c 0d 08 2a 35  |,row%,0).2)...*5|
00000830  63 68 65 63 6b 5f 77 69  6e 25 28 63 6f 6c 25 2c  |check_win%(col%,|
00000840  72 6f 77 25 2c 30 29 3d  63 68 65 63 6b 5f 77 69  |row%,0)=check_wi|
00000850  6e 25 28 63 6f 6c 25 2c  72 6f 77 25 2c 30 29 82  |n%(col%,row%,0).|
00000860  32 0d 08 34 27 e7 28 63  68 65 63 6b 5f 77 69 6e  |2..4'.(check_win|
00000870  25 28 28 63 6f 6c 25 2b  31 29 2c 28 72 6f 77 25  |%((col%+1),(row%|
00000880  2d 31 29 2c 31 29 29 8c  0d 08 3e 24 63 6f 6c 25  |-1),1))...>$col%|
00000890  2b 3d 31 3a 72 6f 77 25  2d 3d 31 3a 65 6e 74 72  |+=1:row%-=1:entr|
000008a0  79 25 3d 35 3a 6c 6f 6f  6b 25 3d 35 0d 08 48 18  |y%=5:look%=5..H.|
000008b0  f2 73 74 6f 72 65 5f 77  69 6e 6e 69 6e 67 5f 6d  |.store_winning_m|
000008c0  6f 76 65 20 0d 08 52 05  cd 0d 08 5c 05 cd 0d 08  |ove ..R....\....|
000008d0  70 08 c9 20 33 20 0d 08  7a 21 e7 28 63 68 65 63  |p.. 3 ..z!.(chec|
000008e0  6b 5f 77 69 6e 25 28 63  6f 6c 25 2c 72 6f 77 25  |k_win%(col%,row%|
000008f0  2c 30 29 80 34 29 8c 0d  08 84 35 63 68 65 63 6b  |,0).4)....5check|
00000900  5f 77 69 6e 25 28 63 6f  6c 25 2c 72 6f 77 25 2c  |_win%(col%,row%,|
00000910  30 29 3d 63 68 65 63 6b  5f 77 69 6e 25 28 63 6f  |0)=check_win%(co|
00000920  6c 25 2c 72 6f 77 25 2c  30 29 82 34 0d 08 8e 23  |l%,row%,0).4...#|
00000930  e7 28 63 68 65 63 6b 5f  77 69 6e 25 28 63 6f 6c  |.(check_win%(col|
00000940  25 2c 28 72 6f 77 25 2d  31 29 2c 31 29 29 8c 0d  |%,(row%-1),1))..|
00000950  08 98 1c 72 6f 77 25 2d  3d 31 3a 65 6e 74 72 79  |...row%-=1:entry|
00000960  25 3d 36 3a 6c 6f 6f 6b  25 3d 36 0d 08 a2 18 f2  |%=6:look%=6.....|
00000970  73 74 6f 72 65 5f 77 69  6e 6e 69 6e 67 5f 6d 6f  |store_winning_mo|
00000980  76 65 20 0d 08 ac 05 cd  0d 08 b6 05 cd 0d 08 ca  |ve .............|
00000990  08 c9 20 34 20 0d 08 d4  22 e7 28 63 68 65 63 6b  |.. 4 ...".(check|
000009a0  5f 77 69 6e 25 28 63 6f  6c 25 2c 20 72 6f 77 25  |_win%(col%, row%|
000009b0  2c 30 29 80 38 29 8c 0d  08 de 35 63 68 65 63 6b  |,0).8)....5check|
000009c0  5f 77 69 6e 25 28 63 6f  6c 25 2c 72 6f 77 25 2c  |_win%(col%,row%,|
000009d0  30 29 3d 63 68 65 63 6b  5f 77 69 6e 25 28 63 6f  |0)=check_win%(co|
000009e0  6c 25 2c 72 6f 77 25 2c  30 29 82 38 0d 08 e8 23  |l%,row%,0).8...#|
000009f0  e7 28 63 68 65 63 6b 5f  77 69 6e 25 28 28 63 6f  |.(check_win%((co|
00000a00  6c 25 2d 31 29 2c 72 6f  77 25 2c 31 29 29 8c 0d  |l%-1),row%,1))..|
00000a10  08 f2 1c 63 6f 6c 25 2d  3d 31 3a 65 6e 74 72 79  |...col%-=1:entry|
00000a20  25 3d 31 3a 6c 6f 6f 6b  25 3d 31 0d 08 fc 18 f2  |%=1:look%=1.....|
00000a30  73 74 6f 72 65 5f 77 69  6e 6e 69 6e 67 5f 6d 6f  |store_winning_mo|
00000a40  76 65 20 0d 09 06 05 cd  0d 09 10 05 cd 0d 09 24  |ve ............$|
00000a50  08 c9 20 35 20 0d 09 2e  22 e7 28 63 68 65 63 6b  |.. 5 ...".(check|
00000a60  5f 77 69 6e 25 28 63 6f  6c 25 2c 72 6f 77 25 2c  |_win%(col%,row%,|
00000a70  30 29 80 31 36 29 8c 0d  09 38 36 63 68 65 63 6b  |0).16)...86check|
00000a80  5f 77 69 6e 25 28 63 6f  6c 25 2c 72 6f 77 25 2c  |_win%(col%,row%,|
00000a90  30 29 3d 63 68 65 63 6b  5f 77 69 6e 25 28 63 6f  |0)=check_win%(co|
00000aa0  6c 25 2c 72 6f 77 25 2c  30 29 82 31 36 0d 09 42  |l%,row%,0).16..B|
00000ab0  27 e7 28 63 68 65 63 6b  5f 77 69 6e 25 28 28 63  |'.(check_win%((c|
00000ac0  6f 6c 25 2d 31 29 2c 28  72 6f 77 25 2b 31 29 2c  |ol%-1),(row%+1),|
00000ad0  31 29 29 8c 0d 09 4c 24  63 6f 6c 25 2d 3d 31 3a  |1))...L$col%-=1:|
00000ae0  72 6f 77 25 2b 3d 31 3a  65 6e 74 72 79 25 3d 32  |row%+=1:entry%=2|
00000af0  3a 6c 6f 6f 6b 25 3d 32  0d 09 56 18 f2 73 74 6f  |:look%=2..V..sto|
00000b00  72 65 5f 77 69 6e 6e 69  6e 67 5f 6d 6f 76 65 20  |re_winning_move |
00000b10  0d 09 60 05 cd 0d 09 6a  05 cd 0d 09 7e 08 c9 20  |..`....j....~.. |
00000b20  36 20 0d 09 88 22 e7 28  63 68 65 63 6b 5f 77 69  |6 ...".(check_wi|
00000b30  6e 25 28 63 6f 6c 25 2c  72 6f 77 25 2c 30 29 80  |n%(col%,row%,0).|
00000b40  33 32 29 8c 0d 09 92 36  63 68 65 63 6b 5f 77 69  |32)....6check_wi|
00000b50  6e 25 28 63 6f 6c 25 2c  72 6f 77 25 2c 30 29 3d  |n%(col%,row%,0)=|
00000b60  63 68 65 63 6b 5f 77 69  6e 25 28 63 6f 6c 25 2c  |check_win%(col%,|
00000b70  72 6f 77 25 2c 30 29 82  33 32 0d 09 9c 23 e7 28  |row%,0).32...#.(|
00000b80  63 68 65 63 6b 5f 77 69  6e 25 28 63 6f 6c 25 2c  |check_win%(col%,|
00000b90  28 72 6f 77 25 2b 31 29  2c 31 29 29 8c 0d 09 a6  |(row%+1),1))....|
00000ba0  1c 72 6f 77 25 2b 3d 31  3a 65 6e 74 72 79 25 3d  |.row%+=1:entry%=|
00000bb0  33 3a 6c 6f 6f 6b 25 3d  33 0d 09 b0 18 f2 73 74  |3:look%=3.....st|
00000bc0  6f 72 65 5f 77 69 6e 6e  69 6e 67 5f 6d 6f 76 65  |ore_winning_move|
00000bd0  20 0d 09 ba 05 cd 0d 09  c4 05 cd 0d 09 d8 05 cb  | ...............|
00000be0  0d 09 e2 05 e1 0d 0a 28  18 dd f2 73 74 6f 72 65  |.......(...store|
00000bf0  5f 77 69 6e 6e 69 6e 67  5f 6d 6f 76 65 0d 0a 3c  |_winning_move..<|
00000c00  17 63 6f 75 6e 74 25 20  3d 20 63 6f 75 6e 74 25  |.count% = count%|
00000c10  20 2b 20 31 0d 0a 46 23  77 69 6e 6e 69 6e 67 5f  | + 1..F#winning_|
00000c20  6d 6f 76 65 73 25 28 63  6f 75 6e 74 25 2c 30 29  |moves%(count%,0)|
00000c30  20 3d 20 63 6f 6c 25 0d  0a 50 23 77 69 6e 6e 69  | = col%..P#winni|
00000c40  6e 67 5f 6d 6f 76 65 73  25 28 63 6f 75 6e 74 25  |ng_moves%(count%|
00000c50  2c 31 29 20 3d 20 72 6f  77 25 0d 0a 64 05 e1 0d  |,1) = row%..d...|
00000c60  0a b4 15 dd f2 61 6e 6e  6f 75 6e 63 65 5f 77 69  |.....announce_wi|
00000c70  6e 6e 65 72 0d 0a c8 24  e7 20 ac 20 72 65 73 69  |nner...$. . resi|
00000c80  67 6e 25 20 8c f2 73 68  6f 77 5f 77 69 6e 6e 69  |gn% ..show_winni|
00000c90  6e 67 5f 6d 6f 76 65 73  0d 0a e6 19 f2 73 68 6f  |ng_moves.....sho|
00000ca0  77 5f 77 69 6e 6e 65 72  5f 6f 6e 5f 62 6f 61 72  |w_winner_on_boar|
00000cb0  64 0d 0a fa 13 e7 20 77  69 6e 6e 65 72 25 20 3d  |d..... winner% =|
00000cc0  20 31 20 8c 0d 0b 04 12  72 65 64 5f 77 69 6e 73  | 1 .....red_wins|
00000cd0  25 20 2b 3d 20 31 0d 0b  0e 05 cc 0d 0b 18 13 62  |% += 1.........b|
00000ce0  6c 75 65 5f 77 69 6e 73  25 20 2b 3d 20 31 0d 0b  |lue_wins% += 1..|
00000cf0  22 05 cd 0d 0b 36 13 f2  75 70 64 61 74 65 5f 73  |"....6..update_s|
00000d00  63 6f 72 65 73 20 0d 0b  4a 14 77 69 6e 25 20 20  |cores ..J.win%  |
00000d10  20 20 20 20 20 20 20 3d  20 a3 0d 0b 54 14 64 75  |       = ...T.du|
00000d20  72 69 6e 67 5f 67 61 6d  65 25 20 3d 20 a3 0d 0b  |ring_game% = ...|
00000d30  68 05 e1 0d 0b ae 18 dd  f2 73 68 6f 77 5f 77 69  |h........show_wi|
00000d40  6e 6e 69 6e 67 5f 6d 6f  76 65 73 0d 0b c2 14 f2  |nning_moves.....|
00000d50  66 69 6e 64 5f 73 74 61  72 74 5f 65 6e 64 20 0d  |find_start_end .|
00000d60  0b d6 0f 79 25 20 3d 20  73 74 61 72 74 25 0d 0b  |...y% = start%..|
00000d70  ea 27 f2 64 69 73 70 6c  61 79 5f 77 69 6e 5f 6d  |.'.display_win_m|
00000d80  6f 76 65 5f 6f 6e 5f 62  6f 61 72 64 28 73 74 61  |ove_on_board(sta|
00000d90  72 74 25 29 20 0d 0b fe  05 f5 0d 0c 12 11 73 74  |rt%) .........st|
00000da0  61 72 74 25 20 3d 20 65  6e 64 25 0d 0c 1c 27 f2  |art% = end%...'.|
00000db0  64 69 73 70 6c 61 79 5f  77 69 6e 5f 6d 6f 76 65  |display_win_move|
00000dc0  5f 6f 6e 5f 62 6f 61 72  64 28 73 74 61 72 74 25  |_on_board(start%|
00000dd0  29 20 0d 0c 26 0f 73 74  61 72 74 25 20 3d 20 79  |) ..&.start% = y|
00000de0  25 0d 0c 3a 21 c8 95 20  ac 20 a4 61 64 6a 61 63  |%..:!.. . .adjac|
00000df0  65 6e 74 28 73 74 61 72  74 25 2c 20 65 6e 64 25  |ent(start%, end%|
00000e00  29 20 0d 0c 44 0f 73 74  61 72 74 25 20 2b 3d 20  |) ..D.start% += |
00000e10  31 0d 0c 4e 05 ce 0d 0c  62 11 65 6e 64 25 20 3d  |1..N....b.end% =|
00000e20  20 73 74 61 72 74 25 0d  0c 6c 11 fd 20 79 25 20  | start%..l.. y% |
00000e30  3d 20 73 74 61 72 74 25  0d 0c 80 05 e1 0d 0c c6  |= start%........|
00000e40  14 dd f2 66 69 6e 64 5f  73 74 61 72 74 5f 65 6e  |...find_start_en|
00000e50  64 0d 0c e4 10 63 6f 75  6e 74 25 20 3d 20 31 32  |d....count% = 12|
00000e60  31 0d 0c ee 05 f5 0d 0d  02 17 63 6f 75 6e 74 25  |1.........count%|
00000e70  20 3d 20 63 6f 75 6e 74  25 20 2d 20 31 0d 0d 16  | = count% - 1...|
00000e80  34 e7 20 77 69 6e 6e 69  6e 67 5f 6d 6f 76 65 73  |4. winning_moves|
00000e90  25 28 63 6f 75 6e 74 25  2c 30 29 20 3d 20 31 30  |%(count%,0) = 10|
00000ea0  20 8c 65 6e 64 25 20 20  20 3d 20 63 6f 75 6e 74  | .end%   = count|
00000eb0  25 0d 0d 20 34 e7 20 77  69 6e 6e 69 6e 67 5f 6d  |%.. 4. winning_m|
00000ec0  6f 76 65 73 25 28 63 6f  75 6e 74 25 2c 30 29 20  |oves%(count%,0) |
00000ed0  3d 20 20 30 20 8c 73 74  61 72 74 25 20 3d 20 63  |=  0 .start% = c|
00000ee0  6f 75 6e 74 25 0d 0d 34  30 fd 20 77 69 6e 6e 69  |ount%..40. winni|
00000ef0  6e 67 5f 6d 6f 76 65 73  25 28 63 6f 75 6e 74 25  |ng_moves%(count%|
00000f00  2c 30 29 20 3d 20 20 30  20 84 20 63 6f 75 6e 74  |,0) =  0 . count|
00000f10  25 20 3d 20 30 0d 0d 48  05 e1 0d 0d 8e 27 dd f2  |% = 0..H.....'..|
00000f20  64 69 73 70 6c 61 79 5f  77 69 6e 5f 6d 6f 76 65  |display_win_move|
00000f30  5f 6f 6e 5f 62 6f 61 72  64 28 73 74 61 72 74 25  |_on_board(start%|
00000f40  29 0d 0d a2 13 e7 20 77  69 6e 6e 65 72 25 20 3d  |)..... winner% =|
00000f50  20 31 20 8c 0d 0d ac 23  63 6f 6c 25 20 3d 20 77  | 1 ....#col% = w|
00000f60  69 6e 6e 69 6e 67 5f 6d  6f 76 65 73 25 28 73 74  |inning_moves%(st|
00000f70  61 72 74 25 2c 30 29 0d  0d b6 23 72 6f 77 25 20  |art%,0)...#row% |
00000f80  3d 20 77 69 6e 6e 69 6e  67 5f 6d 6f 76 65 73 25  |= winning_moves%|
00000f90  28 73 74 61 72 74 25 2c  31 29 0d 0d c0 05 cc 0d  |(start%,1)......|
00000fa0  0d ca 23 63 6f 6c 25 20  3d 20 77 69 6e 6e 69 6e  |..#col% = winnin|
00000fb0  67 5f 6d 6f 76 65 73 25  28 73 74 61 72 74 25 2c  |g_moves%(start%,|
00000fc0  31 29 0d 0d d4 23 72 6f  77 25 20 3d 20 77 69 6e  |1)...#row% = win|
00000fd0  6e 69 6e 67 5f 6d 6f 76  65 73 25 28 73 74 61 72  |ning_moves%(star|
00000fe0  74 25 2c 30 29 0d 0d de  05 cd 0d 0d f2 23 77 69  |t%,0)........#wi|
00000ff0  6e 64 6f 77 5f 79 25 20  3d 20 2d 28 28 31 30 2d  |ndow_y% = -((10-|
00001000  72 6f 77 25 29 2a 35 32  29 2d 31 30 35 0d 0d fc  |row%)*52)-105...|
00001010  26 77 69 6e 64 6f 77 5f  78 25 20 3d 20 28 63 6f  |&window_x% = (co|
00001020  6c 25 2a 37 32 29 2b 28  72 6f 77 25 2a 33 36 29  |l%*72)+(row%*36)|
00001030  2b 31 30 0d 0e 10 2d f2  64 65 6c 65 74 65 5f 69  |+10...-.delete_i|
00001040  63 6f 6e 28 68 65 78 5f  77 69 6e 64 6f 77 25 2c  |con(hex_window%,|
00001050  68 65 78 25 28 63 6f 6c  25 2c 72 6f 77 25 29 29  |hex%(col%,row%))|
00001060  0d 0e 24 13 e7 20 77 69  6e 6e 65 72 25 20 3d 20  |..$.. winner% = |
00001070  31 20 8c 0d 0e 2e 5e 68  65 78 25 28 63 6f 6c 25  |1 ....^hex%(col%|
00001080  2c 72 6f 77 25 29 3d a4  61 64 64 5f 69 63 6f 6e  |,row%)=.add_icon|
00001090  28 22 73 70 72 69 74 65  22 2c 22 77 69 6e 5f 72  |("sprite","win_r|
000010a0  65 64 22 2c 68 65 78 5f  77 69 6e 64 6f 77 25 2c  |ed",hex_window%,|
000010b0  77 69 6e 64 6f 77 5f 78  25 2c 77 69 6e 64 6f 77  |window_x%,window|
000010c0  5f 79 25 2c 30 2c 73 70  72 69 74 65 73 25 2c 30  |_y%,0,sprites%,0|
000010d0  29 0d 0e 38 05 cc 0d 0e  42 5f 68 65 78 25 28 63  |)..8....B_hex%(c|
000010e0  6f 6c 25 2c 72 6f 77 25  29 3d a4 61 64 64 5f 69  |ol%,row%)=.add_i|
000010f0  63 6f 6e 28 22 73 70 72  69 74 65 22 2c 22 77 69  |con("sprite","wi|
00001100  6e 5f 62 6c 75 65 22 2c  68 65 78 5f 77 69 6e 64  |n_blue",hex_wind|
00001110  6f 77 25 2c 77 69 6e 64  6f 77 5f 78 25 2c 77 69  |ow%,window_x%,wi|
00001120  6e 64 6f 77 5f 79 25 2c  30 2c 73 70 72 69 74 65  |ndow_y%,0,sprite|
00001130  73 25 2c 30 29 0d 0e 4c  05 cd 0d 0e 60 05 e1 0d  |s%,0)..L....`...|
00001140  0e a6 1c dd a4 61 64 6a  61 63 65 6e 74 28 73 74  |.....adjacent(st|
00001150  61 72 74 25 2c 20 65 6e  64 25 29 0d 0e ba 30 ea  |art%, end%)...0.|
00001160  20 63 6f 6c 5f 73 74 61  72 74 25 2c 20 72 6f 77  | col_start%, row|
00001170  5f 73 74 61 72 74 25 2c  20 63 6f 6c 5f 65 6e 64  |_start%, col_end|
00001180  25 2c 20 72 6f 77 5f 65  6e 64 25 0d 0e ce 29 63  |%, row_end%...)c|
00001190  6f 6c 5f 73 74 61 72 74  25 20 3d 20 77 69 6e 6e  |ol_start% = winn|
000011a0  69 6e 67 5f 6d 6f 76 65  73 25 28 73 74 61 72 74  |ing_moves%(start|
000011b0  25 2c 30 29 0d 0e d8 29  72 6f 77 5f 73 74 61 72  |%,0)...)row_star|
000011c0  74 25 20 3d 20 77 69 6e  6e 69 6e 67 5f 6d 6f 76  |t% = winning_mov|
000011d0  65 73 25 28 73 74 61 72  74 25 2c 31 29 0d 0e e2  |es%(start%,1)...|
000011e0  27 63 6f 6c 5f 65 6e 64  25 20 20 20 3d 20 77 69  |'col_end%   = wi|
000011f0  6e 6e 69 6e 67 5f 6d 6f  76 65 73 25 28 65 6e 64  |nning_moves%(end|
00001200  25 2c 30 29 0d 0e ec 27  72 6f 77 5f 65 6e 64 25  |%,0)...'row_end%|
00001210  20 20 20 3d 20 77 69 6e  6e 69 6e 67 5f 6d 6f 76  |   = winning_mov|
00001220  65 73 25 28 65 6e 64 25  2c 31 29 0d 0f 00 3c e7  |es%(end%,1)...<.|
00001230  20 63 6f 6c 5f 73 74 61  72 74 25 2d 31 20 3d 20  | col_start%-1 = |
00001240  63 6f 6c 5f 65 6e 64 25  20 80 20 72 6f 77 5f 73  |col_end% . row_s|
00001250  74 61 72 74 25 2b 31 20  3d 20 72 6f 77 5f 65 6e  |tart%+1 = row_en|
00001260  64 25 20 8c 3d 20 b9 0d  0f 0a 3c e7 20 63 6f 6c  |d% .= ....<. col|
00001270  5f 73 74 61 72 74 25 20  20 20 3d 20 63 6f 6c 5f  |_start%   = col_|
00001280  65 6e 64 25 20 80 20 72  6f 77 5f 73 74 61 72 74  |end% . row_start|
00001290  25 2b 31 20 3d 20 72 6f  77 5f 65 6e 64 25 20 8c  |%+1 = row_end% .|
000012a0  3d 20 b9 0d 0f 14 3c e7  20 63 6f 6c 5f 73 74 61  |= ....<. col_sta|
000012b0  72 74 25 2b 31 20 3d 20  63 6f 6c 5f 65 6e 64 25  |rt%+1 = col_end%|
000012c0  20 80 20 72 6f 77 5f 73  74 61 72 74 25 20 20 20  | . row_start%   |
000012d0  3d 20 72 6f 77 5f 65 6e  64 25 20 8c 3d 20 b9 0d  |= row_end% .= ..|
000012e0  0f 1e 3c e7 20 63 6f 6c  5f 73 74 61 72 74 25 2b  |..<. col_start%+|
000012f0  31 20 3d 20 63 6f 6c 5f  65 6e 64 25 20 80 20 72  |1 = col_end% . r|
00001300  6f 77 5f 73 74 61 72 74  25 2d 31 20 3d 20 72 6f  |ow_start%-1 = ro|
00001310  77 5f 65 6e 64 25 20 8c  3d 20 b9 0d 0f 28 3c e7  |w_end% .= ...(<.|
00001320  20 63 6f 6c 5f 73 74 61  72 74 25 20 20 20 3d 20  | col_start%   = |
00001330  63 6f 6c 5f 65 6e 64 25  20 80 20 72 6f 77 5f 73  |col_end% . row_s|
00001340  74 61 72 74 25 2d 31 20  3d 20 72 6f 77 5f 65 6e  |tart%-1 = row_en|
00001350  64 25 20 8c 3d 20 b9 0d  0f 32 3c e7 20 63 6f 6c  |d% .= ...2<. col|
00001360  5f 73 74 61 72 74 25 2d  31 20 3d 20 63 6f 6c 5f  |_start%-1 = col_|
00001370  65 6e 64 25 20 80 20 72  6f 77 5f 73 74 61 72 74  |end% . row_start|
00001380  25 20 20 20 3d 20 72 6f  77 5f 65 6e 64 25 20 8c  |%   = row_end% .|
00001390  3d 20 b9 0d 0f 46 07 3d  20 a3 0d 0f 8c 1a dd f2  |= ...F.= .......|
000013a0  73 68 6f 77 5f 77 69 6e  6e 65 72 5f 6f 6e 5f 62  |show_winner_on_b|
000013b0  6f 61 72 64 0d 0f aa 13  e7 20 77 69 6e 6e 65 72  |oard..... winner|
000013c0  25 20 3d 20 31 20 8c 0d  0f b4 37 f2 70 75 74 5f  |% = 1 ....7.put_|
000013d0  69 63 6f 6e 5f 74 65 78  74 28 68 65 78 5f 77 69  |icon_text(hex_wi|
000013e0  6e 64 6f 77 25 2c 72 65  70 6f 72 74 5f 72 65 64  |ndow%,report_red|
000013f0  25 2c 20 22 20 57 49 4e  4e 45 52 20 22 29 0d 0f  |%, " WINNER ")..|
00001400  be 0f e7 20 72 65 73 69  67 6e 25 20 8c 0d 0f c8  |... resign% ....|
00001410  36 f2 70 75 74 5f 69 63  6f 6e 5f 74 65 78 74 28  |6.put_icon_text(|
00001420  68 65 78 5f 77 69 6e 64  6f 77 25 2c 72 65 70 6f  |hex_window%,repo|
00001430  72 74 5f 62 6c 75 65 25  2c 22 52 65 73 69 67 6e  |rt_blue%,"Resign|
00001440  73 22 29 0d 0f d2 05 cc  0d 0f dc 2f f2 70 75 74  |s")......../.put|
00001450  5f 69 63 6f 6e 5f 74 65  78 74 28 68 65 78 5f 77  |_icon_text(hex_w|
00001460  69 6e 64 6f 77 25 2c 72  65 70 6f 72 74 5f 62 6c  |indow%,report_bl|
00001470  75 65 25 2c 22 22 29 0d  0f e6 05 cd 0d 10 04 31  |ue%,"")........1|
00001480  f2 69 63 6f 6e 5f 62 67  5f 63 6f 6c 6f 75 72 28  |.icon_bg_colour(|
00001490  68 65 78 5f 77 69 6e 64  6f 77 25 2c 72 65 70 6f  |hex_window%,repo|
000014a0  72 74 5f 72 65 64 25 2c  72 65 64 25 29 0d 10 0e  |rt_red%,red%)...|
000014b0  34 f2 69 63 6f 6e 5f 62  67 5f 63 6f 6c 6f 75 72  |4.icon_bg_colour|
000014c0  28 68 65 78 5f 77 69 6e  64 6f 77 25 2c 72 65 70  |(hex_window%,rep|
000014d0  6f 72 74 5f 62 6c 75 65  25 2c 77 68 69 74 65 25  |ort_blue%,white%|
000014e0  29 0d 10 22 05 cc 0d 10  2c 37 f2 70 75 74 5f 69  |).."....,7.put_i|
000014f0  63 6f 6e 5f 74 65 78 74  28 68 65 78 5f 77 69 6e  |con_text(hex_win|
00001500  64 6f 77 25 2c 72 65 70  6f 72 74 5f 62 6c 75 65  |dow%,report_blue|
00001510  25 2c 22 20 57 49 4e 4e  45 52 20 22 29 0d 10 40  |%," WINNER ")..@|
00001520  0f e7 20 72 65 73 69 67  6e 25 20 8c 0d 10 4a 36  |.. resign% ...J6|
00001530  f2 70 75 74 5f 69 63 6f  6e 5f 74 65 78 74 28 68  |.put_icon_text(h|
00001540  65 78 5f 77 69 6e 64 6f  77 25 2c 72 65 70 6f 72  |ex_window%,repor|
00001550  74 5f 72 65 64 25 2c 20  22 52 65 73 69 67 6e 73  |t_red%, "Resigns|
00001560  22 29 0d 10 54 05 cc 0d  10 5e 2f f2 70 75 74 5f  |")..T....^/.put_|
00001570  69 63 6f 6e 5f 74 65 78  74 28 68 65 78 5f 77 69  |icon_text(hex_wi|
00001580  6e 64 6f 77 25 2c 72 65  70 6f 72 74 5f 72 65 64  |ndow%,report_red|
00001590  25 2c 20 22 22 29 0d 10  68 05 cd 0d 10 86 33 f2  |%, "")..h.....3.|
000015a0  69 63 6f 6e 5f 62 67 5f  63 6f 6c 6f 75 72 28 68  |icon_bg_colour(h|
000015b0  65 78 5f 77 69 6e 64 6f  77 25 2c 72 65 70 6f 72  |ex_window%,repor|
000015c0  74 5f 72 65 64 25 2c 77  68 69 74 65 25 29 0d 10  |t_red%,white%)..|
000015d0  90 33 f2 69 63 6f 6e 5f  62 67 5f 63 6f 6c 6f 75  |.3.icon_bg_colou|
000015e0  72 28 68 65 78 5f 77 69  6e 64 6f 77 25 2c 72 65  |r(hex_window%,re|
000015f0  70 6f 72 74 5f 62 6c 75  65 25 2c 62 6c 75 65 25  |port_blue%,blue%|
00001600  29 0d 10 a4 05 cd 0d 10  b8 05 e1 0d 11 4e 13 dd  |)............N..|
00001610  f2 63 6f 6d 70 75 74 65  72 5f 6d 6f 76 65 0d 11  |.computer_move..|
00001620  62 30 e7 20 63 6f 6d 70  5f 63 6f 75 6e 74 25 20  |b0. comp_count% |
00001630  3d 20 30 20 84 20 6c 65  76 65 6c 25 20 3d 20 31  |= 0 . level% = 1|
00001640  20 8c f2 63 6f 70 79 5f  61 72 72 61 79 20 0d 11  | ..copy_array ..|
00001650  76 21 e7 20 6c 65 76 65  6c 25 20 3d 20 31 20 8c  |v!. level% = 1 .|
00001660  63 61 6c 63 73 5f 64 6f  6e 65 25 20 3d 20 b9 0d  |calcs_done% = ..|
00001670  11 8a 15 e7 20 ac 20 63  61 6c 63 73 5f 64 6f 6e  |.... . calcs_don|
00001680  65 25 20 8c 0d 11 9e 28  f2 73 63 6f 72 65 5f 70  |e% ....(.score_p|
00001690  6f 73 73 69 62 6c 65 5f  6d 6f 76 65 73 20 20 20  |ossible_moves   |
000016a0  20 20 20 20 20 20 20 20  20 20 20 20 0d 11 b2 05  |            ....|
000016b0  cc 0d 11 c6 28 f2 62 65  73 74 5f 6d 6f 76 65 20  |....(.best_move |
000016c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000016d0  20 20 20 20 20 20 20 20  20 0d 11 da 28 f2 6d 61  |         ...(.ma|
000016e0  72 6b 5f 6d 6f 76 65 5f  6f 6e 5f 62 6f 61 72 64  |rk_move_on_board|
000016f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001700  20 0d 11 f8 19 70 6c 61  79 65 72 25 20 3d 20 70  | ....player% = p|
00001710  6c 61 79 65 72 25 20 82  20 33 0d 12 0c 28 f2 73  |layer% . 3...(.s|
00001720  65 74 5f 68 65 78 5f 77  69 6e 64 6f 77 5f 69 63  |et_hex_window_ic|
00001730  6f 6e 73 20 20 20 20 20  20 20 20 20 20 20 20 20  |ons             |
00001740  20 20 0d 12 16 28 f2 73  65 74 5f 6d 65 6e 75 5f  |  ...(.set_menu_|
00001750  73 68 61 64 65 73 20 20  20 20 20 20 20 20 20 20  |shades          |
00001760  20 20 20 20 20 20 20 20  20 20 0d 12 2a 13 63 61  |          ..*.ca|
00001770  6c 63 73 5f 64 6f 6e 65  25 20 3d 20 a3 0d 12 34  |lcs_done% = ...4|
00001780  13 63 6f 6d 70 5f 63 6f  75 6e 74 25 20 3d 20 30  |.comp_count% = 0|
00001790  0d 12 48 05 cd 0d 12 5c  05 e1 0d 12 a2 10 dd f2  |..H....\........|
000017a0  63 6f 70 79 5f 61 72 72  61 79 0d 12 fc 0b ea 20  |copy_array..... |
000017b0  58 25 2c 59 25 0d 13 10  13 63 6f 6d 70 75 74 65  |X%,Y%....compute|
000017c0  72 25 28 29 20 3d 20 30  0d 13 2e 13 e7 20 70 6c  |r%() = 0..... pl|
000017d0  61 79 65 72 25 20 3d 20  31 20 8c 0d 13 42 11 e3  |ayer% = 1 ...B..|
000017e0  20 58 25 20 3d 20 30 20  b8 20 31 30 0d 13 4c 11  | X% = 0 . 10..L.|
000017f0  e3 20 59 25 20 3d 20 30  20 b8 20 31 30 0d 13 56  |. Y% = 0 . 10..V|
00001800  2e 63 6f 6d 70 75 74 65  72 25 28 58 25 2c 59 25  |.computer%(X%,Y%|
00001810  2c 31 29 20 3d 20 20 62  6f 61 72 64 5f 73 74 61  |,1) =  board_sta|
00001820  74 75 73 25 28 58 25 2c  59 25 29 0d 13 60 08 ed  |tus%(X%,Y%)..`..|
00001830  20 59 25 0d 13 6a 08 ed  20 58 25 0d 13 7e 05 cc  | Y%..j.. X%..~..|
00001840  0d 13 92 11 e3 20 58 25  20 3d 20 30 20 b8 20 31  |..... X% = 0 . 1|
00001850  30 0d 13 9c 11 e3 20 59  25 20 3d 20 30 20 b8 20  |0..... Y% = 0 . |
00001860  31 30 0d 13 ba 49 e7 20  62 6f 61 72 64 5f 73 74  |10...I. board_st|
00001870  61 74 75 73 25 28 58 25  2c 59 25 29 20 8c 63 6f  |atus%(X%,Y%) .co|
00001880  6d 70 75 74 65 72 25 28  59 25 2c 58 25 2c 31 29  |mputer%(Y%,X%,1)|
00001890  20 3d 20 62 6f 61 72 64  5f 73 74 61 74 75 73 25  | = board_status%|
000018a0  28 58 25 2c 59 25 29 20  82 20 33 0d 13 c4 08 ed  |(X%,Y%) . 3.....|
000018b0  20 59 25 0d 13 ce 08 ed  20 58 25 0d 13 e2 05 cd  | Y%..... X%.....|
000018c0  0d 13 f6 05 e1 0d 14 3c  0f dd f2 62 65 73 74 5f  |.......<...best_|
000018d0  6d 6f 76 65 0d 14 78 38  ea 20 68 69 67 68 65 73  |move..x8. highes|
000018e0  74 25 2c 20 63 6f 75 6e  74 25 2c 20 58 25 2c 20  |t%, count%, X%, |
000018f0  59 25 2c 20 75 73 65 5f  74 68 69 73 5f 68 69 67  |Y%, use_this_hig|
00001900  68 65 73 74 25 2c 20 74  65 6d 70 25 0d 14 8c 12  |hest%, temp%....|
00001910  68 69 67 68 65 73 74 25  20 20 3d 20 2d 31 0d 14  |highest%  = -1..|
00001920  96 11 63 6f 75 6e 74 25  20 20 20 20 3d 20 30 0d  |..count%    = 0.|
00001930  14 a0 0c 63 6f 6c 25 20  3d 20 30 0d 14 aa 0c 72  |...col% = 0....r|
00001940  6f 77 25 20 3d 20 30 0d  14 be 11 e3 20 59 25 20  |ow% = 0..... Y% |
00001950  3d 20 30 20 b8 20 31 30  0d 14 c8 11 e3 20 58 25  |= 0 . 10..... X%|
00001960  20 3d 20 30 20 b8 20 31  30 0d 14 d2 1e e7 20 63  | = 0 . 10..... c|
00001970  6f 6d 70 75 74 65 72 25  28 58 25 2c 59 25 2c 31  |omputer%(X%,Y%,1|
00001980  29 20 3d 20 30 20 8c 0d  14 dc 26 e7 20 63 6f 6d  |) = 0 ....&. com|
00001990  70 75 74 65 72 25 28 58  25 2c 59 25 2c 30 29 20  |puter%(X%,Y%,0) |
000019a0  3e 3d 20 68 69 67 68 65  73 74 25 20 8c 0d 14 e6  |>= highest% ....|
000019b0  0f 63 6f 75 6e 74 25 20  2b 3d 20 31 0d 14 f0 25  |.count% += 1...%|
000019c0  e7 20 63 6f 6d 70 75 74  65 72 25 28 58 25 2c 59  |. computer%(X%,Y|
000019d0  25 2c 30 29 20 3e 20 68  69 67 68 65 73 74 25 20  |%,0) > highest% |
000019e0  8c 0d 14 fa 22 68 69 67  68 65 73 74 25 20 20 3d  |...."highest%  =|
000019f0  20 63 6f 6d 70 75 74 65  72 25 28 58 25 2c 59 25  | computer%(X%,Y%|
00001a00  2c 30 29 0d 15 04 0f 63  6f 6c 25 20 20 20 3d 20  |,0)....col%   = |
00001a10  58 25 0d 15 0e 0f 72 6f  77 25 20 20 20 3d 20 59  |X%....row%   = Y|
00001a20  25 0d 15 18 0e 63 6f 75  6e 74 25 20 3d 20 31 0d  |%....count% = 1.|
00001a30  15 22 05 cd 0d 15 2c 05  cd 0d 15 36 05 cd 0d 15  |."....,....6....|
00001a40  40 08 ed 20 58 25 0d 15  4a 08 ed 20 59 25 0d 15  |@.. X%..J.. Y%..|
00001a50  68 12 e7 20 63 6f 75 6e  74 25 20 3e 20 31 20 8c  |h.. count% > 1 .|
00001a60  0d 15 72 21 75 73 65 5f  74 68 69 73 5f 68 69 67  |..r!use_this_hig|
00001a70  68 65 73 74 25 20 3d 20  b3 28 63 6f 75 6e 74 25  |hest% = .(count%|
00001a80  29 0d 15 7c 0e 63 6f 75  6e 74 25 20 3d 20 30 0d  |)..|.count% = 0.|
00001a90  15 86 0b 59 25 20 3d 20  2d 31 0d 15 90 0d f5 20  |...Y% = -1..... |
00001aa0  59 25 20 2b 3d 20 31 0d  15 9a 0b 58 25 20 3d 20  |Y% += 1....X% = |
00001ab0  2d 31 0d 15 a4 0d f5 20  58 25 20 2b 3d 20 31 0d  |-1..... X% += 1.|
00001ac0  15 ae 3e e7 20 63 6f 6d  70 75 74 65 72 25 28 58  |..>. computer%(X|
00001ad0  25 2c 59 25 2c 31 29 20  3d 20 30 20 80 20 63 6f  |%,Y%,1) = 0 . co|
00001ae0  6d 70 75 74 65 72 25 28  58 25 2c 59 25 2c 30 29  |mputer%(X%,Y%,0)|
00001af0  20 3d 20 68 69 67 68 65  73 74 25 20 8c 0d 15 b8  | = highest% ....|
00001b00  0f 63 6f 75 6e 74 25 20  2b 3d 20 31 0d 15 c2 05  |.count% += 1....|
00001b10  cd 0d 15 cc 2a fd 20 58  25 20 3d 20 31 30 20 84  |....*. X% = 10 .|
00001b20  20 63 6f 75 6e 74 25 20  3d 20 75 73 65 5f 74 68  | count% = use_th|
00001b30  69 73 5f 68 69 67 68 65  73 74 25 0d 15 d6 20 fd  |is_highest%... .|
00001b40  20 63 6f 75 6e 74 25 20  3d 20 75 73 65 5f 74 68  | count% = use_th|
00001b50  69 73 5f 68 69 67 68 65  73 74 25 0d 15 e0 0f 63  |is_highest%....c|
00001b60  6f 6c 25 20 20 20 3d 20  58 25 0d 15 ea 0f 72 6f  |ol%   = X%....ro|
00001b70  77 25 20 20 20 3d 20 59  25 0d 15 f4 05 cd 0d 16  |w%   = Y%.......|
00001b80  08 13 e7 20 70 6c 61 79  65 72 25 20 3d 20 32 20  |... player% = 2 |
00001b90  8c 0d 16 12 10 74 65 6d  70 25 20 3d 20 63 6f 6c  |.....temp% = col|
00001ba0  25 0d 16 1c 10 63 6f 6c  25 20 20 3d 20 72 6f 77  |%....col%  = row|
00001bb0  25 0d 16 26 11 72 6f 77  25 20 20 3d 20 74 65 6d  |%..&.row%  = tem|
00001bc0  70 25 0d 16 30 05 cd 0d  16 44 05 e1 0d 16 8a 3b  |p%..0....D.....;|
00001bd0  dd a4 61 28 70 6c 61 79  65 72 25 29 3a e7 20 63  |..a(player%):. c|
00001be0  6f 6d 70 75 74 65 72 25  28 63 6f 6c 25 2d 32 2c  |omputer%(col%-2,|
00001bf0  72 6f 77 25 2b 32 2c 31  29 20 3d 20 70 6c 61 79  |row%+2,1) = play|
00001c00  65 72 25 20 3d 20 b9 0d  16 94 07 3d 20 a3 0d 16  |er% = .....= ...|
00001c10  b2 3b dd a4 62 28 70 6c  61 79 65 72 25 29 3a e7  |.;..b(player%):.|
00001c20  20 63 6f 6d 70 75 74 65  72 25 28 63 6f 6c 25 2d  | computer%(col%-|
00001c30  31 2c 72 6f 77 25 2b 32  2c 31 29 20 3d 20 70 6c  |1,row%+2,1) = pl|
00001c40  61 79 65 72 25 20 3d 20  b9 0d 16 bc 07 3d 20 a3  |ayer% = .....= .|
00001c50  0d 16 da 39 dd a4 63 28  70 6c 61 79 65 72 25 29  |...9..c(player%)|
00001c60  3a e7 20 63 6f 6d 70 75  74 65 72 25 28 63 6f 6c  |:. computer%(col|
00001c70  25 2c 72 6f 77 25 2b 32  2c 31 29 20 3d 20 70 6c  |%,row%+2,1) = pl|
00001c80  61 79 65 72 25 20 3d 20  b9 0d 16 e4 07 3d 20 a3  |ayer% = .....= .|
00001c90  0d 17 02 3b dd a4 64 28  70 6c 61 79 65 72 25 29  |...;..d(player%)|
00001ca0  3a e7 20 63 6f 6d 70 75  74 65 72 25 28 63 6f 6c  |:. computer%(col|
00001cb0  25 2b 31 2c 72 6f 77 25  2b 32 2c 31 29 20 3d 20  |%+1,row%+2,1) = |
00001cc0  70 6c 61 79 65 72 25 20  3d 20 b9 0d 17 0c 07 3d  |player% = .....=|
00001cd0  20 a3 0d 17 2a 3b dd a4  65 28 70 6c 61 79 65 72  | ...*;..e(player|
00001ce0  25 29 3a e7 20 63 6f 6d  70 75 74 65 72 25 28 63  |%):. computer%(c|
00001cf0  6f 6c 25 2b 32 2c 72 6f  77 25 2b 32 2c 31 29 20  |ol%+2,row%+2,1) |
00001d00  3d 20 70 6c 61 79 65 72  25 20 3d 20 b9 0d 17 34  |= player% = ...4|
00001d10  07 3d 20 a3 0d 17 52 3b  dd a4 66 28 70 6c 61 79  |.= ...R;..f(play|
00001d20  65 72 25 29 3a e7 20 63  6f 6d 70 75 74 65 72 25  |er%):. computer%|
00001d30  28 63 6f 6c 25 2d 32 2c  72 6f 77 25 2b 31 2c 31  |(col%-2,row%+1,1|
00001d40  29 20 3d 20 70 6c 61 79  65 72 25 20 3d 20 b9 0d  |) = player% = ..|
00001d50  17 5c 07 3d 20 a3 0d 17  7a 3b dd a4 67 28 70 6c  |.\.= ...z;..g(pl|
00001d60  61 79 65 72 25 29 3a e7  20 63 6f 6d 70 75 74 65  |ayer%):. compute|
00001d70  72 25 28 63 6f 6c 25 2d  31 2c 72 6f 77 25 2b 31  |r%(col%-1,row%+1|
00001d80  2c 31 29 20 3d 20 70 6c  61 79 65 72 25 20 3d 20  |,1) = player% = |
00001d90  b9 0d 17 84 07 3d 20 a3  0d 17 a2 39 dd a4 68 28  |.....= ....9..h(|
00001da0  70 6c 61 79 65 72 25 29  3a e7 20 63 6f 6d 70 75  |player%):. compu|
00001db0  74 65 72 25 28 63 6f 6c  25 2c 72 6f 77 25 2b 31  |ter%(col%,row%+1|
00001dc0  2c 31 29 20 3d 20 70 6c  61 79 65 72 25 20 3d 20  |,1) = player% = |
00001dd0  b9 0d 17 ac 07 3d 20 a3  0d 17 ca 3b dd a4 69 28  |.....= ....;..i(|
00001de0  70 6c 61 79 65 72 25 29  3a e7 20 63 6f 6d 70 75  |player%):. compu|
00001df0  74 65 72 25 28 63 6f 6c  25 2b 31 2c 72 6f 77 25  |ter%(col%+1,row%|
00001e00  2b 31 2c 31 29 20 3d 20  70 6c 61 79 65 72 25 20  |+1,1) = player% |
00001e10  3d 20 b9 0d 17 d4 07 3d  20 a3 0d 17 f2 3b dd a4  |= .....= ....;..|
00001e20  6a 28 70 6c 61 79 65 72  25 29 3a e7 20 63 6f 6d  |j(player%):. com|
00001e30  70 75 74 65 72 25 28 63  6f 6c 25 2b 32 2c 72 6f  |puter%(col%+2,ro|
00001e40  77 25 2b 31 2c 31 29 20  3d 20 70 6c 61 79 65 72  |w%+1,1) = player|
00001e50  25 20 3d 20 b9 0d 17 fc  07 3d 20 a3 0d 18 1a 39  |% = .....= ....9|
00001e60  dd a4 6b 28 70 6c 61 79  65 72 25 29 3a e7 20 63  |..k(player%):. c|
00001e70  6f 6d 70 75 74 65 72 25  28 63 6f 6c 25 2d 32 2c  |omputer%(col%-2,|
00001e80  72 6f 77 25 2c 31 29 20  3d 20 70 6c 61 79 65 72  |row%,1) = player|
00001e90  25 20 3d 20 b9 0d 18 24  07 3d 20 a3 0d 18 42 39  |% = ...$.= ...B9|
00001ea0  dd a4 6c 28 70 6c 61 79  65 72 25 29 3a e7 20 63  |..l(player%):. c|
00001eb0  6f 6d 70 75 74 65 72 25  28 63 6f 6c 25 2d 31 2c  |omputer%(col%-1,|
00001ec0  72 6f 77 25 2c 31 29 20  3d 20 70 6c 61 79 65 72  |row%,1) = player|
00001ed0  25 20 3d 20 b9 0d 18 4c  07 3d 20 a3 0d 18 6a 39  |% = ...L.= ...j9|
00001ee0  dd a4 6d 28 70 6c 61 79  65 72 25 29 3a e7 20 63  |..m(player%):. c|
00001ef0  6f 6d 70 75 74 65 72 25  28 63 6f 6c 25 2b 31 2c  |omputer%(col%+1,|
00001f00  72 6f 77 25 2c 31 29 20  3d 20 70 6c 61 79 65 72  |row%,1) = player|
00001f10  25 20 3d 20 b9 0d 18 74  07 3d 20 a3 0d 18 92 39  |% = ...t.= ....9|
00001f20  dd a4 6e 28 70 6c 61 79  65 72 25 29 3a e7 20 63  |..n(player%):. c|
00001f30  6f 6d 70 75 74 65 72 25  28 63 6f 6c 25 2b 32 2c  |omputer%(col%+2,|
00001f40  72 6f 77 25 2c 31 29 20  3d 20 70 6c 61 79 65 72  |row%,1) = player|
00001f50  25 20 3d 20 b9 0d 18 9c  07 3d 20 a3 0d 18 ba 3b  |% = .....= ....;|
00001f60  dd a4 6f 28 70 6c 61 79  65 72 25 29 3a e7 20 63  |..o(player%):. c|
00001f70  6f 6d 70 75 74 65 72 25  28 63 6f 6c 25 2d 32 2c  |omputer%(col%-2,|
00001f80  72 6f 77 25 2d 31 2c 31  29 20 3d 20 70 6c 61 79  |row%-1,1) = play|
00001f90  65 72 25 20 3d 20 b9 0d  18 c4 07 3d 20 a3 0d 18  |er% = .....= ...|
00001fa0  e2 3b dd a4 70 28 70 6c  61 79 65 72 25 29 3a e7  |.;..p(player%):.|
00001fb0  20 63 6f 6d 70 75 74 65  72 25 28 63 6f 6c 25 2d  | computer%(col%-|
00001fc0  31 2c 72 6f 77 25 2d 31  2c 31 29 20 3d 20 70 6c  |1,row%-1,1) = pl|
00001fd0  61 79 65 72 25 20 3d 20  b9 0d 18 ec 07 3d 20 a3  |ayer% = .....= .|
00001fe0  0d 19 0a 39 dd a4 71 28  70 6c 61 79 65 72 25 29  |...9..q(player%)|
00001ff0  3a e7 20 63 6f 6d 70 75  74 65 72 25 28 63 6f 6c  |:. computer%(col|
00002000  25 2c 72 6f 77 25 2d 31  2c 31 29 20 3d 20 70 6c  |%,row%-1,1) = pl|
00002010  61 79 65 72 25 20 3d 20  b9 0d 19 14 07 3d 20 a3  |ayer% = .....= .|
00002020  0d 19 32 3b dd a4 72 28  70 6c 61 79 65 72 25 29  |..2;..r(player%)|
00002030  3a e7 20 63 6f 6d 70 75  74 65 72 25 28 63 6f 6c  |:. computer%(col|
00002040  25 2b 31 2c 72 6f 77 25  2d 31 2c 31 29 20 3d 20  |%+1,row%-1,1) = |
00002050  70 6c 61 79 65 72 25 20  3d 20 b9 0d 19 3c 07 3d  |player% = ...<.=|
00002060  20 a3 0d 19 5a 3b dd a4  73 28 70 6c 61 79 65 72  | ...Z;..s(player|
00002070  25 29 3a e7 20 63 6f 6d  70 75 74 65 72 25 28 63  |%):. computer%(c|
00002080  6f 6c 25 2b 32 2c 72 6f  77 25 2d 31 2c 31 29 20  |ol%+2,row%-1,1) |
00002090  3d 20 70 6c 61 79 65 72  25 20 3d 20 b9 0d 19 64  |= player% = ...d|
000020a0  07 3d 20 a3 0d 19 82 3b  dd a4 74 28 70 6c 61 79  |.= ....;..t(play|
000020b0  65 72 25 29 3a e7 20 63  6f 6d 70 75 74 65 72 25  |er%):. computer%|
000020c0  28 63 6f 6c 25 2d 32 2c  72 6f 77 25 2d 32 2c 31  |(col%-2,row%-2,1|
000020d0  29 20 3d 20 70 6c 61 79  65 72 25 20 3d 20 b9 0d  |) = player% = ..|
000020e0  19 8c 07 3d 20 a3 0d 19  aa 3b dd a4 75 28 70 6c  |...= ....;..u(pl|
000020f0  61 79 65 72 25 29 3a e7  20 63 6f 6d 70 75 74 65  |ayer%):. compute|
00002100  72 25 28 63 6f 6c 25 2d  31 2c 72 6f 77 25 2d 32  |r%(col%-1,row%-2|
00002110  2c 31 29 20 3d 20 70 6c  61 79 65 72 25 20 3d 20  |,1) = player% = |
00002120  b9 0d 19 b4 07 3d 20 a3  0d 19 d2 39 dd a4 76 28  |.....= ....9..v(|
00002130  70 6c 61 79 65 72 25 29  3a e7 20 63 6f 6d 70 75  |player%):. compu|
00002140  74 65 72 25 28 63 6f 6c  25 2c 72 6f 77 25 2d 32  |ter%(col%,row%-2|
00002150  2c 31 29 20 3d 20 70 6c  61 79 65 72 25 20 3d 20  |,1) = player% = |
00002160  b9 0d 19 dc 07 3d 20 a3  0d 19 fa 3b dd a4 77 28  |.....= ....;..w(|
00002170  70 6c 61 79 65 72 25 29  3a e7 20 63 6f 6d 70 75  |player%):. compu|
00002180  74 65 72 25 28 63 6f 6c  25 2b 31 2c 72 6f 77 25  |ter%(col%+1,row%|
00002190  2d 32 2c 31 29 20 3d 20  70 6c 61 79 65 72 25 20  |-2,1) = player% |
000021a0  3d 20 b9 0d 1a 04 07 3d  20 a3 0d 1a 22 3b dd a4  |= .....= ...";..|
000021b0  78 28 70 6c 61 79 65 72  25 29 3a e7 20 63 6f 6d  |x(player%):. com|
000021c0  70 75 74 65 72 25 28 63  6f 6c 25 2b 32 2c 72 6f  |puter%(col%+2,ro|
000021d0  77 25 2d 32 2c 31 29 20  3d 20 70 6c 61 79 65 72  |w%-2,1) = player|
000021e0  25 20 3d 20 b9 0d 1a 2c  07 3d 20 a3 0d 1a 4a 3c  |% = ...,.= ...J<|
000021f0  dd a4 61 61 28 70 6c 61  79 65 72 25 29 3a e7 20  |..aa(player%):. |
00002200  63 6f 6d 70 75 74 65 72  25 28 63 6f 6c 25 2d 34  |computer%(col%-4|
00002210  2c 72 6f 77 25 2b 32 2c  31 29 20 3d 20 70 6c 61  |,row%+2,1) = pla|
00002220  79 65 72 25 20 3d 20 b9  0d 1a 54 07 3d 20 a3 0d  |yer% = ...T.= ..|
00002230  1a 72 3c dd a4 61 62 28  70 6c 61 79 65 72 25 29  |.r<..ab(player%)|
00002240  3a e7 20 63 6f 6d 70 75  74 65 72 25 28 63 6f 6c  |:. computer%(col|
00002250  25 2d 33 2c 72 6f 77 25  2b 32 2c 31 29 20 3d 20  |%-3,row%+2,1) = |
00002260  70 6c 61 79 65 72 25 20  3d 20 b9 0d 1a 7c 07 3d  |player% = ...|.=|
00002270  20 a3 0d 1a 9a 3c dd a4  61 63 28 70 6c 61 79 65  | ....<..ac(playe|
00002280  72 25 29 3a e7 20 63 6f  6d 70 75 74 65 72 25 28  |r%):. computer%(|
00002290  63 6f 6c 25 2d 33 2c 72  6f 77 25 2b 31 2c 31 29  |col%-3,row%+1,1)|
000022a0  20 3d 20 70 6c 61 79 65  72 25 20 3d 20 b9 0d 1a  | = player% = ...|
000022b0  a4 07 3d 20 a3 0d 1a c2  3c dd a4 62 61 28 70 6c  |..= ....<..ba(pl|
000022c0  61 79 65 72 25 29 3a e7  20 63 6f 6d 70 75 74 65  |ayer%):. compute|
000022d0  72 25 28 63 6f 6c 25 2b  34 2c 72 6f 77 25 2d 32  |r%(col%+4,row%-2|
000022e0  2c 31 29 20 3d 20 70 6c  61 79 65 72 25 20 3d 20  |,1) = player% = |
000022f0  b9 0d 1a cc 07 3d 20 a3  0d 1a ea 3c dd a4 62 62  |.....= ....<..bb|
00002300  28 70 6c 61 79 65 72 25  29 3a e7 20 63 6f 6d 70  |(player%):. comp|
00002310  75 74 65 72 25 28 63 6f  6c 25 2b 33 2c 72 6f 77  |uter%(col%+3,row|
00002320  25 2d 31 2c 31 29 20 3d  20 70 6c 61 79 65 72 25  |%-1,1) = player%|
00002330  20 3d 20 b9 0d 1a f4 07  3d 20 a3 0d 1b 12 3c dd  | = .....= ....<.|
00002340  a4 62 63 28 70 6c 61 79  65 72 25 29 3a e7 20 63  |.bc(player%):. c|
00002350  6f 6d 70 75 74 65 72 25  28 63 6f 6c 25 2b 33 2c  |omputer%(col%+3,|
00002360  72 6f 77 25 2d 32 2c 31  29 20 3d 20 70 6c 61 79  |row%-2,1) = play|
00002370  65 72 25 20 3d 20 b9 0d  1b 1c 07 3d 20 a3 0d 1b  |er% = .....= ...|
00002380  3a 3c dd a4 63 61 28 70  6c 61 79 65 72 25 29 3a  |:<..ca(player%):|
00002390  e7 20 63 6f 6d 70 75 74  65 72 25 28 63 6f 6c 25  |. computer%(col%|
000023a0  2d 32 2c 72 6f 77 25 2b  34 2c 31 29 20 3d 20 70  |-2,row%+4,1) = p|
000023b0  6c 61 79 65 72 25 20 3d  20 b9 0d 1b 44 07 3d 20  |layer% = ...D.= |
000023c0  a3 0d 1b 62 3c dd a4 63  62 28 70 6c 61 79 65 72  |...b<..cb(player|
000023d0  25 29 3a e7 20 63 6f 6d  70 75 74 65 72 25 28 63  |%):. computer%(c|
000023e0  6f 6c 25 2d 32 2c 72 6f  77 25 2b 33 2c 31 29 20  |ol%-2,row%+3,1) |
000023f0  3d 20 70 6c 61 79 65 72  25 20 3d 20 b9 0d 1b 6c  |= player% = ...l|
00002400  07 3d 20 a3 0d 1b 8a 3c  dd a4 63 63 28 70 6c 61  |.= ....<..cc(pla|
00002410  79 65 72 25 29 3a e7 20  63 6f 6d 70 75 74 65 72  |yer%):. computer|
00002420  25 28 63 6f 6c 25 2d 31  2c 72 6f 77 25 2b 33 2c  |%(col%-1,row%+3,|
00002430  31 29 20 3d 20 70 6c 61  79 65 72 25 20 3d 20 b9  |1) = player% = .|
00002440  0d 1b 94 07 3d 20 a3 0d  1b b2 3c dd a4 64 61 28  |....= ....<..da(|
00002450  70 6c 61 79 65 72 25 29  3a e7 20 63 6f 6d 70 75  |player%):. compu|
00002460  74 65 72 25 28 63 6f 6c  25 2b 32 2c 72 6f 77 25  |ter%(col%+2,row%|
00002470  2d 34 2c 31 29 20 3d 20  70 6c 61 79 65 72 25 20  |-4,1) = player% |
00002480  3d 20 b9 0d 1b bc 07 3d  20 a3 0d 1b da 3c dd a4  |= .....= ....<..|
00002490  64 62 28 70 6c 61 79 65  72 25 29 3a e7 20 63 6f  |db(player%):. co|
000024a0  6d 70 75 74 65 72 25 28  63 6f 6c 25 2b 31 2c 72  |mputer%(col%+1,r|
000024b0  6f 77 25 2d 33 2c 31 29  20 3d 20 70 6c 61 79 65  |ow%-3,1) = playe|
000024c0  72 25 20 3d 20 b9 0d 1b  e4 07 3d 20 a3 0d 1c 02  |r% = .....= ....|
000024d0  3c dd a4 64 63 28 70 6c  61 79 65 72 25 29 3a e7  |<..dc(player%):.|
000024e0  20 63 6f 6d 70 75 74 65  72 25 28 63 6f 6c 25 2b  | computer%(col%+|
000024f0  32 2c 72 6f 77 25 2d 33  2c 31 29 20 3d 20 70 6c  |2,row%-3,1) = pl|
00002500  61 79 65 72 25 20 3d 20  b9 0d 1c 0c 07 3d 20 a3  |ayer% = .....= .|
00002510  0d 1c 2a 3a dd a4 65 61  28 70 6c 61 79 65 72 25  |..*:..ea(player%|
00002520  29 3a e7 20 63 6f 6d 70  75 74 65 72 25 28 63 6f  |):. computer%(co|
00002530  6c 25 2d 33 2c 72 6f 77  25 2c 31 29 20 3d 20 70  |l%-3,row%,1) = p|
00002540  6c 61 79 65 72 25 20 3d  20 b9 0d 1c 34 07 3d 20  |layer% = ...4.= |
00002550  a3 0d 1c 52 3c dd a4 65  62 28 70 6c 61 79 65 72  |...R<..eb(player|
00002560  25 29 3a e7 20 63 6f 6d  70 75 74 65 72 25 28 63  |%):. computer%(c|
00002570  6f 6c 25 2d 33 2c 72 6f  77 25 2b 33 2c 31 29 20  |ol%-3,row%+3,1) |
00002580  3d 20 70 6c 61 79 65 72  25 20 3d 20 b9 0d 1c 5c  |= player% = ...\|
00002590  07 3d 20 a3 0d 1c 7a 3c  dd a4 65 63 28 70 6c 61  |.= ...z<..ec(pla|
000025a0  79 65 72 25 29 3a e7 20  63 6f 6d 70 75 74 65 72  |yer%):. computer|
000025b0  25 28 63 6f 6c 25 2b 32  2c 72 6f 77 25 2d 32 2c  |%(col%+2,row%-2,|
000025c0  31 29 20 3d 20 70 6c 61  79 65 72 25 20 3d 20 b9  |1) = player% = .|
000025d0  0d 1c 84 07 3d 20 a3 0d  1c a2 3a dd a4 65 64 28  |....= ....:..ed(|
000025e0  70 6c 61 79 65 72 25 29  3a e7 20 63 6f 6d 70 75  |player%):. compu|
000025f0  74 65 72 25 28 63 6f 6c  25 2b 33 2c 72 6f 77 25  |ter%(col%+3,row%|
00002600  2c 31 29 20 3d 20 70 6c  61 79 65 72 25 20 3d 20  |,1) = player% = |
00002610  b9 0d 1c ac 07 3d 20 a3  0d 1c ca 3c dd a4 65 66  |.....= ....<..ef|
00002620  28 70 6c 61 79 65 72 25  29 3a e7 20 63 6f 6d 70  |(player%):. comp|
00002630  75 74 65 72 25 28 63 6f  6c 25 2b 33 2c 72 6f 77  |uter%(col%+3,row|
00002640  25 2d 33 2c 31 29 20 3d  20 70 6c 61 79 65 72 25  |%-3,1) = player%|
00002650  20 3d 20 b9 0d 1c d4 07  3d 20 a3 0d 1c f2 3a dd  | = .....= ....:.|
00002660  a4 65 67 28 70 6c 61 79  65 72 25 29 3a e7 20 63  |.eg(player%):. c|
00002670  6f 6d 70 75 74 65 72 25  28 63 6f 6c 25 2c 72 6f  |omputer%(col%,ro|
00002680  77 25 2d 33 2c 31 29 20  3d 20 70 6c 61 79 65 72  |w%-3,1) = player|
00002690  25 20 3d 20 b9 0d 1c fc  07 3d 20 a3 0d 1d 4c 1a  |% = .....= ...L.|
000026a0  dd f2 73 63 6f 72 65 5f  70 6f 73 73 69 62 6c 65  |..score_possible|
000026b0  5f 6d 6f 76 65 73 0d 1d  60 11 e7 20 6d 6f 76 65  |_moves..`.. move|
000026c0  25 20 3d 20 31 20 8c 0d  1d 6a 0f c8 8e 20 6c 65  |% = 1 ...j... le|
000026d0  76 65 6c 25 20 ca 0d 1d  74 17 c9 20 33 20 20 20  |vel% ...t.. 3   |
000026e0  3a f2 6c 5f 33 5f 69 6e  69 74 69 61 6c 0d 1d 7e  |:.l_3_initial..~|
000026f0  19 c9 20 34 2c 35 20 3a  f2 6c 5f 34 5f 35 5f 69  |.. 4,5 :.l_4_5_i|
00002700  6e 69 74 69 61 6c 0d 1d  88 05 cb 0d 1d 92 05 cd  |nitial..........|
00002710  0d 1d a6 14 63 6f 6d 70  5f 63 6f 75 6e 74 25 20  |....comp_count% |
00002720  2b 3d 20 31 0d 1d ba 14  c8 8e 20 63 6f 6d 70 5f  |+= 1...... comp_|
00002730  63 6f 75 6e 74 25 20 ca  0d 1d ce 0e c9 20 20 31  |count% ......  1|
00002740  20 3a f2 5f 30 61 0d 1d  d8 0e c9 20 20 32 20 3a  | :._0a.....  2 :|
00002750  f2 5f 30 62 0d 1d e2 0e  c9 20 20 33 20 3a f2 5f  |._0b.....  3 :._|
00002760  30 63 0d 1d ec 0e c9 20  20 34 20 3a f2 5f 30 64  |0c.....  4 :._0d|
00002770  0d 1e 00 0e c9 20 20 35  20 3a f2 5f 31 61 0d 1e  |.....  5 :._1a..|
00002780  0a 0e c9 20 20 36 20 3a  f2 5f 31 62 0d 1e 14 0e  |...  6 :._1b....|
00002790  c9 20 20 37 20 3a f2 5f  31 63 0d 1e 1e 0e c9 20  |.  7 :._1c..... |
000027a0  20 38 20 3a f2 5f 31 64  0d 1e 28 0e c9 20 20 39  | 8 :._1d..(..  9|
000027b0  20 3a f2 5f 31 65 0d 1e  32 2d c9 20 31 30 20 3a  | :._1e..2-. 10 :|
000027c0  f2 5f 31 66 20 3a e7 20  6c 65 76 65 6c 25 20 3d  |._1f :. level% =|
000027d0  20 32 20 8c 63 61 6c 63  73 5f 64 6f 6e 65 25 20  | 2 .calcs_done% |
000027e0  3d 20 b9 0d 1e 46 0e c9  20 31 31 20 3a f2 5f 32  |= ...F.. 11 :._2|
000027f0  61 0d 1e 50 0e c9 20 31  32 20 3a f2 5f 32 62 0d  |a..P.. 12 :._2b.|
00002800  1e 5a 0e c9 20 31 33 20  3a f2 5f 32 63 0d 1e 64  |.Z.. 13 :._2c..d|
00002810  0e c9 20 31 34 20 3a f2  5f 32 64 0d 1e 6e 0e c9  |.. 14 :._2d..n..|
00002820  20 31 35 20 3a f2 5f 32  65 0d 1e 78 2d c9 20 31  | 15 :._2e..x-. 1|
00002830  36 20 3a f2 5f 32 66 20  3a e7 20 6c 65 76 65 6c  |6 :._2f :. level|
00002840  25 20 3d 20 33 20 8c 63  61 6c 63 73 5f 64 6f 6e  |% = 3 .calcs_don|
00002850  65 25 20 3d 20 b9 0d 1e  8c 0e c9 20 31 37 20 3a  |e% = ...... 17 :|
00002860  f2 5f 33 61 0d 1e 96 2d  c9 20 31 38 20 3a f2 5f  |._3a...-. 18 :._|
00002870  33 62 20 3a e7 20 6c 65  76 65 6c 25 20 3d 20 34  |3b :. level% = 4|
00002880  20 8c 63 61 6c 63 73 5f  64 6f 6e 65 25 20 3d 20  | .calcs_done% = |
00002890  b9 0d 1e aa 0e c9 20 31  39 20 3a f2 5f 34 61 0d  |...... 19 :._4a.|
000028a0  1e b4 0e c9 20 32 30 20  3a f2 5f 34 62 0d 1e c8  |.... 20 :._4b...|
000028b0  0e c9 20 32 31 20 3a f2  5f 35 61 0d 1e d2 1f c9  |.. 21 :._5a.....|
000028c0  20 32 32 20 3a f2 5f 35  62 20 3a 63 61 6c 63 73  | 22 :._5b :calcs|
000028d0  5f 64 6f 6e 65 25 20 3d  20 b9 0d 1e e6 05 cb 0d  |_done% = .......|
000028e0  1e fa 05 e1 0d 1f 40 11  dd f2 6c 5f 33 5f 69 6e  |......@...l_3_in|
000028f0  69 74 69 61 6c 0d 1f 68  18 63 6f 6d 70 75 74 65  |itial..h.compute|
00002900  72 25 28 35 2c 35 2c 30  29 20 3d 20 31 0d 1f 72  |r%(5,5,0) = 1..r|
00002910  18 63 6f 6d 70 75 74 65  72 25 28 34 2c 35 2c 30  |.computer%(4,5,0|
00002920  29 20 3d 20 31 0d 1f 7c  18 63 6f 6d 70 75 74 65  |) = 1..|.compute|
00002930  72 25 28 34 2c 36 2c 30  29 20 3d 20 31 0d 1f 86  |r%(4,6,0) = 1...|
00002940  18 63 6f 6d 70 75 74 65  72 25 28 35 2c 36 2c 30  |.computer%(5,6,0|
00002950  29 20 3d 20 31 0d 1f 90  18 63 6f 6d 70 75 74 65  |) = 1....compute|
00002960  72 25 28 36 2c 35 2c 30  29 20 3d 20 31 0d 1f 9a  |r%(6,5,0) = 1...|
00002970  18 63 6f 6d 70 75 74 65  72 25 28 36 2c 34 2c 30  |.computer%(6,4,0|
00002980  29 20 3d 20 31 0d 1f a4  18 63 6f 6d 70 75 74 65  |) = 1....compute|
00002990  72 25 28 35 2c 34 2c 30  29 20 3d 20 31 0d 1f b8  |r%(5,4,0) = 1...|
000029a0  05 e1 0d 1f fe 13 dd f2  6c 5f 34 5f 35 5f 69 6e  |........l_4_5_in|
000029b0  69 74 69 61 6c 0d 20 1c  18 63 6f 6d 70 75 74 65  |itial. ..compute|
000029c0  72 25 28 35 2c 35 2c 30  29 20 3d 20 31 0d 20 30  |r%(5,5,0) = 1. 0|
000029d0  05 e1 0d 20 76 09 dd f2  5f 30 61 0d 20 8a 10 ea  |... v..._0a. ...|
000029e0  20 63 6f 6c 25 2c 20 72  6f 77 25 0d 20 9e 13 e3  | col%, row%. ...|
000029f0  20 63 6f 6c 25 20 3d 20  30 20 b8 20 31 30 0d 20  | col% = 0 . 10. |
00002a00  a8 12 e3 20 72 6f 77 25  20 3d 20 30 20 b8 20 39  |... row% = 0 . 9|
00002a10  0d 20 c6 23 e7 20 63 6f  6d 70 75 74 65 72 25 28  |. .#. computer%(|
00002a20  63 6f 6c 25 2c 72 6f 77  25 2c 20 31 29 20 3d 20  |col%,row%, 1) = |
00002a30  30 20 8c 0d 20 e4 0d e7  20 a4 68 28 32 29 20 8c  |0 .. ... .h(2) .|
00002a40  0d 21 02 17 e7 20 63 6f  6c 25 20 2b 20 72 6f 77  |.!... col% + row|
00002a50  25 20 3e 20 39 20 8c 0d  21 0c 21 63 6f 6d 70 75  |% > 9 ..!.!compu|
00002a60  74 65 72 25 28 63 6f 6c  25 2c 72 6f 77 25 2c 20  |ter%(col%,row%, |
00002a70  30 29 20 2b 3d 20 31 30  0d 21 20 05 cc 0d 21 2a  |0) += 10.! ...!*|
00002a80  20 63 6f 6d 70 75 74 65  72 25 28 63 6f 6c 25 2c  | computer%(col%,|
00002a90  72 6f 77 25 2c 20 30 29  20 2b 3d 20 35 0d 21 34  |row%, 0) += 5.!4|
00002aa0  05 cd 0d 21 48 34 e7 20  6c 65 76 65 6c 25 20 3d  |...!H4. level% =|
00002ab0  20 35 20 80 20 63 6f 6c  25 20 3e 20 30 20 80 20  | 5 . col% > 0 . |
00002ac0  63 6f 6c 25 20 3c 20 31  30 20 80 20 72 6f 77 25  |col% < 10 . row%|
00002ad0  20 3c 20 39 20 8c 0d 21  52 28 e7 20 a4 62 28 32  | < 9 ..!R(. .b(2|
00002ae0  29 20 63 6f 6d 70 75 74  65 72 25 28 63 6f 6c 25  |) computer%(col%|
00002af0  2c 72 6f 77 25 2c 20 30  29 20 2b 3d 20 31 0d 21  |,row%, 0) += 1.!|
00002b00  5c 28 e7 20 a4 63 28 32  29 20 63 6f 6d 70 75 74  |\(. .c(2) comput|
00002b10  65 72 25 28 63 6f 6c 25  2c 72 6f 77 25 2c 20 30  |er%(col%,row%, 0|
00002b20  29 20 2b 3d 20 31 0d 21  66 40 e7 20 a4 67 28 31  |) += 1.!f@. .g(1|
00002b30  29 20 80 20 a4 62 28 31  29 20 80 20 a4 63 28 31  |) . .b(1) . .c(1|
00002b40  29 20 80 20 a4 69 28 31  29 20 8c 63 6f 6d 70 75  |) . .i(1) .compu|
00002b50  74 65 72 25 28 63 6f 6c  25 2c 72 6f 77 25 2c 20  |ter%(col%,row%, |
00002b60  30 29 20 3d 20 30 0d 21  70 05 cd 0d 21 84 05 cd  |0) = 0.!p...!...|
00002b70  0d 21 8e 05 cd 0d 21 a2  0a ed 20 72 6f 77 25 0d  |.!....!... row%.|
00002b80  21 ac 0a ed 20 63 6f 6c  25 0d 21 c0 05 e1 0d 22  |!... col%.!...."|
00002b90  06 09 dd f2 5f 30 62 0d  22 1a 10 ea 20 63 6f 6c  |...._0b."... col|
00002ba0  25 2c 20 72 6f 77 25 0d  22 2e 13 e3 20 63 6f 6c  |%, row%."... col|
00002bb0  25 20 3d 20 30 20 b8 20  31 30 0d 22 38 13 e3 20  |% = 0 . 10."8.. |
00002bc0  72 6f 77 25 20 3d 20 31  20 b8 20 31 30 0d 22 4c  |row% = 1 . 10."L|
00002bd0  23 e7 20 63 6f 6d 70 75  74 65 72 25 28 63 6f 6c  |#. computer%(col|
00002be0  25 2c 72 6f 77 25 2c 20  31 29 20 3d 20 30 20 8c  |%,row%, 1) = 0 .|
00002bf0  0d 22 6a 0d e7 20 a4 71  28 32 29 20 8c 0d 22 88  |."j.. .q(2) ..".|
00002c00  18 e7 20 63 6f 6c 25 20  2b 20 72 6f 77 25 20 3c  |.. col% + row% <|
00002c10  20 31 31 20 8c 0d 22 92  21 63 6f 6d 70 75 74 65  | 11 ..".!compute|
00002c20  72 25 28 63 6f 6c 25 2c  72 6f 77 25 2c 20 30 29  |r%(col%,row%, 0)|
00002c30  20 2b 3d 20 31 30 0d 22  a6 05 cc 0d 22 b0 20 63  | += 10."....". c|
00002c40  6f 6d 70 75 74 65 72 25  28 63 6f 6c 25 2c 72 6f  |omputer%(col%,ro|
00002c50  77 25 2c 20 30 29 20 2b  3d 20 35 0d 22 ba 05 cd  |w%, 0) += 5."...|
00002c60  0d 22 ce 34 e7 20 6c 65  76 65 6c 25 20 3d 20 35  |.".4. level% = 5|
00002c70  20 80 20 63 6f 6c 25 20  3e 20 30 20 80 20 63 6f  | . col% > 0 . co|
00002c80  6c 25 20 3c 20 31 30 20  80 20 72 6f 77 25 20 3e  |l% < 10 . row% >|
00002c90  20 31 20 8c 0d 22 d8 28  e7 20 a4 76 28 32 29 20  | 1 ..".(. .v(2) |
00002ca0  63 6f 6d 70 75 74 65 72  25 28 63 6f 6c 25 2c 72  |computer%(col%,r|
00002cb0  6f 77 25 2c 20 30 29 20  2b 3d 20 31 0d 22 e2 28  |ow%, 0) += 1.".(|
00002cc0  e7 20 a4 77 28 32 29 20  63 6f 6d 70 75 74 65 72  |. .w(2) computer|
00002cd0  25 28 63 6f 6c 25 2c 72  6f 77 25 2c 20 30 29 20  |%(col%,row%, 0) |
00002ce0  2b 3d 20 31 0d 22 ec 40  e7 20 a4 70 28 31 29 20  |+= 1.".@. .p(1) |
00002cf0  80 20 a4 76 28 31 29 20  80 20 a4 77 28 31 29 20  |. .v(1) . .w(1) |
00002d00  80 20 a4 72 28 31 29 20  8c 63 6f 6d 70 75 74 65  |. .r(1) .compute|
00002d10  72 25 28 63 6f 6c 25 2c  72 6f 77 25 2c 20 30 29  |r%(col%,row%, 0)|
00002d20  20 3d 20 30 0d 22 f6 05  cd 0d 23 0a 05 cd 0d 23  | = 0."....#....#|
00002d30  14 05 cd 0d 23 28 0a ed  20 72 6f 77 25 0d 23 32  |....#(.. row%.#2|
00002d40  0a ed 20 63 6f 6c 25 0d  23 46 05 e1 0d 23 8c 09  |.. col%.#F...#..|
00002d50  dd f2 5f 30 63 0d 23 a0  10 ea 20 63 6f 6c 25 2c  |.._0c.#... col%,|
00002d60  20 72 6f 77 25 0d 23 b4  12 e3 20 63 6f 6c 25 20  | row%.#... col% |
00002d70  3d 20 30 20 b8 20 39 0d  23 be 13 e3 20 72 6f 77  |= 0 . 9.#... row|
00002d80  25 20 3d 20 31 20 b8 20  31 30 0d 23 d2 23 e7 20  |% = 1 . 10.#.#. |
00002d90  63 6f 6d 70 75 74 65 72  25 28 63 6f 6c 25 2c 72  |computer%(col%,r|
00002da0  6f 77 25 2c 20 31 29 20  3d 20 30 20 8c 0d 23 f0  |ow%, 1) = 0 ..#.|
00002db0  0d e7 20 a4 72 28 32 29  20 8c 0d 23 fa 20 63 6f  |.. .r(2) ..#. co|
00002dc0  6d 70 75 74 65 72 25 28  63 6f 6c 25 2c 72 6f 77  |mputer%(col%,row|
00002dd0  25 2c 20 30 29 20 2b 3d  20 32 0d 24 22 1e e7 20  |%, 0) += 2.$".. |
00002de0  63 6f 6c 25 20 2b 20 72  6f 77 25 20 3e 39 20 80  |col% + row% >9 .|
00002df0  20 a4 6d 28 31 29 20 8c  0d 24 2c 21 63 6f 6d 70  | .m(1) ..$,!comp|
00002e00  75 74 65 72 25 28 63 6f  6c 25 2c 72 6f 77 25 2c  |uter%(col%,row%,|
00002e10  20 30 29 20 2b 3d 20 31  30 0d 24 36 05 cd 0d 24  | 0) += 10.$6...$|
00002e20  4a 28 e7 20 6c 65 76 65  6c 25 20 3d 20 35 20 80  |J(. level% = 5 .|
00002e30  20 63 6f 6c 25 20 3c 20  39 20 80 20 72 6f 77 25  | col% < 9 . row%|
00002e40  20 3e 20 31 20 8c 0d 24  54 28 e7 20 a4 77 28 32  | > 1 ..$T(. .w(2|
00002e50  29 20 63 6f 6d 70 75 74  65 72 25 28 63 6f 6c 25  |) computer%(col%|
00002e60  2c 72 6f 77 25 2c 20 30  29 20 2b 3d 20 31 0d 24  |,row%, 0) += 1.$|
00002e70  5e 28 e7 20 a4 78 28 32  29 20 63 6f 6d 70 75 74  |^(. .x(2) comput|
00002e80  65 72 25 28 63 6f 6c 25  2c 72 6f 77 25 2c 20 30  |er%(col%,row%, 0|
00002e90  29 20 2b 3d 20 31 0d 24  68 40 e7 20 a4 71 28 31  |) += 1.$h@. .q(1|
00002ea0  29 20 80 20 a4 77 28 31  29 20 80 20 a4 78 28 31  |) . .w(1) . .x(1|
00002eb0  29 20 80 20 a4 73 28 31  29 20 8c 63 6f 6d 70 75  |) . .s(1) .compu|
00002ec0  74 65 72 25 28 63 6f 6c  25 2c 72 6f 77 25 2c 20  |ter%(col%,row%, |
00002ed0  30 29 20 3d 20 30 0d 24  72 05 cd 0d 24 86 05 cd  |0) = 0.$r...$...|
00002ee0  0d 24 90 05 cd 0d 24 a4  0a ed 20 72 6f 77 25 0d  |.$....$... row%.|
00002ef0  24 ae 0a ed 20 63 6f 6c  25 0d 24 c2 05 e1 0d 25  |$... col%.$....%|
00002f00  08 09 dd f2 5f 30 64 0d  25 1c 10 ea 20 63 6f 6c  |...._0d.%... col|
00002f10  25 2c 20 72 6f 77 25 0d  25 30 13 e3 20 63 6f 6c  |%, row%.%0.. col|
00002f20  25 20 3d 20 31 20 b8 20  31 30 0d 25 3a 12 e3 20  |% = 1 . 10.%:.. |
00002f30  72 6f 77 25 20 3d 20 30  20 b8 20 39 0d 25 4e 23  |row% = 0 . 9.%N#|
00002f40  e7 20 63 6f 6d 70 75 74  65 72 25 28 63 6f 6c 25  |. computer%(col%|
00002f50  2c 72 6f 77 25 2c 20 31  29 20 3d 20 30 20 8c 0d  |,row%, 1) = 0 ..|
00002f60  25 6c 0d e7 20 a4 67 28  32 29 20 8c 0d 25 76 20  |%l.. .g(2) ..%v |
00002f70  63 6f 6d 70 75 74 65 72  25 28 63 6f 6c 25 2c 72  |computer%(col%,r|
00002f80  6f 77 25 2c 20 30 29 20  2b 3d 20 32 0d 25 9e 1f  |ow%, 0) += 2.%..|
00002f90  e7 20 63 6f 6c 25 20 2b  20 72 6f 77 25 20 3c 31  |. col% + row% <1|
00002fa0  31 20 80 20 a4 6c 28 31  29 20 8c 0d 25 a8 21 63  |1 . .l(1) ..%.!c|
00002fb0  6f 6d 70 75 74 65 72 25  28 63 6f 6c 25 2c 72 6f  |omputer%(col%,ro|
00002fc0  77 25 2c 20 30 29 20 2b  3d 20 31 30 0d 25 b2 05  |w%, 0) += 10.%..|
00002fd0  cd 0d 25 c6 28 e7 20 6c  65 76 65 6c 25 20 3d 20  |..%.(. level% = |
00002fe0  35 20 80 20 63 6f 6c 25  20 3e 20 31 20 80 20 72  |5 . col% > 1 . r|
00002ff0  6f 77 25 20 3c 20 39 20  8c 0d 25 d0 28 e7 20 a4  |ow% < 9 ..%.(. .|
00003000  61 28 32 29 20 63 6f 6d  70 75 74 65 72 25 28 63  |a(2) computer%(c|
00003010  6f 6c 25 2c 72 6f 77 25  2c 20 30 29 20 2b 3d 20  |ol%,row%, 0) += |
00003020  31 0d 25 da 28 e7 20 a4  62 28 32 29 20 63 6f 6d  |1.%.(. .b(2) com|
00003030  70 75 74 65 72 25 28 63  6f 6c 25 2c 72 6f 77 25  |puter%(col%,row%|
00003040  2c 20 30 29 20 2b 3d 20  31 0d 25 e4 40 e7 20 a4  |, 0) += 1.%.@. .|
00003050  66 28 31 29 20 80 20 a4  61 28 31 29 20 80 20 a4  |f(1) . .a(1) . .|
00003060  62 28 31 29 20 80 20 a4  68 28 31 29 20 8c 63 6f  |b(1) . .h(1) .co|
00003070  6d 70 75 74 65 72 25 28  63 6f 6c 25 2c 72 6f 77  |mputer%(col%,row|
00003080  25 2c 20 30 29 20 3d 20  30 0d 25 ee 05 cd 0d 26  |%, 0) = 0.%....&|
00003090  02 05 cd 0d 26 0c 05 cd  0d 26 20 0a ed 20 72 6f  |....&....& .. ro|
000030a0  77 25 0d 26 2a 0a ed 20  63 6f 6c 25 0d 26 3e 05  |w%.&*.. col%.&>.|
000030b0  e1 0d 26 84 09 dd f2 5f  31 61 0d 26 98 10 ea 20  |..&...._1a.&... |
000030c0  63 6f 6c 25 2c 20 72 6f  77 25 0d 26 ac 13 e3 20  |col%, row%.&... |
000030d0  63 6f 6c 25 20 3d 20 31  20 b8 20 31 30 0d 26 b6  |col% = 1 . 10.&.|
000030e0  12 e3 20 72 6f 77 25 20  3d 20 31 20 b8 20 39 0d  |.. row% = 1 . 9.|
000030f0  26 ca 23 e7 20 63 6f 6d  70 75 74 65 72 25 28 63  |&.#. computer%(c|
00003100  6f 6c 25 2c 72 6f 77 25  2c 20 31 29 20 3d 20 30  |ol%,row%, 1) = 0|
00003110  20 8c 0d 26 de 15 e7 20  a4 67 28 32 29 20 80 20  | ..&... .g(2) . |
00003120  a4 71 28 32 29 20 8c 0d  26 e8 2a e7 20 a4 6c 28  |.q(2) ..&.*. .l(|
00003130  31 29 20 8c 63 6f 6d 70  75 74 65 72 25 28 63 6f  |1) .computer%(co|
00003140  6c 25 2c 72 6f 77 25 2c  20 30 29 20 2b 3d 20 31  |l%,row%, 0) += 1|
00003150  30 0d 26 f2 28 e7 20 a4  6c 28 32 29 20 8c 63 6f  |0.&.(. .l(2) .co|
00003160  6d 70 75 74 65 72 25 28  63 6f 6c 25 2c 72 6f 77  |mputer%(col%,row|
00003170  25 2c 20 30 29 20 3d 20  30 0d 26 fc 05 cd 0d 27  |%, 0) = 0.&....'|
00003180  10 05 cd 0d 27 24 0a ed  20 72 6f 77 25 0d 27 2e  |....'$.. row%.'.|
00003190  0a ed 20 63 6f 6c 25 0d  27 42 05 e1 0d 27 88 09  |.. col%.'B...'..|
000031a0  dd f2 5f 31 62 0d 27 9c  10 ea 20 63 6f 6c 25 2c  |.._1b.'... col%,|
000031b0  20 72 6f 77 25 0d 27 b0  12 e3 20 63 6f 6c 25 20  | row%.'... col% |
000031c0  3d 20 30 20 b8 20 39 0d  27 ba 12 e3 20 72 6f 77  |= 0 . 9.'... row|
000031d0  25 20 3d 20 31 20 b8 20  39 0d 27 ce 23 e7 20 63  |% = 1 . 9.'.#. c|
000031e0  6f 6d 70 75 74 65 72 25  28 63 6f 6c 25 2c 72 6f  |omputer%(col%,ro|
000031f0  77 25 2c 20 31 29 20 3d  20 30 20 8c 0d 27 e2 15  |w%, 1) = 0 ..'..|
00003200  e7 20 a4 68 28 32 29 20  80 20 a4 72 28 32 29 20  |. .h(2) . .r(2) |
00003210  8c 0d 27 ec 2a e7 20 a4  6d 28 31 29 20 8c 63 6f  |..'.*. .m(1) .co|
00003220  6d 70 75 74 65 72 25 28  63 6f 6c 25 2c 72 6f 77  |mputer%(col%,row|
00003230  25 2c 20 30 29 20 2b 3d  20 31 30 0d 27 f6 28 e7  |%, 0) += 10.'.(.|
00003240  20 a4 6d 28 32 29 20 8c  63 6f 6d 70 75 74 65 72  | .m(2) .computer|
00003250  25 28 63 6f 6c 25 2c 72  6f 77 25 2c 20 30 29 20  |%(col%,row%, 0) |
00003260  3d 20 30 0d 28 00 05 cd  0d 28 14 05 cd 0d 28 28  |= 0.(....(....((|
00003270  0a ed 20 72 6f 77 25 0d  28 32 0a ed 20 63 6f 6c  |.. row%.(2.. col|
00003280  25 0d 28 46 05 e1 0d 28  8c 09 dd f2 5f 31 63 0d  |%.(F...(...._1c.|
00003290  28 a0 10 ea 20 63 6f 6c  25 2c 20 72 6f 77 25 0d  |(... col%, row%.|
000032a0  28 b4 13 e3 20 63 6f 6c  25 20 3d 20 31 20 b8 20  |(... col% = 1 . |
000032b0  31 30 0d 28 be 12 e3 20  72 6f 77 25 20 3d 20 30  |10.(... row% = 0|
000032c0  20 b8 20 39 0d 28 d2 23  e7 20 63 6f 6d 70 75 74  | . 9.(.#. comput|
000032d0  65 72 25 28 63 6f 6c 25  2c 72 6f 77 25 2c 20 31  |er%(col%,row%, 1|
000032e0  29 20 3d 20 30 20 8c 0d  28 e6 15 e7 20 a4 68 28  |) = 0 ..(... .h(|
000032f0  32 29 20 80 20 a4 6c 28  32 29 20 8c 0d 28 f0 2a  |2) . .l(2) ..(.*|
00003300  e7 20 a4 67 28 31 29 20  8c 63 6f 6d 70 75 74 65  |. .g(1) .compute|
00003310  72 25 28 63 6f 6c 25 2c  72 6f 77 25 2c 20 30 29  |r%(col%,row%, 0)|
00003320  20 2b 3d 20 31 30 0d 28  fa 28 e7 20 a4 67 28 32  | += 10.(.(. .g(2|
00003330  29 20 8c 63 6f 6d 70 75  74 65 72 25 28 63 6f 6c  |) .computer%(col|
00003340  25 2c 72 6f 77 25 2c 20  30 29 20 3d 20 30 0d 29  |%,row%, 0) = 0.)|
00003350  04 05 cd 0d 29 18 05 cd  0d 29 2c 0a ed 20 72 6f  |....)....),.. ro|
00003360  77 25 0d 29 36 0a ed 20  63 6f 6c 25 0d 29 4a 05  |w%.)6.. col%.)J.|
00003370  e1 0d 29 90 09 dd f2 5f  31 64 0d 29 a4 10 ea 20  |..)...._1d.)... |
00003380  63 6f 6c 25 2c 20 72 6f  77 25 0d 29 b8 12 e3 20  |col%, row%.)... |
00003390  63 6f 6c 25 20 3d 20 30  20 b8 20 39 0d 29 c2 13  |col% = 0 . 9.)..|
000033a0  e3 20 72 6f 77 25 20 3d  20 31 20 b8 20 31 30 0d  |. row% = 1 . 10.|
000033b0  29 d6 23 e7 20 63 6f 6d  70 75 74 65 72 25 28 63  |).#. computer%(c|
000033c0  6f 6c 25 2c 72 6f 77 25  2c 20 31 29 20 3d 20 30  |ol%,row%, 1) = 0|
000033d0  20 8c 0d 29 ea 15 e7 20  a4 6d 28 32 29 20 80 20  | ..)... .m(2) . |
000033e0  a4 71 28 32 29 20 8c 0d  29 f4 2a e7 20 a4 72 28  |.q(2) ..).*. .r(|
000033f0  31 29 20 8c 63 6f 6d 70  75 74 65 72 25 28 63 6f  |1) .computer%(co|
00003400  6c 25 2c 72 6f 77 25 2c  20 30 29 20 2b 3d 20 31  |l%,row%, 0) += 1|
00003410  30 0d 29 fe 28 e7 20 a4  72 28 32 29 20 8c 63 6f  |0.).(. .r(2) .co|
00003420  6d 70 75 74 65 72 25 28  63 6f 6c 25 2c 72 6f 77  |mputer%(col%,row|
00003430  25 2c 20 30 29 20 3d 20  30 0d 2a 08 05 cd 0d 2a  |%, 0) = 0.*....*|
00003440  1c 05 cd 0d 2a 30 0a ed  20 72 6f 77 25 0d 2a 3a  |....*0.. row%.*:|
00003450  0a ed 20 63 6f 6c 25 0d  2a 4e 05 e1 0d 2a 94 09  |.. col%.*N...*..|
00003460  dd f2 5f 31 65 0d 2a a8  10 ea 20 63 6f 6c 25 2c  |.._1e.*... col%,|
00003470  20 72 6f 77 25 0d 2a bc  12 e3 20 63 6f 6c 25 20  | row%.*... col% |
00003480  3d 20 31 20 b8 20 39 0d  2a c6 12 e3 20 72 6f 77  |= 1 . 9.*... row|
00003490  25 20 3d 20 30 20 b8 20  39 0d 2a da 23 e7 20 63  |% = 0 . 9.*.#. c|
000034a0  6f 6d 70 75 74 65 72 25  28 63 6f 6c 25 2c 72 6f  |omputer%(col%,ro|
000034b0  77 25 2c 20 31 29 20 3d  20 30 20 8c 0d 2a ee 15  |w%, 1) = 0 ..*..|
000034c0  e7 20 a4 67 28 32 29 20  80 20 a4 6d 28 32 29 20  |. .g(2) . .m(2) |
000034d0  8c 0d 2a f8 2a e7 20 a4  68 28 31 29 20 8c 63 6f  |..*.*. .h(1) .co|
000034e0  6d 70 75 74 65 72 25 28  63 6f 6c 25 2c 72 6f 77  |mputer%(col%,row|
000034f0  25 2c 20 30 29 20 2b 3d  20 31 30 0d 2b 02 28 e7  |%, 0) += 10.+.(.|
00003500  20 a4 68 28 32 29 20 8c  63 6f 6d 70 75 74 65 72  | .h(2) .computer|
00003510  25 28 63 6f 6c 25 2c 72  6f 77 25 2c 20 30 29 20  |%(col%,row%, 0) |
00003520  3d 20 30 0d 2b 0c 05 cd  0d 2b 20 05 cd 0d 2b 34  |= 0.+....+ ...+4|
00003530  0a ed 20 72 6f 77 25 0d  2b 3e 0a ed 20 63 6f 6c  |.. row%.+>.. col|
00003540  25 0d 2b 52 05 e1 0d 2b  98 09 dd f2 5f 31 66 0d  |%.+R...+...._1f.|
00003550  2b ac 10 ea 20 63 6f 6c  25 2c 20 72 6f 77 25 0d  |+... col%, row%.|
00003560  2b c0 12 e3 20 63 6f 6c  25 20 3d 20 31 20 b8 20  |+... col% = 1 . |
00003570  39 0d 2b ca 13 e3 20 72  6f 77 25 20 3d 20 31 20  |9.+... row% = 1 |
00003580  b8 20 31 30 0d 2b de 23  e7 20 63 6f 6d 70 75 74  |. 10.+.#. comput|
00003590  65 72 25 28 63 6f 6c 25  2c 72 6f 77 25 2c 20 31  |er%(col%,row%, 1|
000035a0  29 20 3d 20 30 20 8c 0d  2b f2 15 e7 20 a4 6c 28  |) = 0 ..+... .l(|
000035b0  32 29 20 80 20 a4 72 28  32 29 20 8c 0d 2b fc 2a  |2) . .r(2) ..+.*|
000035c0  e7 20 a4 71 28 31 29 20  8c 63 6f 6d 70 75 74 65  |. .q(1) .compute|
000035d0  72 25 28 63 6f 6c 25 2c  72 6f 77 25 2c 20 30 29  |r%(col%,row%, 0)|
000035e0  20 2b 3d 20 31 30 0d 2c  06 28 e7 20 a4 71 28 32  | += 10.,.(. .q(2|
000035f0  29 20 8c 63 6f 6d 70 75  74 65 72 25 28 63 6f 6c  |) .computer%(col|
00003600  25 2c 72 6f 77 25 2c 20  30 29 20 3d 20 30 0d 2c  |%,row%, 0) = 0.,|
00003610  10 05 cd 0d 2c 24 05 cd  0d 2c 38 0a ed 20 72 6f  |....,$...,8.. ro|
00003620  77 25 0d 2c 42 0a ed 20  63 6f 6c 25 0d 2c 56 05  |w%.,B.. col%.,V.|
00003630  e1 0d 2c 9c 09 dd f2 5f  32 61 0d 2c b0 10 ea 20  |..,...._2a.,... |
00003640  63 6f 6c 25 2c 20 72 6f  77 25 0d 2c c4 13 e3 20  |col%, row%.,... |
00003650  63 6f 6c 25 20 3d 20 31  20 b8 20 31 30 0d 2c ce  |col% = 1 . 10.,.|
00003660  12 e3 20 72 6f 77 25 20  3d 20 30 20 b8 20 39 0d  |.. row% = 0 . 9.|
00003670  2c e2 23 e7 20 63 6f 6d  70 75 74 65 72 25 28 63  |,.#. computer%(c|
00003680  6f 6c 25 2c 72 6f 77 25  2c 20 31 29 20 3d 20 30  |ol%,row%, 1) = 0|
00003690  20 8c 0d 2c f6 30 e7 20  a4 67 28 32 29 20 80 20  | ..,.0. .g(2) . |
000036a0  a4 6c 28 32 29 20 8c 63  6f 6d 70 75 74 65 72 25  |.l(2) .computer%|
000036b0  28 63 6f 6c 25 2c 72 6f  77 25 2c 20 30 29 20 3d  |(col%,row%, 0) =|
000036c0  20 30 0d 2d 0a 05 cd 0d  2d 1e 0a ed 20 72 6f 77  | 0.-....-... row|
000036d0  25 0d 2d 28 0a ed 20 63  6f 6c 25 0d 2d 3c 05 e1  |%.-(.. col%.-<..|
000036e0  0d 2d 82 09 dd f2 5f 32  62 0d 2d 96 10 ea 20 63  |.-...._2b.-... c|
000036f0  6f 6c 25 2c 20 72 6f 77  25 0d 2d aa 13 e3 20 63  |ol%, row%.-... c|
00003700  6f 6c 25 20 3d 20 31 20  b8 20 31 30 0d 2d b4 13  |ol% = 1 . 10.-..|
00003710  e3 20 72 6f 77 25 20 3d  20 31 20 b8 20 31 30 0d  |. row% = 1 . 10.|
00003720  2d c8 23 e7 20 63 6f 6d  70 75 74 65 72 25 28 63  |-.#. computer%(c|
00003730  6f 6c 25 2c 72 6f 77 25  2c 20 31 29 20 3d 20 30  |ol%,row%, 1) = 0|
00003740  20 8c 0d 2d dc 30 e7 20  a4 6c 28 32 29 20 80 20  | ..-.0. .l(2) . |
00003750  a4 71 28 32 29 20 8c 63  6f 6d 70 75 74 65 72 25  |.q(2) .computer%|
00003760  28 63 6f 6c 25 2c 72 6f  77 25 2c 20 30 29 20 3d  |(col%,row%, 0) =|
00003770  20 30 0d 2d f0 05 cd 0d  2e 04 0a ed 20 72 6f 77  | 0.-........ row|
00003780  25 0d 2e 0e 0a ed 20 63  6f 6c 25 0d 2e 22 05 e1  |%..... col%.."..|
00003790  0d 2e 68 09 dd f2 5f 32  63 0d 2e 7c 10 ea 20 63  |..h..._2c..|.. c|
000037a0  6f 6c 25 2c 20 72 6f 77  25 0d 2e 90 12 e3 20 63  |ol%, row%..... c|
000037b0  6f 6c 25 20 3d 20 30 20  b8 20 39 0d 2e 9a 12 e3  |ol% = 0 . 9.....|
000037c0  20 72 6f 77 25 20 3d 20  30 20 b8 20 39 0d 2e ae  | row% = 0 . 9...|
000037d0  23 e7 20 63 6f 6d 70 75  74 65 72 25 28 63 6f 6c  |#. computer%(col|
000037e0  25 2c 72 6f 77 25 2c 20  31 29 20 3d 20 30 20 8c  |%,row%, 1) = 0 .|
000037f0  0d 2e c2 30 e7 20 a4 68  28 32 29 20 80 20 a4 6d  |...0. .h(2) . .m|
00003800  28 32 29 20 8c 63 6f 6d  70 75 74 65 72 25 28 63  |(2) .computer%(c|
00003810  6f 6c 25 2c 72 6f 77 25  2c 20 30 29 20 3d 20 30  |ol%,row%, 0) = 0|
00003820  0d 2e d6 05 cd 0d 2e ea  0a ed 20 72 6f 77 25 0d  |.......... row%.|
00003830  2e f4 0a ed 20 63 6f 6c  25 0d 2f 08 05 e1 0d 2f  |.... col%./..../|
00003840  4e 09 dd f2 5f 32 64 0d  2f 62 10 ea 20 63 6f 6c  |N..._2d./b.. col|
00003850  25 2c 20 72 6f 77 25 0d  2f 76 12 e3 20 63 6f 6c  |%, row%./v.. col|
00003860  25 20 3d 20 30 20 b8 20  39 0d 2f 80 13 e3 20 72  |% = 0 . 9./... r|
00003870  6f 77 25 20 3d 20 31 20  b8 20 31 30 0d 2f 94 23  |ow% = 1 . 10./.#|
00003880  e7 20 63 6f 6d 70 75 74  65 72 25 28 63 6f 6c 25  |. computer%(col%|
00003890  2c 72 6f 77 25 2c 20 31  29 20 3d 20 30 20 8c 0d  |,row%, 1) = 0 ..|
000038a0  2f a8 30 e7 20 a4 6d 28  32 29 20 80 20 a4 72 28  |/.0. .m(2) . .r(|
000038b0  32 29 20 8c 63 6f 6d 70  75 74 65 72 25 28 63 6f  |2) .computer%(co|
000038c0  6c 25 2c 72 6f 77 25 2c  20 30 29 20 3d 20 30 0d  |l%,row%, 0) = 0.|
000038d0  2f bc 05 cd 0d 2f d0 0a  ed 20 72 6f 77 25 0d 2f  |/..../... row%./|
000038e0  da 0a ed 20 63 6f 6c 25  0d 2f ee 05 e1 0d 30 3e  |... col%./....0>|
000038f0  09 dd f2 5f 32 65 0d 30  52 10 ea 20 63 6f 6c 25  |..._2e.0R.. col%|
00003900  2c 20 72 6f 77 25 0d 30  66 13 e3 20 63 6f 6c 25  |, row%.0f.. col%|
00003910  20 3d 20 31 20 b8 20 31  30 0d 30 70 12 e3 20 72  | = 1 . 10.0p.. r|
00003920  6f 77 25 20 3d 20 30 20  b8 20 39 0d 30 84 23 e7  |ow% = 0 . 9.0.#.|
00003930  20 63 6f 6d 70 75 74 65  72 25 28 63 6f 6c 25 2c  | computer%(col%,|
00003940  72 6f 77 25 2c 20 31 29  20 3d 20 30 20 8c 0d 30  |row%, 1) = 0 ..0|
00003950  98 30 e7 20 a4 67 28 32  29 20 80 20 a4 68 28 32  |.0. .g(2) . .h(2|
00003960  29 20 8c 63 6f 6d 70 75  74 65 72 25 28 63 6f 6c  |) .computer%(col|
00003970  25 2c 72 6f 77 25 2c 20  30 29 20 3d 20 30 0d 30  |%,row%, 0) = 0.0|
00003980  ac 05 cd 0d 30 c0 0a ed  20 72 6f 77 25 0d 30 ca  |....0... row%.0.|
00003990  0a ed 20 63 6f 6c 25 0d  30 de 05 e1 0d 31 1a 09  |.. col%.0....1..|
000039a0  dd f2 5f 32 66 0d 31 2e  10 ea 20 63 6f 6c 25 2c  |.._2f.1... col%,|
000039b0  20 72 6f 77 25 0d 31 42  12 e3 20 63 6f 6c 25 20  | row%.1B.. col% |
000039c0  3d 20 30 20 b8 20 39 0d  31 4c 13 e3 20 72 6f 77  |= 0 . 9.1L.. row|
000039d0  25 20 3d 20 31 20 b8 20  31 30 0d 31 60 23 e7 20  |% = 1 . 10.1`#. |
000039e0  63 6f 6d 70 75 74 65 72  25 28 63 6f 6c 25 2c 72  |computer%(col%,r|
000039f0  6f 77 25 2c 20 31 29 20  3d 20 30 20 8c 0d 31 74  |ow%, 1) = 0 ..1t|
00003a00  30 e7 20 a4 71 28 32 29  20 80 20 a4 72 28 32 29  |0. .q(2) . .r(2)|
00003a10  20 8c 63 6f 6d 70 75 74  65 72 25 28 63 6f 6c 25  | .computer%(col%|
00003a20  2c 72 6f 77 25 2c 20 30  29 20 3d 20 30 0d 31 88  |,row%, 0) = 0.1.|
00003a30  05 cd 0d 31 9c 0a ed 20  72 6f 77 25 0d 31 a6 0a  |...1... row%.1..|
00003a40  ed 20 63 6f 6c 25 0d 31  ba 05 e1 0d 32 00 09 dd  |. col%.1....2...|
00003a50  f2 5f 33 61 0d 32 14 10  ea 20 63 6f 6c 25 2c 20  |._3a.2... col%, |
00003a60  72 6f 77 25 0d 32 28 12  e3 20 63 6f 6c 25 20 3d  |row%.2(.. col% =|
00003a70  20 31 20 b8 20 39 0d 32  32 12 e3 20 72 6f 77 25  | 1 . 9.22.. row%|
00003a80  20 3d 20 31 20 b8 20 39  0d 32 46 23 e7 20 63 6f  | = 1 . 9.2F#. co|
00003a90  6d 70 75 74 65 72 25 28  63 6f 6c 25 2c 72 6f 77  |mputer%(col%,row|
00003aa0  25 2c 20 31 29 20 3d 20  30 20 8c 0d 32 64 15 e7  |%, 1) = 0 ..2d..|
00003ab0  20 a4 6c 28 31 29 20 80  20 a4 6d 28 31 29 20 8c  | .l(1) . .m(1) .|
00003ac0  0d 32 82 2d e7 20 28 a4  71 28 32 29 20 84 20 a4  |.2.-. (.q(2) . .|
00003ad0  72 28 32 29 29 20 80 20  28 ac 20 a4 67 28 31 29  |r(2)) . (. .g(1)|
00003ae0  20 84 20 ac 20 a4 68 28  31 29 29 20 8c 0d 32 8c  | . . .h(1)) ..2.|
00003af0  20 63 6f 6d 70 75 74 65  72 25 28 63 6f 6c 25 2c  | computer%(col%,|
00003b00  72 6f 77 25 2c 20 30 29  20 2b 3d 20 35 0d 32 96  |row%, 0) += 5.2.|
00003b10  05 cd 0d 32 a0 05 cd 0d  32 aa 05 cd 0d 32 be 0a  |...2....2....2..|
00003b20  ed 20 72 6f 77 25 0d 32  c8 0a ed 20 63 6f 6c 25  |. row%.2... col%|
00003b30  0d 32 dc 05 e1 0d 33 2c  09 dd f2 5f 33 62 0d 33  |.2....3,..._3b.3|
00003b40  40 10 ea 20 63 6f 6c 25  2c 20 72 6f 77 25 0d 33  |@.. col%, row%.3|
00003b50  54 12 e3 20 63 6f 6c 25  20 3d 20 31 20 b8 20 39  |T.. col% = 1 . 9|
00003b60  0d 33 5e 12 e3 20 72 6f  77 25 20 3d 20 31 20 b8  |.3^.. row% = 1 .|
00003b70  20 39 0d 33 72 23 e7 20  63 6f 6d 70 75 74 65 72  | 9.3r#. computer|
00003b80  25 28 63 6f 6c 25 2c 72  6f 77 25 2c 20 31 29 20  |%(col%,row%, 1) |
00003b90  3d 20 30 20 8c 0d 33 90  15 e7 20 a4 6c 28 31 29  |= 0 ..3... .l(1)|
00003ba0  20 80 20 a4 6d 28 31 29  20 8c 0d 33 ae 2d e7 20  | . .m(1) ..3.-. |
00003bb0  28 a4 67 28 32 29 20 84  20 a4 68 28 32 29 29 20  |(.g(2) . .h(2)) |
00003bc0  80 20 28 ac 20 a4 71 28  31 29 20 84 20 ac 20 a4  |. (. .q(1) . . .|
00003bd0  72 28 31 29 29 20 8c 0d  33 b8 20 63 6f 6d 70 75  |r(1)) ..3. compu|
00003be0  74 65 72 25 28 63 6f 6c  25 2c 72 6f 77 25 2c 20  |ter%(col%,row%, |
00003bf0  30 29 20 2b 3d 20 35 0d  33 c2 05 cd 0d 33 cc 05  |0) += 5.3....3..|
00003c00  cd 0d 33 d6 05 cd 0d 33  ea 0a ed 20 72 6f 77 25  |..3....3... row%|
00003c10  0d 33 f4 0a ed 20 63 6f  6c 25 0d 34 08 05 e1 0d  |.3... col%.4....|
00003c20  34 4e 09 dd f2 5f 34 61  0d 34 62 10 ea 20 63 6f  |4N..._4a.4b.. co|
00003c30  6c 25 2c 20 72 6f 77 25  0d 34 76 13 e3 20 63 6f  |l%, row%.4v.. co|
00003c40  6c 25 20 3d 20 32 20 b8  20 31 30 0d 34 80 12 e3  |l% = 2 . 10.4...|
00003c50  20 72 6f 77 25 20 3d 20  30 20 b8 20 38 0d 34 94  | row% = 0 . 8.4.|
00003c60  23 e7 20 63 6f 6d 70 75  74 65 72 25 28 63 6f 6c  |#. computer%(col|
00003c70  25 2c 72 6f 77 25 2c 20  31 29 20 3d 20 30 20 8c  |%,row%, 1) = 0 .|
00003c80  0d 34 b2 17 e7 20 63 6f  6c 25 20 2b 20 72 6f 77  |.4... col% + row|
00003c90  25 20 3c 31 30 20 8c 0d  34 c6 25 e7 20 a4 61 28  |% <10 ..4.%. .a(|
00003ca0  31 29 20 80 20 a4 62 28  32 29 20 80 20 a4 67 28  |1) . .b(2) . .g(|
00003cb0  30 29 20 80 20 a4 68 28  30 29 20 8c 0d 34 d0 21  |0) . .h(0) ..4.!|
00003cc0  63 6f 6d 70 75 74 65 72  25 28 63 6f 6c 25 2c 72  |computer%(col%,r|
00003cd0  6f 77 25 2c 20 30 29 20  2b 3d 20 32 30 0d 34 e4  |ow%, 0) += 20.4.|
00003ce0  1d e7 20 6c 65 76 65 6c  25 20 3d 20 35 20 80 20  |.. level% = 5 . |
00003cf0  72 6f 77 25 20 3c 20 38  20 8c 0d 34 ee 42 e7 20  |row% < 8 ..4.B. |
00003d00  a4 61 28 31 29 20 80 20  a4 63 62 28 31 29 20 80  |.a(1) . .cb(1) .|
00003d10  20 a4 63 63 28 31 29 20  80 20 a4 63 28 31 29 20  | .cc(1) . .c(1) |
00003d20  8c 63 6f 6d 70 75 74 65  72 25 28 63 6f 6c 25 2c  |.computer%(col%,|
00003d30  72 6f 77 25 2c 20 30 29  20 3d 20 30 0d 34 f8 2a  |row%, 0) = 0.4.*|
00003d40  e7 20 a4 63 62 28 32 29  20 8c 63 6f 6d 70 75 74  |. .cb(2) .comput|
00003d50  65 72 25 28 63 6f 6c 25  2c 72 6f 77 25 2c 20 30  |er%(col%,row%, 0|
00003d60  29 20 2b 3d 20 31 0d 35  02 2a e7 20 a4 63 63 28  |) += 1.5.*. .cc(|
00003d70  32 29 20 8c 63 6f 6d 70  75 74 65 72 25 28 63 6f  |2) .computer%(co|
00003d80  6c 25 2c 72 6f 77 25 2c  20 30 29 20 2b 3d 20 31  |l%,row%, 0) += 1|
00003d90  0d 35 16 05 cd 0d 35 20  05 cd 0d 35 2a 05 cd 0d  |.5....5 ...5*...|
00003da0  35 34 05 cd 0d 35 48 0a  ed 20 72 6f 77 25 0d 35  |54...5H.. row%.5|
00003db0  52 0a ed 20 63 6f 6c 25  0d 35 66 05 e1 0d 35 ac  |R.. col%.5f...5.|
00003dc0  09 dd f2 5f 34 62 0d 35  c0 10 ea 20 63 6f 6c 25  |..._4b.5... col%|
00003dd0  2c 20 72 6f 77 25 0d 35  d4 12 e3 20 63 6f 6c 25  |, row%.5... col%|
00003de0  20 3d 20 30 20 b8 20 38  0d 35 de 13 e3 20 72 6f  | = 0 . 8.5... ro|
00003df0  77 25 20 3d 20 32 20 b8  20 31 30 0d 35 f2 23 e7  |w% = 2 . 10.5.#.|
00003e00  20 63 6f 6d 70 75 74 65  72 25 28 63 6f 6c 25 2c  | computer%(col%,|
00003e10  72 6f 77 25 2c 20 31 29  20 3d 20 30 20 8c 0d 36  |row%, 1) = 0 ..6|
00003e20  10 17 e7 20 63 6f 6c 25  20 2b 20 72 6f 77 25 20  |... col% + row% |
00003e30  3e 31 30 20 8c 0d 36 24  25 e7 20 a4 78 28 31 29  |>10 ..6$%. .x(1)|
00003e40  20 80 20 a4 77 28 32 29  20 80 20 a4 71 28 30 29  | . .w(2) . .q(0)|
00003e50  20 80 20 a4 72 28 30 29  20 8c 0d 36 2e 21 63 6f  | . .r(0) ..6.!co|
00003e60  6d 70 75 74 65 72 25 28  63 6f 6c 25 2c 72 6f 77  |mputer%(col%,row|
00003e70  25 2c 20 30 29 20 2b 3d  20 32 30 0d 36 42 1d e7  |%, 0) += 20.6B..|
00003e80  20 6c 65 76 65 6c 25 20  3d 20 35 20 80 20 72 6f  | level% = 5 . ro|
00003e90  77 25 20 3e 20 32 20 8c  0d 36 4c 42 e7 20 a4 76  |w% > 2 ..6LB. .v|
00003ea0  28 31 29 20 80 20 a4 64  62 28 31 29 20 80 20 a4  |(1) . .db(1) . .|
00003eb0  64 63 28 31 29 20 80 20  a4 78 28 31 29 20 8c 63  |dc(1) . .x(1) .c|
00003ec0  6f 6d 70 75 74 65 72 25  28 63 6f 6c 25 2c 72 6f  |omputer%(col%,ro|
00003ed0  77 25 2c 20 30 29 20 3d  20 30 0d 36 56 2a e7 20  |w%, 0) = 0.6V*. |
00003ee0  a4 64 62 28 32 29 20 8c  63 6f 6d 70 75 74 65 72  |.db(2) .computer|
00003ef0  25 28 63 6f 6c 25 2c 72  6f 77 25 2c 20 30 29 20  |%(col%,row%, 0) |
00003f00  2b 3d 20 31 0d 36 60 2a  e7 20 a4 64 63 28 32 29  |+= 1.6`*. .dc(2)|
00003f10  20 8c 63 6f 6d 70 75 74  65 72 25 28 63 6f 6c 25  | .computer%(col%|
00003f20  2c 72 6f 77 25 2c 20 30  29 20 2b 3d 20 31 0d 36  |,row%, 0) += 1.6|
00003f30  74 05 cd 0d 36 7e 05 cd  0d 36 88 05 cd 0d 36 92  |t...6~...6....6.|
00003f40  05 cd 0d 36 a6 0a ed 20  72 6f 77 25 0d 36 b0 0a  |...6... row%.6..|
00003f50  ed 20 63 6f 6c 25 0d 36  c4 05 e1 0d 37 0a 09 dd  |. col%.6....7...|
00003f60  f2 5f 35 61 0d 37 1e 10  ea 20 63 6f 6c 25 2c 20  |._5a.7... col%, |
00003f70  72 6f 77 25 0d 37 32 12  e3 20 63 6f 6c 25 20 3d  |row%.72.. col% =|
00003f80  20 30 20 b8 20 38 0d 37  3c 13 e3 20 72 6f 77 25  | 0 . 8.7<.. row%|
00003f90  20 3d 20 34 20 b8 20 31  30 0d 37 50 23 e7 20 63  | = 4 . 10.7P#. c|
00003fa0  6f 6d 70 75 74 65 72 25  28 63 6f 6c 25 2c 72 6f  |omputer%(col%,ro|
00003fb0  77 25 2c 20 31 29 20 3d  20 30 20 8c 0d 37 64 31  |w%, 1) = 0 ..7d1|
00003fc0  e7 20 a4 77 28 32 29 20  80 20 28 28 a4 71 28 30  |. .w(2) . ((.q(0|
00003fd0  29 20 80 20 a4 72 28 30  29 29 84 28 a4 71 28 32  |) . .r(0)).(.q(2|
00003fe0  29 20 84 20 a4 72 28 32  29 29 29 20 8c 0d 37 6e  |) . .r(2))) ..7n|
00003ff0  20 63 6f 6d 70 75 74 65  72 25 28 63 6f 6c 25 2c  | computer%(col%,|
00004000  72 6f 77 25 2c 20 30 29  20 2b 3d 20 33 0d 37 78  |row%, 0) += 3.7x|
00004010  36 e7 20 a4 64 61 28 32  29 20 80 20 28 28 a4 64  |6. .da(2) . ((.d|
00004020  62 28 30 29 20 80 20 a4  64 63 28 30 29 29 84 28  |b(0) . .dc(0)).(|
00004030  a4 64 62 28 32 29 20 84  20 a4 64 63 28 32 29 29  |.db(2) . .dc(2))|
00004040  29 20 8c 0d 37 82 21 63  6f 6d 70 75 74 65 72 25  |) ..7.!computer%|
00004050  28 63 6f 6c 25 2c 72 6f  77 25 2c 20 30 29 20 2b  |(col%,row%, 0) +|
00004060  3d 20 31 37 0d 37 8c 05  cd 0d 37 96 05 cd 0d 37  |= 17.7....7....7|
00004070  a0 05 cd 0d 37 b4 0a ed  20 72 6f 77 25 0d 37 be  |....7... row%.7.|
00004080  0a ed 20 63 6f 6c 25 0d  37 d2 05 e1 0d 38 18 09  |.. col%.7....8..|
00004090  dd f2 5f 35 62 0d 38 2c  10 ea 20 63 6f 6c 25 2c  |.._5b.8,.. col%,|
000040a0  20 72 6f 77 25 0d 38 40  13 e3 20 63 6f 6c 25 20  | row%.8@.. col% |
000040b0  3d 20 32 20 b8 20 31 30  0d 38 4a 12 e3 20 72 6f  |= 2 . 10.8J.. ro|
000040c0  77 25 20 3d 20 30 20 b8  20 36 0d 38 5e 23 e7 20  |w% = 0 . 6.8^#. |
000040d0  63 6f 6d 70 75 74 65 72  25 28 63 6f 6c 25 2c 72  |computer%(col%,r|
000040e0  6f 77 25 2c 20 31 29 20  3d 20 30 20 8c 0d 38 72  |ow%, 1) = 0 ..8r|
000040f0  31 e7 20 a4 62 28 32 29  20 80 20 28 28 a4 67 28  |1. .b(2) . ((.g(|
00004100  30 29 20 80 20 a4 68 28  30 29 29 84 28 a4 67 28  |0) . .h(0)).(.g(|
00004110  32 29 20 84 20 a4 68 28  32 29 29 29 20 8c 0d 38  |2) . .h(2))) ..8|
00004120  7c 20 63 6f 6d 70 75 74  65 72 25 28 63 6f 6c 25  || computer%(col%|
00004130  2c 72 6f 77 25 2c 20 30  29 20 2b 3d 20 33 0d 38  |,row%, 0) += 3.8|
00004140  86 36 e7 20 a4 63 61 28  32 29 20 80 20 28 28 a4  |.6. .ca(2) . ((.|
00004150  63 62 28 30 29 20 80 20  a4 63 63 28 30 29 29 84  |cb(0) . .cc(0)).|
00004160  28 a4 63 62 28 32 29 20  84 20 a4 63 63 28 32 29  |(.cb(2) . .cc(2)|
00004170  29 29 20 8c 0d 38 90 21  63 6f 6d 70 75 74 65 72  |)) ..8.!computer|
00004180  25 28 63 6f 6c 25 2c 72  6f 77 25 2c 20 30 29 20  |%(col%,row%, 0) |
00004190  2b 3d 20 31 37 0d 38 9a  05 cd 0d 38 a4 05 cd 0d  |+= 17.8....8....|
000041a0  38 ae 05 cd 0d 38 c2 0a  ed 20 72 6f 77 25 0d 38  |8....8... row%.8|
000041b0  cc 0a ed 20 63 6f 6c 25  0d 38 e0 05 e1 0d ff     |... col%.8.....|
000041bf