Home » Archimedes archive » Acorn User » AU 1995-11.adf » !Regulars » Regulars/StarInfo/Munro/Chase+RO2

Regulars/StarInfo/Munro/Chase+RO2

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 » Acorn User » AU 1995-11.adf » !Regulars
Filename: Regulars/StarInfo/Munro/Chase+RO2
Read OK:
File size: 21AE bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >Chase+
   20REM Completely re-coded by Robert Munro. Based on an idea by
   30REM Jamie Shoton
   40
   50ON ERROR MODE 13:PRINTREPORT$" at line ";STR$(ERL):END
   60MODE 15
   70MODE 13
   80OFF
   90DIM keysleft%(127)
  100PROCgetoptions
  110CLS
  120PROCsetup
  130PROCgetkeys
  140CLS
  150
  160PROCgame
  170END
  180
  190DEF PROCsetup
  200@%=&0102020A
  210timeout%=0
  220screen%=1
  230DIM speedx(players%),speedy(players%),x%(players%),y%(players%),a%(players%)
  240DIM akey%(players%),lkey%(players%),rkey%(players%),ittime%(players%),sin(450)
  250FOR count%=0TO450
  260sin(count%)=SINRAD(count%)
  270NEXT
  280FOR player%=1TOplayers%
  290 x%(player%)=RND(1279)
  300 y%(player%)=RND(1024)
  310NEXT
  320ENDPROC
  330
  340DEF PROCgetkeys
  350keysleft%()=TRUE
  360keysleft%(pausekey%)=FALSE
  370FOR player%=1TOplayers%
  380 PROCnokeys
  390 IF FNyesno("Player "+STR$(player%)+" automatic?") THEN
  400  akey%(player%)=0
  410 ELSE
  420  PROCnokeys
  430  PRINT"Player "STR$(player%)" press your left key"
  440  lkey%(player%)=FNgetkey
  450  PRINT"Player "STR$(player%)" press your right key"
  460  rkey%(player%)=FNgetkey
  470  PRINT"Player "STR$(player%)" press your accerlator key"
  480  akey%(player%)=FNgetkey
  490 ENDIF
  500NEXT player%
  510PROCnokeys
  520ENDPROC
  530
  540DEFPROCgame
  550t%=TIME
  560totaltime%=-TIME
  570ittime%(it%)-=TIME
  580REPEAT
  590 IF INKEY(-pausekey%) PROCpause
  600 WAIT
  610 IF clearscrn% THEN
  620  SYS"OS_Byte",112,screen%
  630  screen%=3-screen%
  640  SYS"OS_Byte",113,screen%
  650  CLS
  660 ENDIF
  670 frametime%=TIME-t%
  680 t%=TIME
  690 IF print% THEN
  700   PRINTTAB(0,0)"Time/frame:";frametime%/100"s"
  710   PRINT"Player "STR$(it%)" it for ";(ittime%(it%)+TIME)/100"s out of ";(totaltime%+TIME)/100
  720   PRINT"I.e. ";100*(ittime%(it%)+TIME)/(totaltime%+TIME)"%"
  730 ENDIF
  740 frametime%=(frametime%+1)>>1
  750 IF frametime%>maxframetime% frametime%=maxframetime%
  760 IF prongs% THEN
  770  itx%=x%(it%)+prongs%*sin(450-a%(it%))
  780  ity%=y%(it%)+prongs%*sin(a%(it%))
  790 ELSE
  800  itx%=x%(it%)
  810  ity%=y%(it%)
  820 ENDIF
  830 IF TIME<timeout% AND print% THEN PRINT"Timeout:";(timeout%-TIME)/100"s"
  840 FOR player%=1TOplayers%
  850  PROCgetmove(player%,lkey%,rkey%,akey%)
  860  xacc=acc*sin(450-a%(player%))*akey%
  870  yacc=acc*sin(a%(player%))*akey%
  880  FOR count%=1TOframetime%
  890   speedx(player%)=speedx(player%)*decc+xacc
  900   speedy(player%)=speedy(player%)*decc+yacc
  910  NEXT count%
  920  x%(player%)=speedx(player%)*frametime%+x%(player%)
  930  y%(player%)=speedy(player%)*frametime%+y%(player%)
  940  IF wrap% THEN
  950   x%(player%)=(x%(player%)+2560)MOD1280
  960   y%(player%)=(y%(player%)+2048)MOD1024
  970  ELSE
  980   IF x%(player%)<0 THEN x%(player%)=-x%(player%):speedx(player%)=-speedx(player%)
  990   IF x%(player%)>1279 THEN x%(player%)=2559-x%(player%):speedx(player%)=-speedx(player%)
 1000   IF y%(player%)<0 THEN y%(player%)=-y%(player%):speedy(player%)=-speedy(player%)
 1010   IF y%(player%)>1023 THEN y%(player%)=2047-y%(player%):speedy(player%)=-speedy(player%)
 1020  ENDIF
 1030  a%(player%)+=(lkey%-rkey%)*rotate%*frametime%
 1040  a%(player%)=(a%(player%)+360) MOD 360
 1050  GCOL (255-player%*7)MOD64 TINT (player%*7)MOD255
 1060  IF player%=it% THEN GCOL 63 TINT 255
 1070  CIRCLE FILL x%(player%),y%(player%),radius%
 1080  IF prongs% LINE x%(player%),y%(player%),x%(player%)+prongs%*sin(450-a%(player%)),y%(player%)+prongs%*sin(a%(player%))
 1090  IF TIME>timeout% THEN
 1100   IF it%<>player% THEN
 1110    IF (itx%-x%(player%))^2+(ity%-y%(player%))^2<radiussq% THEN
 1120     ittime%(it%)+=TIME
 1130     it%=player%
 1140     ittime%(it%)-=TIME
 1150     timeout%=TIME+timeoutsize%
 1160    ENDIF
 1170   ENDIF
 1180  ENDIF
 1190 NEXT player%
 1200UNTIL FALSE
 1210ENDPROC
 1220
 1230DEF FNgetkey
 1240LOCAL key%
 1250REPEAT
 1260 FOR key%=1 TO 127
 1270  IF INKEY(-key%) THEN IF keysleft%(key%) THEN keysleft%(key%)=FALSE:=key%
 1280 NEXT
 1290UNTIL FALSE
 1300=0
 1310
 1320DEFFNyesno(a$)
 1330LOCAL a%
 1340REPEAT
 1350 PRINTa$"(Y/N)";
 1360 a%=(GETMOD32)+64
 1370 PRINT CHR$(a%)
 1380UNTIL a%=ASC("Y") OR a%=ASC("N")
 1390=(a%=ASC("Y"))
 1400
 1410DEF PROCnokeys
 1420REPEAT
 1430 test%=FALSE
 1440 FOR key%=1 TO 127
 1450  test%=test% OR INKEY(-key%)
 1460 NEXT
 1470UNTIL NOT test%
 1480REPEAT UNTIL INKEY(0)=-1
 1490ENDPROC
 1500
 1510DEF PROCgetmove(player%,RETURN l%,RETURN r%,RETURN a%)
 1520LOCAL count%,xdis%,ydis%,nearestdist%,nearest%
 1530IF akey%(player%) THEN
 1540 l%=-INKEY(-lkey%(player%))
 1550 r%=-INKEY(-rkey%(player%))
 1560 a%=-INKEY(-akey%(player%))
 1570 IF backwards% THEN a%=-a%
 1580 ENDPROC
 1590ELSE
 1600 REM automatic player
 1610 IF player%=it% THEN
 1620  nearestdist%=10000000
 1630  FOR count%=1TOplayers%
 1640   IF count%<>player% THEN
 1650    xdis%=itx%-x%(count%):IF wrap% AND xdis%>640 xdis%=xdis%-1280
 1660    ydis%=ity%-y%(count%):IF wrap% AND ydis%>512 ydis%=ydis%-1024
 1670    IF wrap% THEN
 1680     IF xdis%>640 THEN xdis%=xdis%-1280
 1690     IF xdis%<-640 THEN xdis%=xdis%+1280
 1700     IF ydis%>512 THEN ydis%=ydis%-1024
 1710     IF ydis%<-512 THEN ydis%=ydis%+1024
 1720    ENDIF
 1730    IF xdis%*xdis%+ydis%*ydis%<nearestdist% THEN
 1740     nearestdist%=xdis%*xdis%+ydis%*ydis%
 1750     nearest%=count%
 1760    ENDIF
 1770   ENDIF
 1780  NEXT
 1790  xdis%=itx%-x%(nearest%)
 1800  ydis%=ity%-y%(nearest%)
 1810  IF wrap% THEN
 1820   IF xdis%>640 THEN xdis%=xdis%-1280
 1830   IF xdis%<-640 THEN xdis%=xdis%+1280
 1840   IF ydis%>512 THEN ydis%=ydis%-1024
 1850   IF ydis%<-512 THEN ydis%=ydis%+1024
 1860  ENDIF
 1870  l%=0
 1880  r%=0
 1890  IF (sin(a%(player%))*xdis%>sin(450-a%(player%))*ydis%) THEN l%=1 ELSE r%=1
 1900  a%=1
 1910  REM IF a% of player is ? THEN a=0
 1920 ELSE
 1930  REM Not It!
 1940  xdis%=x%(player%)-itx%
 1950  ydis%=y%(player%)-ity%
 1960  IF wrap% THEN
 1970   IF xdis%>640 THEN xdis%=xdis%-1280
 1980   IF xdis%<-640 THEN xdis%=xdis%+1280
 1990   IF ydis%>512 THEN ydis%=ydis%-1024
 2000   IF ydis%<-512 THEN ydis%=ydis%+1024
 2010  ENDIF
 2020  distsquare%=xdis%^2+ydis%^2
 2030  a%=1
 2040  IF distsquare%>radiussq%*400 THEN a%=0
 2050  IF (sin(a%(player%))*xdis%<sin(450-a%(player%))*ydis%) THEN l%=1:r%=0 ELSE r%=1:l%=0
 2060  IF NOT wrap% THEN
 2070   IF x%(player%)<60 THEN
 2080    IF a%(player%)>=180 AND a%(player%)<=290 r%=0:l%=1
 2090    IF a%(player%)>=70 AND a%(player%)<=180 r%=1:l%=0
 2100   ENDIF
 2110   IF x%(player%)>1219 THEN
 2120    IF a%(player%)>=0 AND a%(player%)<=110 r%=0:l%=1
 2130    IF a%(player%)>=250 AND a%(player%)<=360 r%=1:l%=0
 2140   ENDIF
 2150   IF y%(player%)<60 THEN
 2160    IF a%(player%)>=270 OR a%(player%)<=20 r%=0:l%=1
 2170    IF a%(player%)>=160 AND a%(player%)<=270 r%=1:l%=0
 2180   ENDIF
 2190   IF y%(player%)>964 THEN
 2200    IF a%(player%)>=90 AND a%(player%)<=200 r%=0:l%=1
 2210    IF a%(player%)<=90 OR a%(player%)>340 r%=1:l%=0
 2220   ENDIF
 2230  ENDIF
 2240 ENDIF
 2250ENDIF
 2260IF backwards% THEN
 2270a%=-a%
 2280PROCswap(l%,r%)
 2290ENDIF
 2300ENDPROC
 2310
 2320DEF PROCswap(RETURN a%,RETURN b%)
 2330LOCAL c%
 2340c%=a%
 2350a%=b%
 2360b%=c%
 2370ENDPROC
 2380
 2390DEF PROCpause
 2400totaltime%+=TIME
 2410ittime%(it%)+=TIME
 2420timeout%-=TIME
 2430PROCnokeys
 2440MODE15
 2450PRINT"Game paused"'"Player ";STR$(it%)" is it."'"Total game time:";totaltime%/100"s"
 2460IF timeout%>0 PRINT"Timeout left:";timeout%/100"s"
 2470PRINT
 2480FOR count%=1TOplayers%
 2490 PRINT"Player ";STR$(count%)" has been it for ";ittime%(count%)/100"s i.e. ";100*ittime%(count%)/totaltime%"%"
 2500NEXT
 2510PRINT
 2520IF NOT FNyesno("Do you want to continue?") THEN END
 2530MODE13
 2540OFF
 2550totaltime%-=TIME
 2560ittime%(it%)-=TIME
 2570timeout%+=TIME
 2580ENDPROC
 2590
 2600DEF PROCcentre(a$)
 2610PRINT TAB((40-LENa$)>>1);a$
 2620ENDPROC
 2630
 2640DEFFNon(a%)
 2650IF a% THEN ="On "
 2660="Off"
 2670
 2680DEF PROCgetoptions
 2690pausekey$="P"
 2700pausekey%=56
 2710print%=TRUE
 2720backwards%=FALSE
 2730wrap%=FALSE
 2740acc=.4
 2750decc=.96
 2760rotate%=4
 2770prongs%=60
 2780radius%=20
 2790players%=2
 2800clearscrn%=TRUE
 2810timeoutsize%=200
 2820it%=1
 2830maxframetime%=10
 2840PROCredrawoptions(0)
 2850*pointer 1
 2860REPEAT
 2870 REPEAT:MOUSE mx%,my%,mb%:UNTIL mb%
 2880 choice%=28-my%DIV32
 2890 IF choice%>0 AND choice%<14 THEN PROCredrawoptions(choice%)
 2900 PROCnokeys
 2910UNTIL choice%=14
 2920*pointer 0
 2930IF prongs%<radius% prongs%=0
 2940radiussq%=radius%^2
 2950IF prongs%=0 THEN radiussq%=radiussq%*4
 2960ENDPROC
 2970
 2980DEF PROCredrawoptions(n%)
 2990@%=&0100050A
 3000IF n%=0 PROCcentre("Options Menu")
 3010IF n%=1 THEN
 3020  ON:*pointer 0
 3030  PRINT TAB(31,4);
 3040  PROCnokeys
 3050  keysleft%()=TRUE
 3060  pausekey%=FNgetkey
 3070  pausekey$=GET$
 3080  OFF:*pointer 1
 3090ENDIF
 3100IF n%=0 OR n%=1 PRINTTAB(5,4)"Pause key"TAB(30,4)":"pausekey$
 3110IF n%=2 THEN print%=NOT print%
 3120IF n%=0 OR n%=2 PRINTTAB(5,5)"In game information"TAB(30,5)":"FNon(print%)
 3130IF n%=3 THEN backwards%=NOT backwards%
 3140IF n%=0 OR n%=3 PRINTTAB(5,6)"Backwards"TAB(30,6)":"FNon(backwards%)
 3150IF n%=4 THEN wrap%=NOT wrap%
 3160IF n%=0 OR n%=4 PRINTTAB(5,7)"Wrap"TAB(30,7)":"FNon(wrap%)
 3170IF n%=5 THEN acc=FNgetval(31,8,0,10)/10
 3180IF n%=0 OR n%=5 PRINTTAB(5,8)"Acceleration"TAB(30,8)":";acc*10
 3190IF n%=6 THEN decc=1-FNgetval(31,9,0,10)/100
 3200IF n%=0 OR n%=6 PRINTTAB(5,9)"Resistance"TAB(30,9)":";(1-decc)*100
 3210IF n%=7 THEN rotate%=FNgetval(31,10,0,10)
 3220IF n%=0 OR n%=7 PRINTTAB(5,10)"Turn speed"TAB(30,10)":";rotate%
 3230IF n%=8 THEN radius%=FNgetval(31,11,4,100)
 3240IF n%=0 OR n%=8 PRINTTAB(5,11)"Radius"TAB(30,11)":";radius%
 3250IF n%=9 THEN prongs%=FNgetval(31,12,0,500)
 3260IF n%=0 OR n%=9 PRINTTAB(5,12)"Prong length"TAB(30,12)":";prongs%
 3270IF n%=10 THEN players%=FNgetval(31,13,0,500)
 3280IF n%=0 OR n%=10 PRINTTAB(5,13)"Players"TAB(30,13)":";players%
 3290IF n%=11 THEN clearscrn%=NOT clearscrn%
 3300IF n%=0 OR n%=11 PRINTTAB(5,14)"Trails"TAB(30,14)":";FNon(NOT clearscrn%)
 3310IF n%=12 THEN timeoutsize%=FNgetval(31,15,0,5)*100
 3320IF n%=0 OR n%=12 PRINTTAB(5,15)"Timeout time"TAB(30,15)":";timeoutsize%/100
 3330IF n%=13 THEN it%=FNgetval(31,16,1,players%)
 3340IF n%=0 OR n%=13 PRINTTAB(5,16)"Default player it"TAB(30,16)":";it%
 3350
 3360IF n%=0 PRINTTAB(5,17)"Play game!"
 3370ENDPROC
 3380
 3390DEF FNgetval(x%,y%,min,max)
 3400LOCAL ans
 3410ON:*pointer 0
 3420PRINT TAB(x%,y%)"          "
 3430INPUT TAB(x%,y%) ans
 3440IF ans<min THEN ans=min
 3450IF ans>max THEN ans=max
 3460OFF:*pointer 1
 3470=ans


� >Chase+
>� Completely re-coded by Robert Munro. Based on an idea by
� Jamie Shoton
(
2"� � � 13:�$" at line ";�(�):�
<� 15
F� 13
P�
Z� keysleft%(127)
d�getoptions
n�
x
�setup
��getkeys
��
�
�	�game
��
�
�� �setup
�@%=&0102020A
�timeout%=0
�
screen%=1
�N� speedx(players%),speedy(players%),x%(players%),y%(players%),a%(players%)
�P� akey%(players%),lkey%(players%),rkey%(players%),ittime%(players%),sin(450)
�� count%=0�450
sin(count%)=��(count%)
�
� player%=1�players%
" x%(player%)=�(1279)
, y%(player%)=�(1024)
6�
@�
J
T� �getkeys
^keysleft%()=�
hkeysleft%(pausekey%)=�
r� player%=1�players%
| �nokeys
�3 � �yesno("Player "+�(player%)+" automatic?") �
�  akey%(player%)=0
� �
�
  �nokeys
�0  �"Player "�(player%)" press your left key"
�  lkey%(player%)=�getkey
�1  �"Player "�(player%)" press your right key"
�  rkey%(player%)=�getkey
�6  �"Player "�(player%)" press your accerlator key"
�  akey%(player%)=�getkey
� �
�
� player%
��nokeys
�


��game
&t%=�
0totaltime%=-�
:ittime%(it%)-=�
D�
N � �(-pausekey%) �pause
X Ȗ
b � clearscrn% �
l  ș"OS_Byte",112,screen%
v  screen%=3-screen%
�  ș"OS_Byte",113,screen%
�  �
� �
� frametime%=�-t%
�	 t%=�
� � print% �
�,   �0,0)"Time/frame:";frametime%/100"s"
�T   �"Player "�(it%)" it for ";(ittime%(it%)+�)/100"s out of ";(totaltime%+�)/100
�6   �"I.e. ";100*(ittime%(it%)+�)/(totaltime%+�)"%"
� �
�! frametime%=(frametime%+1)>>1
�8 � frametime%>maxframetime% frametime%=maxframetime%
� � prongs% �
+  itx%=x%(it%)+prongs%*sin(450-a%(it%))
'  ity%=y%(it%)+prongs%*sin(a%(it%))
 �
   itx%=x%(it%)
*  ity%=y%(it%)
4 �
>< � �<timeout% � print% � �"Timeout:";(timeout%-�)/100"s"
H � player%=1�players%
R)  �getmove(player%,lkey%,rkey%,akey%)
\)  xacc=acc*sin(450-a%(player%))*akey%
f%  yacc=acc*sin(a%(player%))*akey%
p  � count%=1�frametime%
z0   speedx(player%)=speedx(player%)*decc+xacc
�0   speedy(player%)=speedy(player%)*decc+yacc
�  � count%
�8  x%(player%)=speedx(player%)*frametime%+x%(player%)
�8  y%(player%)=speedy(player%)*frametime%+y%(player%)
�  � wrap% �
�*   x%(player%)=(x%(player%)+2560)�1280
�*   y%(player%)=(y%(player%)+2048)�1024
�  �
�R   � x%(player%)<0 � x%(player%)=-x%(player%):speedx(player%)=-speedx(player%)
�Y   � x%(player%)>1279 � x%(player%)=2559-x%(player%):speedx(player%)=-speedx(player%)
�R   � y%(player%)<0 � y%(player%)=-y%(player%):speedy(player%)=-speedy(player%)
�Y   � y%(player%)>1023 � y%(player%)=2047-y%(player%):speedy(player%)=-speedy(player%)
�  �
3  a%(player%)+=(lkey%-rkey%)*rotate%*frametime%
)  a%(player%)=(a%(player%)+360) � 360
-  � (255-player%*7)�64 Ȝ (player%*7)�255
$!  � player%=it% � � 63 Ȝ 255
.+  ȏ Ȑ x%(player%),y%(player%),radius%
8w  � prongs% � x%(player%),y%(player%),x%(player%)+prongs%*sin(450-a%(player%)),y%(player%)+prongs%*sin(a%(player%))
B  � �>timeout% �
L   � it%<>player% �
V?    � (itx%-x%(player%))^2+(ity%-y%(player%))^2<radiussq% �
`     ittime%(it%)+=�
j     it%=player%
t     ittime%(it%)-=�
~      timeout%=�+timeoutsize%
�	    �
�   �
�  �
� � player%
�� �
��
�
�
� �getkey
�
� key%
��
� � key%=1 � 127
�>  � �(-key%) � � keysleft%(key%) � keysleft%(key%)=�:=key%
 �

� �
=0

(ݤyesno(a$)
2� a%
<�
F �a$"(Y/N)";
P a%=(��32)+64
Z � �(a%)
d� a%=�("Y") � a%=�("N")
n=(a%=�("Y"))
x
�
� �nokeys
��
� test%=�
� � key%=1 � 127
�  test%=test% � �(-key%)
� �
�
� � test%
�� � �(0)=-1
��
�
�&� �getmove(player%,� l%,� r%,� a%)
�.� count%,xdis%,ydis%,nearestdist%,nearest%
�� akey%(player%) �
 l%=-�(-lkey%(player%))
 r%=-�(-rkey%(player%))
 a%=-�(-akey%(player%))
" � backwards% � a%=-a%
, �
6�
@ � automatic player
J � player%=it% �
T  nearestdist%=10000000
^  � count%=1�players%
h   � count%<>player% �
rB    xdis%=itx%-x%(count%):� wrap% � xdis%>640 xdis%=xdis%-1280
|B    ydis%=ity%-y%(count%):� wrap% � ydis%>512 ydis%=ydis%-1024
�    � wrap% �
�'     � xdis%>640 � xdis%=xdis%-1280
�(     � xdis%<-640 � xdis%=xdis%+1280
�'     � ydis%>512 � ydis%=ydis%-1024
�(     � ydis%<-512 � ydis%=ydis%+1024
�	    �
�0    � xdis%*xdis%+ydis%*ydis%<nearestdist% �
�-     nearestdist%=xdis%*xdis%+ydis%*ydis%
�     nearest%=count%
�	    �
�   �
�  �
�  xdis%=itx%-x%(nearest%)
  ydis%=ity%-y%(nearest%)
  � wrap% �
%   � xdis%>640 � xdis%=xdis%-1280
&&   � xdis%<-640 � xdis%=xdis%+1280
0%   � ydis%>512 � ydis%=ydis%-1024
:&   � ydis%<-512 � ydis%=ydis%+1024
D  �
N
  l%=0
X
  r%=0
bI  � (sin(a%(player%))*xdis%>sin(450-a%(player%))*ydis%) � l%=1 � r%=1
l
  a%=1
v%  � IF a% of player is ? THEN a=0
� �
�  � Not It!
�  xdis%=x%(player%)-itx%
�  ydis%=y%(player%)-ity%
�  � wrap% �
�%   � xdis%>640 � xdis%=xdis%-1280
�&   � xdis%<-640 � xdis%=xdis%+1280
�%   � ydis%>512 � ydis%=ydis%-1024
�&   � ydis%<-512 � ydis%=ydis%+1024
�  �
�!  distsquare%=xdis%^2+ydis%^2
�
  a%=1
�(  � distsquare%>radiussq%*400 � a%=0
S  � (sin(a%(player%))*xdis%<sin(450-a%(player%))*ydis%) � l%=1:r%=0 � r%=1:l%=0
  � � wrap% �
   � x%(player%)<60 �
 7    � a%(player%)>=180 � a%(player%)<=290 r%=0:l%=1
*6    � a%(player%)>=70 � a%(player%)<=180 r%=1:l%=0
4   �
>   � x%(player%)>1219 �
H5    � a%(player%)>=0 � a%(player%)<=110 r%=0:l%=1
R7    � a%(player%)>=250 � a%(player%)<=360 r%=1:l%=0
\   �
f   � y%(player%)<60 �
p6    � a%(player%)>=270 � a%(player%)<=20 r%=0:l%=1
z7    � a%(player%)>=160 � a%(player%)<=270 r%=1:l%=0
�   �
�   � y%(player%)>964 �
�6    � a%(player%)>=90 � a%(player%)<=200 r%=0:l%=1
�5    � a%(player%)<=90 � a%(player%)>340 r%=1:l%=0
�   �
�  �
� �
��
�� backwards% �
�
a%=-a%
��swap(l%,r%)
��
��
	
	� �swap(� a%,� b%)
	� c%
	$	c%=a%
	.	a%=b%
	8	b%=c%
	B�
	L
	V� �pause
	`totaltime%+=�
	jittime%(it%)+=�
	ttimeout%-=�
	~�nokeys
	��15
	�Q�"Game paused"'"Player ";�(it%)" is it."'"Total game time:";totaltime%/100"s"
	�1� timeout%>0 �"Timeout left:";timeout%/100"s"
	��
	�� count%=1�players%
	�k �"Player ";�(count%)" has been it for ";ittime%(count%)/100"s i.e. ";100*ittime%(count%)/totaltime%"%"
	��
	��
	�.� � �yesno("Do you want to continue?") � �
	��13
	��
	�totaltime%-=�
ittime%(it%)-=�

timeout%+=�
�

(� �centre(a$)
2� �(40-�a$)>>1);a$
<�
F
Pݤon(a%)
Z� a% � ="On "
d
="Off"
n
x� �getoptions
�pausekey$="P"
�pausekey%=56
�print%=�
�backwards%=�
�wrap%=�
�
acc=.4
�decc=.96
�
rotate%=4
�prongs%=60
�radius%=20
�players%=2
�clearscrn%=�
�timeoutsize%=200
	it%=1
maxframetime%=10
�redrawoptions(0)
"*pointer 1
,�
6 �:ȗ mx%,my%,mb%:� mb%
@ choice%=28-my%�32
J7 � choice%>0 � choice%<14 � �redrawoptions(choice%)
T �nokeys
^� choice%=14
h*pointer 0
r� prongs%<radius% prongs%=0
|radiussq%=radius%^2
�'� prongs%=0 � radiussq%=radiussq%*4
��
�
�� �redrawoptions(n%)
�@%=&0100050A
�"� n%=0 �centre("Options Menu")
�� n%=1 �
�  �:*pointer 0
�  � �31,4);
�
  �nokeys
�  keysleft%()=�
�  pausekey%=�getkey
�  pausekey$=�
  �:*pointer 1
�
5� n%=0 � n%=1 �5,4)"Pause key"�30,4)":"pausekey$
&� n%=2 � print%=� print%
0A� n%=0 � n%=2 �5,5)"In game information"�30,5)":"�on(print%)
:$� n%=3 � backwards%=� backwards%
D;� n%=0 � n%=3 �5,6)"Backwards"�30,6)":"�on(backwards%)
N� n%=4 � wrap%=� wrap%
X1� n%=0 � n%=4 �5,7)"Wrap"�30,7)":"�on(wrap%)
b&� n%=5 � acc=�getval(31,8,0,10)/10
l6� n%=0 � n%=5 �5,8)"Acceleration"�30,8)":";acc*10
v*� n%=6 � decc=1-�getval(31,9,0,10)/100
�:� n%=0 � n%=6 �5,9)"Resistance"�30,9)":";(1-decc)*100
�(� n%=7 � rotate%=�getval(31,10,0,10)
�7� n%=0 � n%=7 �5,10)"Turn speed"�30,10)":";rotate%
�)� n%=8 � radius%=�getval(31,11,4,100)
�3� n%=0 � n%=8 �5,11)"Radius"�30,11)":";radius%
�)� n%=9 � prongs%=�getval(31,12,0,500)
�9� n%=0 � n%=9 �5,12)"Prong length"�30,12)":";prongs%
�+� n%=10 � players%=�getval(31,13,0,500)
�6� n%=0 � n%=10 �5,13)"Players"�30,13)":";players%
�%� n%=11 � clearscrn%=� clearscrn%
�>� n%=0 � n%=11 �5,14)"Trails"�30,14)":";�on(� clearscrn%)
�1� n%=12 � timeoutsize%=�getval(31,15,0,5)*100
�C� n%=0 � n%=12 �5,15)"Timeout time"�30,15)":";timeoutsize%/100

+� n%=13 � it%=�getval(31,16,1,players%)

;� n%=0 � n%=13 �5,16)"Default player it"�30,16)":";it%



 � n%=0 �5,17)"Play game!"

*�

4

>� �getval(x%,y%,min,max)

H	� ans

R�:*pointer 0

\� �x%,y%)"          "

f� �x%,y%) ans

p� ans<min � ans=min

z� ans>max � ans=max

��:*pointer 1

�=ans
�
00000000  0d 00 0a 0d f4 20 3e 43  68 61 73 65 2b 0d 00 14  |..... >Chase+...|
00000010  3e f4 20 43 6f 6d 70 6c  65 74 65 6c 79 20 72 65  |>. Completely re|
00000020  2d 63 6f 64 65 64 20 62  79 20 52 6f 62 65 72 74  |-coded by Robert|
00000030  20 4d 75 6e 72 6f 2e 20  42 61 73 65 64 20 6f 6e  | Munro. Based on|
00000040  20 61 6e 20 69 64 65 61  20 62 79 0d 00 1e 12 f4  | an idea by.....|
00000050  20 4a 61 6d 69 65 20 53  68 6f 74 6f 6e 0d 00 28  | Jamie Shoton..(|
00000060  04 0d 00 32 22 ee 20 85  20 eb 20 31 33 3a f1 f6  |...2". . . 13:..|
00000070  24 22 20 61 74 20 6c 69  6e 65 20 22 3b c3 28 9e  |$" at line ";.(.|
00000080  29 3a e0 0d 00 3c 08 eb  20 31 35 0d 00 46 08 eb  |):...<.. 15..F..|
00000090  20 31 33 0d 00 50 05 87  0d 00 5a 14 de 20 6b 65  | 13..P....Z.. ke|
000000a0  79 73 6c 65 66 74 25 28  31 32 37 29 0d 00 64 0f  |ysleft%(127)..d.|
000000b0  f2 67 65 74 6f 70 74 69  6f 6e 73 0d 00 6e 05 db  |.getoptions..n..|
000000c0  0d 00 78 0a f2 73 65 74  75 70 0d 00 82 0c f2 67  |..x..setup.....g|
000000d0  65 74 6b 65 79 73 0d 00  8c 05 db 0d 00 96 04 0d  |etkeys..........|
000000e0  00 a0 09 f2 67 61 6d 65  0d 00 aa 05 e0 0d 00 b4  |....game........|
000000f0  04 0d 00 be 0c dd 20 f2  73 65 74 75 70 0d 00 c8  |...... .setup...|
00000100  10 40 25 3d 26 30 31 30  32 30 32 30 41 0d 00 d2  |.@%=&0102020A...|
00000110  0e 74 69 6d 65 6f 75 74  25 3d 30 0d 00 dc 0d 73  |.timeout%=0....s|
00000120  63 72 65 65 6e 25 3d 31  0d 00 e6 4e de 20 73 70  |creen%=1...N. sp|
00000130  65 65 64 78 28 70 6c 61  79 65 72 73 25 29 2c 73  |eedx(players%),s|
00000140  70 65 65 64 79 28 70 6c  61 79 65 72 73 25 29 2c  |peedy(players%),|
00000150  78 25 28 70 6c 61 79 65  72 73 25 29 2c 79 25 28  |x%(players%),y%(|
00000160  70 6c 61 79 65 72 73 25  29 2c 61 25 28 70 6c 61  |players%),a%(pla|
00000170  79 65 72 73 25 29 0d 00  f0 50 de 20 61 6b 65 79  |yers%)...P. akey|
00000180  25 28 70 6c 61 79 65 72  73 25 29 2c 6c 6b 65 79  |%(players%),lkey|
00000190  25 28 70 6c 61 79 65 72  73 25 29 2c 72 6b 65 79  |%(players%),rkey|
000001a0  25 28 70 6c 61 79 65 72  73 25 29 2c 69 74 74 69  |%(players%),itti|
000001b0  6d 65 25 28 70 6c 61 79  65 72 73 25 29 2c 73 69  |me%(players%),si|
000001c0  6e 28 34 35 30 29 0d 00  fa 12 e3 20 63 6f 75 6e  |n(450)..... coun|
000001d0  74 25 3d 30 b8 34 35 30  0d 01 04 1a 73 69 6e 28  |t%=0.450....sin(|
000001e0  63 6f 75 6e 74 25 29 3d  b5 b2 28 63 6f 75 6e 74  |count%)=..(count|
000001f0  25 29 0d 01 0e 05 ed 0d  01 18 18 e3 20 70 6c 61  |%).......... pla|
00000200  79 65 72 25 3d 31 b8 70  6c 61 79 65 72 73 25 0d  |yer%=1.players%.|
00000210  01 22 18 20 78 25 28 70  6c 61 79 65 72 25 29 3d  |.". x%(player%)=|
00000220  b3 28 31 32 37 39 29 0d  01 2c 18 20 79 25 28 70  |.(1279)..,. y%(p|
00000230  6c 61 79 65 72 25 29 3d  b3 28 31 30 32 34 29 0d  |layer%)=.(1024).|
00000240  01 36 05 ed 0d 01 40 05  e1 0d 01 4a 04 0d 01 54  |.6....@....J...T|
00000250  0e dd 20 f2 67 65 74 6b  65 79 73 0d 01 5e 11 6b  |.. .getkeys..^.k|
00000260  65 79 73 6c 65 66 74 25  28 29 3d b9 0d 01 68 1a  |eysleft%()=...h.|
00000270  6b 65 79 73 6c 65 66 74  25 28 70 61 75 73 65 6b  |keysleft%(pausek|
00000280  65 79 25 29 3d a3 0d 01  72 18 e3 20 70 6c 61 79  |ey%)=...r.. play|
00000290  65 72 25 3d 31 b8 70 6c  61 79 65 72 73 25 0d 01  |er%=1.players%..|
000002a0  7c 0c 20 f2 6e 6f 6b 65  79 73 0d 01 86 33 20 e7  ||. .nokeys...3 .|
000002b0  20 a4 79 65 73 6e 6f 28  22 50 6c 61 79 65 72 20  | .yesno("Player |
000002c0  22 2b c3 28 70 6c 61 79  65 72 25 29 2b 22 20 61  |"+.(player%)+" a|
000002d0  75 74 6f 6d 61 74 69 63  3f 22 29 20 8c 0d 01 90  |utomatic?") ....|
000002e0  16 20 20 61 6b 65 79 25  28 70 6c 61 79 65 72 25  |.  akey%(player%|
000002f0  29 3d 30 0d 01 9a 06 20  cc 0d 01 a4 0d 20 20 f2  |)=0.... .....  .|
00000300  6e 6f 6b 65 79 73 0d 01  ae 30 20 20 f1 22 50 6c  |nokeys...0  ."Pl|
00000310  61 79 65 72 20 22 c3 28  70 6c 61 79 65 72 25 29  |ayer ".(player%)|
00000320  22 20 70 72 65 73 73 20  79 6f 75 72 20 6c 65 66  |" press your lef|
00000330  74 20 6b 65 79 22 0d 01  b8 1c 20 20 6c 6b 65 79  |t key"....  lkey|
00000340  25 28 70 6c 61 79 65 72  25 29 3d a4 67 65 74 6b  |%(player%)=.getk|
00000350  65 79 0d 01 c2 31 20 20  f1 22 50 6c 61 79 65 72  |ey...1  ."Player|
00000360  20 22 c3 28 70 6c 61 79  65 72 25 29 22 20 70 72  | ".(player%)" pr|
00000370  65 73 73 20 79 6f 75 72  20 72 69 67 68 74 20 6b  |ess your right k|
00000380  65 79 22 0d 01 cc 1c 20  20 72 6b 65 79 25 28 70  |ey"....  rkey%(p|
00000390  6c 61 79 65 72 25 29 3d  a4 67 65 74 6b 65 79 0d  |layer%)=.getkey.|
000003a0  01 d6 36 20 20 f1 22 50  6c 61 79 65 72 20 22 c3  |..6  ."Player ".|
000003b0  28 70 6c 61 79 65 72 25  29 22 20 70 72 65 73 73  |(player%)" press|
000003c0  20 79 6f 75 72 20 61 63  63 65 72 6c 61 74 6f 72  | your accerlator|
000003d0  20 6b 65 79 22 0d 01 e0  1c 20 20 61 6b 65 79 25  | key"....  akey%|
000003e0  28 70 6c 61 79 65 72 25  29 3d a4 67 65 74 6b 65  |(player%)=.getke|
000003f0  79 0d 01 ea 06 20 cd 0d  01 f4 0d ed 20 70 6c 61  |y.... ...... pla|
00000400  79 65 72 25 0d 01 fe 0b  f2 6e 6f 6b 65 79 73 0d  |yer%.....nokeys.|
00000410  02 08 05 e1 0d 02 12 04  0d 02 1c 0a dd f2 67 61  |..............ga|
00000420  6d 65 0d 02 26 08 74 25  3d 91 0d 02 30 11 74 6f  |me..&.t%=...0.to|
00000430  74 61 6c 74 69 6d 65 25  3d 2d 91 0d 02 3a 13 69  |taltime%=-...:.i|
00000440  74 74 69 6d 65 25 28 69  74 25 29 2d 3d 91 0d 02  |ttime%(it%)-=...|
00000450  44 05 f5 0d 02 4e 1b 20  e7 20 a6 28 2d 70 61 75  |D....N. . .(-pau|
00000460  73 65 6b 65 79 25 29 20  f2 70 61 75 73 65 0d 02  |sekey%) .pause..|
00000470  58 07 20 c8 96 0d 02 62  13 20 e7 20 63 6c 65 61  |X. ....b. . clea|
00000480  72 73 63 72 6e 25 20 8c  0d 02 6c 1d 20 20 c8 99  |rscrn% ...l.  ..|
00000490  22 4f 53 5f 42 79 74 65  22 2c 31 31 32 2c 73 63  |"OS_Byte",112,sc|
000004a0  72 65 65 6e 25 0d 02 76  17 20 20 73 63 72 65 65  |reen%..v.  scree|
000004b0  6e 25 3d 33 2d 73 63 72  65 65 6e 25 0d 02 80 1d  |n%=3-screen%....|
000004c0  20 20 c8 99 22 4f 53 5f  42 79 74 65 22 2c 31 31  |  .."OS_Byte",11|
000004d0  33 2c 73 63 72 65 65 6e  25 0d 02 8a 07 20 20 db  |3,screen%....  .|
000004e0  0d 02 94 06 20 cd 0d 02  9e 14 20 66 72 61 6d 65  |.... ..... frame|
000004f0  74 69 6d 65 25 3d 91 2d  74 25 0d 02 a8 09 20 74  |time%=.-t%.... t|
00000500  25 3d 91 0d 02 b2 0f 20  e7 20 70 72 69 6e 74 25  |%=..... . print%|
00000510  20 8c 0d 02 bc 2c 20 20  20 f1 8a 30 2c 30 29 22  | ....,   ..0,0)"|
00000520  54 69 6d 65 2f 66 72 61  6d 65 3a 22 3b 66 72 61  |Time/frame:";fra|
00000530  6d 65 74 69 6d 65 25 2f  31 30 30 22 73 22 0d 02  |metime%/100"s"..|
00000540  c6 54 20 20 20 f1 22 50  6c 61 79 65 72 20 22 c3  |.T   ."Player ".|
00000550  28 69 74 25 29 22 20 69  74 20 66 6f 72 20 22 3b  |(it%)" it for ";|
00000560  28 69 74 74 69 6d 65 25  28 69 74 25 29 2b 91 29  |(ittime%(it%)+.)|
00000570  2f 31 30 30 22 73 20 6f  75 74 20 6f 66 20 22 3b  |/100"s out of ";|
00000580  28 74 6f 74 61 6c 74 69  6d 65 25 2b 91 29 2f 31  |(totaltime%+.)/1|
00000590  30 30 0d 02 d0 36 20 20  20 f1 22 49 2e 65 2e 20  |00...6   ."I.e. |
000005a0  22 3b 31 30 30 2a 28 69  74 74 69 6d 65 25 28 69  |";100*(ittime%(i|
000005b0  74 25 29 2b 91 29 2f 28  74 6f 74 61 6c 74 69 6d  |t%)+.)/(totaltim|
000005c0  65 25 2b 91 29 22 25 22  0d 02 da 06 20 cd 0d 02  |e%+.)"%".... ...|
000005d0  e4 21 20 66 72 61 6d 65  74 69 6d 65 25 3d 28 66  |.! frametime%=(f|
000005e0  72 61 6d 65 74 69 6d 65  25 2b 31 29 3e 3e 31 0d  |rametime%+1)>>1.|
000005f0  02 ee 38 20 e7 20 66 72  61 6d 65 74 69 6d 65 25  |..8 . frametime%|
00000600  3e 6d 61 78 66 72 61 6d  65 74 69 6d 65 25 20 66  |>maxframetime% f|
00000610  72 61 6d 65 74 69 6d 65  25 3d 6d 61 78 66 72 61  |rametime%=maxfra|
00000620  6d 65 74 69 6d 65 25 0d  02 f8 10 20 e7 20 70 72  |metime%.... . pr|
00000630  6f 6e 67 73 25 20 8c 0d  03 02 2b 20 20 69 74 78  |ongs% ....+  itx|
00000640  25 3d 78 25 28 69 74 25  29 2b 70 72 6f 6e 67 73  |%=x%(it%)+prongs|
00000650  25 2a 73 69 6e 28 34 35  30 2d 61 25 28 69 74 25  |%*sin(450-a%(it%|
00000660  29 29 0d 03 0c 27 20 20  69 74 79 25 3d 79 25 28  |))...'  ity%=y%(|
00000670  69 74 25 29 2b 70 72 6f  6e 67 73 25 2a 73 69 6e  |it%)+prongs%*sin|
00000680  28 61 25 28 69 74 25 29  29 0d 03 16 06 20 cc 0d  |(a%(it%)).... ..|
00000690  03 20 12 20 20 69 74 78  25 3d 78 25 28 69 74 25  |. .  itx%=x%(it%|
000006a0  29 0d 03 2a 12 20 20 69  74 79 25 3d 79 25 28 69  |)..*.  ity%=y%(i|
000006b0  74 25 29 0d 03 34 06 20  cd 0d 03 3e 3c 20 e7 20  |t%)..4. ...>< . |
000006c0  91 3c 74 69 6d 65 6f 75  74 25 20 80 20 70 72 69  |.<timeout% . pri|
000006d0  6e 74 25 20 8c 20 f1 22  54 69 6d 65 6f 75 74 3a  |nt% . ."Timeout:|
000006e0  22 3b 28 74 69 6d 65 6f  75 74 25 2d 91 29 2f 31  |";(timeout%-.)/1|
000006f0  30 30 22 73 22 0d 03 48  19 20 e3 20 70 6c 61 79  |00"s"..H. . play|
00000700  65 72 25 3d 31 b8 70 6c  61 79 65 72 73 25 0d 03  |er%=1.players%..|
00000710  52 29 20 20 f2 67 65 74  6d 6f 76 65 28 70 6c 61  |R)  .getmove(pla|
00000720  79 65 72 25 2c 6c 6b 65  79 25 2c 72 6b 65 79 25  |yer%,lkey%,rkey%|
00000730  2c 61 6b 65 79 25 29 0d  03 5c 29 20 20 78 61 63  |,akey%)..\)  xac|
00000740  63 3d 61 63 63 2a 73 69  6e 28 34 35 30 2d 61 25  |c=acc*sin(450-a%|
00000750  28 70 6c 61 79 65 72 25  29 29 2a 61 6b 65 79 25  |(player%))*akey%|
00000760  0d 03 66 25 20 20 79 61  63 63 3d 61 63 63 2a 73  |..f%  yacc=acc*s|
00000770  69 6e 28 61 25 28 70 6c  61 79 65 72 25 29 29 2a  |in(a%(player%))*|
00000780  61 6b 65 79 25 0d 03 70  1b 20 20 e3 20 63 6f 75  |akey%..p.  . cou|
00000790  6e 74 25 3d 31 b8 66 72  61 6d 65 74 69 6d 65 25  |nt%=1.frametime%|
000007a0  0d 03 7a 30 20 20 20 73  70 65 65 64 78 28 70 6c  |..z0   speedx(pl|
000007b0  61 79 65 72 25 29 3d 73  70 65 65 64 78 28 70 6c  |ayer%)=speedx(pl|
000007c0  61 79 65 72 25 29 2a 64  65 63 63 2b 78 61 63 63  |ayer%)*decc+xacc|
000007d0  0d 03 84 30 20 20 20 73  70 65 65 64 79 28 70 6c  |...0   speedy(pl|
000007e0  61 79 65 72 25 29 3d 73  70 65 65 64 79 28 70 6c  |ayer%)=speedy(pl|
000007f0  61 79 65 72 25 29 2a 64  65 63 63 2b 79 61 63 63  |ayer%)*decc+yacc|
00000800  0d 03 8e 0e 20 20 ed 20  63 6f 75 6e 74 25 0d 03  |....  . count%..|
00000810  98 38 20 20 78 25 28 70  6c 61 79 65 72 25 29 3d  |.8  x%(player%)=|
00000820  73 70 65 65 64 78 28 70  6c 61 79 65 72 25 29 2a  |speedx(player%)*|
00000830  66 72 61 6d 65 74 69 6d  65 25 2b 78 25 28 70 6c  |frametime%+x%(pl|
00000840  61 79 65 72 25 29 0d 03  a2 38 20 20 79 25 28 70  |ayer%)...8  y%(p|
00000850  6c 61 79 65 72 25 29 3d  73 70 65 65 64 79 28 70  |layer%)=speedy(p|
00000860  6c 61 79 65 72 25 29 2a  66 72 61 6d 65 74 69 6d  |layer%)*frametim|
00000870  65 25 2b 79 25 28 70 6c  61 79 65 72 25 29 0d 03  |e%+y%(player%)..|
00000880  ac 0f 20 20 e7 20 77 72  61 70 25 20 8c 0d 03 b6  |..  . wrap% ....|
00000890  2a 20 20 20 78 25 28 70  6c 61 79 65 72 25 29 3d  |*   x%(player%)=|
000008a0  28 78 25 28 70 6c 61 79  65 72 25 29 2b 32 35 36  |(x%(player%)+256|
000008b0  30 29 83 31 32 38 30 0d  03 c0 2a 20 20 20 79 25  |0).1280...*   y%|
000008c0  28 70 6c 61 79 65 72 25  29 3d 28 79 25 28 70 6c  |(player%)=(y%(pl|
000008d0  61 79 65 72 25 29 2b 32  30 34 38 29 83 31 30 32  |ayer%)+2048).102|
000008e0  34 0d 03 ca 07 20 20 cc  0d 03 d4 52 20 20 20 e7  |4....  ....R   .|
000008f0  20 78 25 28 70 6c 61 79  65 72 25 29 3c 30 20 8c  | x%(player%)<0 .|
00000900  20 78 25 28 70 6c 61 79  65 72 25 29 3d 2d 78 25  | x%(player%)=-x%|
00000910  28 70 6c 61 79 65 72 25  29 3a 73 70 65 65 64 78  |(player%):speedx|
00000920  28 70 6c 61 79 65 72 25  29 3d 2d 73 70 65 65 64  |(player%)=-speed|
00000930  78 28 70 6c 61 79 65 72  25 29 0d 03 de 59 20 20  |x(player%)...Y  |
00000940  20 e7 20 78 25 28 70 6c  61 79 65 72 25 29 3e 31  | . x%(player%)>1|
00000950  32 37 39 20 8c 20 78 25  28 70 6c 61 79 65 72 25  |279 . x%(player%|
00000960  29 3d 32 35 35 39 2d 78  25 28 70 6c 61 79 65 72  |)=2559-x%(player|
00000970  25 29 3a 73 70 65 65 64  78 28 70 6c 61 79 65 72  |%):speedx(player|
00000980  25 29 3d 2d 73 70 65 65  64 78 28 70 6c 61 79 65  |%)=-speedx(playe|
00000990  72 25 29 0d 03 e8 52 20  20 20 e7 20 79 25 28 70  |r%)...R   . y%(p|
000009a0  6c 61 79 65 72 25 29 3c  30 20 8c 20 79 25 28 70  |layer%)<0 . y%(p|
000009b0  6c 61 79 65 72 25 29 3d  2d 79 25 28 70 6c 61 79  |layer%)=-y%(play|
000009c0  65 72 25 29 3a 73 70 65  65 64 79 28 70 6c 61 79  |er%):speedy(play|
000009d0  65 72 25 29 3d 2d 73 70  65 65 64 79 28 70 6c 61  |er%)=-speedy(pla|
000009e0  79 65 72 25 29 0d 03 f2  59 20 20 20 e7 20 79 25  |yer%)...Y   . y%|
000009f0  28 70 6c 61 79 65 72 25  29 3e 31 30 32 33 20 8c  |(player%)>1023 .|
00000a00  20 79 25 28 70 6c 61 79  65 72 25 29 3d 32 30 34  | y%(player%)=204|
00000a10  37 2d 79 25 28 70 6c 61  79 65 72 25 29 3a 73 70  |7-y%(player%):sp|
00000a20  65 65 64 79 28 70 6c 61  79 65 72 25 29 3d 2d 73  |eedy(player%)=-s|
00000a30  70 65 65 64 79 28 70 6c  61 79 65 72 25 29 0d 03  |peedy(player%)..|
00000a40  fc 07 20 20 cd 0d 04 06  33 20 20 61 25 28 70 6c  |..  ....3  a%(pl|
00000a50  61 79 65 72 25 29 2b 3d  28 6c 6b 65 79 25 2d 72  |ayer%)+=(lkey%-r|
00000a60  6b 65 79 25 29 2a 72 6f  74 61 74 65 25 2a 66 72  |key%)*rotate%*fr|
00000a70  61 6d 65 74 69 6d 65 25  0d 04 10 29 20 20 61 25  |ametime%...)  a%|
00000a80  28 70 6c 61 79 65 72 25  29 3d 28 61 25 28 70 6c  |(player%)=(a%(pl|
00000a90  61 79 65 72 25 29 2b 33  36 30 29 20 83 20 33 36  |ayer%)+360) . 36|
00000aa0  30 0d 04 1a 2d 20 20 e6  20 28 32 35 35 2d 70 6c  |0...-  . (255-pl|
00000ab0  61 79 65 72 25 2a 37 29  83 36 34 20 c8 9c 20 28  |ayer%*7).64 .. (|
00000ac0  70 6c 61 79 65 72 25 2a  37 29 83 32 35 35 0d 04  |player%*7).255..|
00000ad0  24 21 20 20 e7 20 70 6c  61 79 65 72 25 3d 69 74  |$!  . player%=it|
00000ae0  25 20 8c 20 e6 20 36 33  20 c8 9c 20 32 35 35 0d  |% . . 63 .. 255.|
00000af0  04 2e 2b 20 20 c8 8f 20  c8 90 20 78 25 28 70 6c  |..+  .. .. x%(pl|
00000b00  61 79 65 72 25 29 2c 79  25 28 70 6c 61 79 65 72  |ayer%),y%(player|
00000b10  25 29 2c 72 61 64 69 75  73 25 0d 04 38 77 20 20  |%),radius%..8w  |
00000b20  e7 20 70 72 6f 6e 67 73  25 20 86 20 78 25 28 70  |. prongs% . x%(p|
00000b30  6c 61 79 65 72 25 29 2c  79 25 28 70 6c 61 79 65  |layer%),y%(playe|
00000b40  72 25 29 2c 78 25 28 70  6c 61 79 65 72 25 29 2b  |r%),x%(player%)+|
00000b50  70 72 6f 6e 67 73 25 2a  73 69 6e 28 34 35 30 2d  |prongs%*sin(450-|
00000b60  61 25 28 70 6c 61 79 65  72 25 29 29 2c 79 25 28  |a%(player%)),y%(|
00000b70  70 6c 61 79 65 72 25 29  2b 70 72 6f 6e 67 73 25  |player%)+prongs%|
00000b80  2a 73 69 6e 28 61 25 28  70 6c 61 79 65 72 25 29  |*sin(a%(player%)|
00000b90  29 0d 04 42 14 20 20 e7  20 91 3e 74 69 6d 65 6f  |)..B.  . .>timeo|
00000ba0  75 74 25 20 8c 0d 04 4c  17 20 20 20 e7 20 69 74  |ut% ...L.   . it|
00000bb0  25 3c 3e 70 6c 61 79 65  72 25 20 8c 0d 04 56 3f  |%<>player% ...V?|
00000bc0  20 20 20 20 e7 20 28 69  74 78 25 2d 78 25 28 70  |    . (itx%-x%(p|
00000bd0  6c 61 79 65 72 25 29 29  5e 32 2b 28 69 74 79 25  |layer%))^2+(ity%|
00000be0  2d 79 25 28 70 6c 61 79  65 72 25 29 29 5e 32 3c  |-y%(player%))^2<|
00000bf0  72 61 64 69 75 73 73 71  25 20 8c 0d 04 60 18 20  |radiussq% ...`. |
00000c00  20 20 20 20 69 74 74 69  6d 65 25 28 69 74 25 29  |    ittime%(it%)|
00000c10  2b 3d 91 0d 04 6a 14 20  20 20 20 20 69 74 25 3d  |+=...j.     it%=|
00000c20  70 6c 61 79 65 72 25 0d  04 74 18 20 20 20 20 20  |player%..t.     |
00000c30  69 74 74 69 6d 65 25 28  69 74 25 29 2d 3d 91 0d  |ittime%(it%)-=..|
00000c40  04 7e 20 20 20 20 20 20  74 69 6d 65 6f 75 74 25  |.~      timeout%|
00000c50  3d 91 2b 74 69 6d 65 6f  75 74 73 69 7a 65 25 0d  |=.+timeoutsize%.|
00000c60  04 88 09 20 20 20 20 cd  0d 04 92 08 20 20 20 cd  |...    .....   .|
00000c70  0d 04 9c 07 20 20 cd 0d  04 a6 0e 20 ed 20 70 6c  |....  ..... . pl|
00000c80  61 79 65 72 25 0d 04 b0  07 fd 20 a3 0d 04 ba 05  |ayer%..... .....|
00000c90  e1 0d 04 c4 04 0d 04 ce  0d dd 20 a4 67 65 74 6b  |.......... .getk|
00000ca0  65 79 0d 04 d8 0a ea 20  6b 65 79 25 0d 04 e2 05  |ey..... key%....|
00000cb0  f5 0d 04 ec 13 20 e3 20  6b 65 79 25 3d 31 20 b8  |..... . key%=1 .|
00000cc0  20 31 32 37 0d 04 f6 3e  20 20 e7 20 a6 28 2d 6b  | 127...>  . .(-k|
00000cd0  65 79 25 29 20 8c 20 e7  20 6b 65 79 73 6c 65 66  |ey%) . . keyslef|
00000ce0  74 25 28 6b 65 79 25 29  20 8c 20 6b 65 79 73 6c  |t%(key%) . keysl|
00000cf0  65 66 74 25 28 6b 65 79  25 29 3d a3 3a 3d 6b 65  |eft%(key%)=.:=ke|
00000d00  79 25 0d 05 00 06 20 ed  0d 05 0a 07 fd 20 a3 0d  |y%.... ...... ..|
00000d10  05 14 06 3d 30 0d 05 1e  04 0d 05 28 0f dd a4 79  |...=0......(...y|
00000d20  65 73 6e 6f 28 61 24 29  0d 05 32 08 ea 20 61 25  |esno(a$)..2.. a%|
00000d30  0d 05 3c 05 f5 0d 05 46  10 20 f1 61 24 22 28 59  |..<....F. .a$"(Y|
00000d40  2f 4e 29 22 3b 0d 05 50  11 20 61 25 3d 28 a5 83  |/N)";..P. a%=(..|
00000d50  33 32 29 2b 36 34 0d 05  5a 0c 20 f1 20 bd 28 61  |32)+64..Z. . .(a|
00000d60  25 29 0d 05 64 1b fd 20  61 25 3d 97 28 22 59 22  |%)..d.. a%=.("Y"|
00000d70  29 20 84 20 61 25 3d 97  28 22 4e 22 29 0d 05 6e  |) . a%=.("N")..n|
00000d80  10 3d 28 61 25 3d 97 28  22 59 22 29 29 0d 05 78  |.=(a%=.("Y"))..x|
00000d90  04 0d 05 82 0d dd 20 f2  6e 6f 6b 65 79 73 0d 05  |...... .nokeys..|
00000da0  8c 05 f5 0d 05 96 0c 20  74 65 73 74 25 3d a3 0d  |....... test%=..|
00000db0  05 a0 13 20 e3 20 6b 65  79 25 3d 31 20 b8 20 31  |... . key%=1 . 1|
00000dc0  32 37 0d 05 aa 1c 20 20  74 65 73 74 25 3d 74 65  |27....  test%=te|
00000dd0  73 74 25 20 84 20 a6 28  2d 6b 65 79 25 29 0d 05  |st% . .(-key%)..|
00000de0  b4 06 20 ed 0d 05 be 0d  fd 20 ac 20 74 65 73 74  |.. ...... . test|
00000df0  25 0d 05 c8 0f f5 20 fd  20 a6 28 30 29 3d 2d 31  |%..... . .(0)=-1|
00000e00  0d 05 d2 05 e1 0d 05 dc  04 0d 05 e6 26 dd 20 f2  |............&. .|
00000e10  67 65 74 6d 6f 76 65 28  70 6c 61 79 65 72 25 2c  |getmove(player%,|
00000e20  f8 20 6c 25 2c f8 20 72  25 2c f8 20 61 25 29 0d  |. l%,. r%,. a%).|
00000e30  05 f0 2e ea 20 63 6f 75  6e 74 25 2c 78 64 69 73  |.... count%,xdis|
00000e40  25 2c 79 64 69 73 25 2c  6e 65 61 72 65 73 74 64  |%,ydis%,nearestd|
00000e50  69 73 74 25 2c 6e 65 61  72 65 73 74 25 0d 05 fa  |ist%,nearest%...|
00000e60  16 e7 20 61 6b 65 79 25  28 70 6c 61 79 65 72 25  |.. akey%(player%|
00000e70  29 20 8c 0d 06 04 1b 20  6c 25 3d 2d a6 28 2d 6c  |) ..... l%=-.(-l|
00000e80  6b 65 79 25 28 70 6c 61  79 65 72 25 29 29 0d 06  |key%(player%))..|
00000e90  0e 1b 20 72 25 3d 2d a6  28 2d 72 6b 65 79 25 28  |.. r%=-.(-rkey%(|
00000ea0  70 6c 61 79 65 72 25 29  29 0d 06 18 1b 20 61 25  |player%)).... a%|
00000eb0  3d 2d a6 28 2d 61 6b 65  79 25 28 70 6c 61 79 65  |=-.(-akey%(playe|
00000ec0  72 25 29 29 0d 06 22 1a  20 e7 20 62 61 63 6b 77  |r%))..". . backw|
00000ed0  61 72 64 73 25 20 8c 20  61 25 3d 2d 61 25 0d 06  |ards% . a%=-a%..|
00000ee0  2c 06 20 e1 0d 06 36 05  cc 0d 06 40 17 20 f4 20  |,. ...6....@. . |
00000ef0  61 75 74 6f 6d 61 74 69  63 20 70 6c 61 79 65 72  |automatic player|
00000f00  0d 06 4a 14 20 e7 20 70  6c 61 79 65 72 25 3d 69  |..J. . player%=i|
00000f10  74 25 20 8c 0d 06 54 1b  20 20 6e 65 61 72 65 73  |t% ...T.  neares|
00000f20  74 64 69 73 74 25 3d 31  30 30 30 30 30 30 30 0d  |tdist%=10000000.|
00000f30  06 5e 19 20 20 e3 20 63  6f 75 6e 74 25 3d 31 b8  |.^.  . count%=1.|
00000f40  70 6c 61 79 65 72 73 25  0d 06 68 1a 20 20 20 e7  |players%..h.   .|
00000f50  20 63 6f 75 6e 74 25 3c  3e 70 6c 61 79 65 72 25  | count%<>player%|
00000f60  20 8c 0d 06 72 42 20 20  20 20 78 64 69 73 25 3d  | ...rB    xdis%=|
00000f70  69 74 78 25 2d 78 25 28  63 6f 75 6e 74 25 29 3a  |itx%-x%(count%):|
00000f80  e7 20 77 72 61 70 25 20  80 20 78 64 69 73 25 3e  |. wrap% . xdis%>|
00000f90  36 34 30 20 78 64 69 73  25 3d 78 64 69 73 25 2d  |640 xdis%=xdis%-|
00000fa0  31 32 38 30 0d 06 7c 42  20 20 20 20 79 64 69 73  |1280..|B    ydis|
00000fb0  25 3d 69 74 79 25 2d 79  25 28 63 6f 75 6e 74 25  |%=ity%-y%(count%|
00000fc0  29 3a e7 20 77 72 61 70  25 20 80 20 79 64 69 73  |):. wrap% . ydis|
00000fd0  25 3e 35 31 32 20 79 64  69 73 25 3d 79 64 69 73  |%>512 ydis%=ydis|
00000fe0  25 2d 31 30 32 34 0d 06  86 11 20 20 20 20 e7 20  |%-1024....    . |
00000ff0  77 72 61 70 25 20 8c 0d  06 90 27 20 20 20 20 20  |wrap% ....'     |
00001000  e7 20 78 64 69 73 25 3e  36 34 30 20 8c 20 78 64  |. xdis%>640 . xd|
00001010  69 73 25 3d 78 64 69 73  25 2d 31 32 38 30 0d 06  |is%=xdis%-1280..|
00001020  9a 28 20 20 20 20 20 e7  20 78 64 69 73 25 3c 2d  |.(     . xdis%<-|
00001030  36 34 30 20 8c 20 78 64  69 73 25 3d 78 64 69 73  |640 . xdis%=xdis|
00001040  25 2b 31 32 38 30 0d 06  a4 27 20 20 20 20 20 e7  |%+1280...'     .|
00001050  20 79 64 69 73 25 3e 35  31 32 20 8c 20 79 64 69  | ydis%>512 . ydi|
00001060  73 25 3d 79 64 69 73 25  2d 31 30 32 34 0d 06 ae  |s%=ydis%-1024...|
00001070  28 20 20 20 20 20 e7 20  79 64 69 73 25 3c 2d 35  |(     . ydis%<-5|
00001080  31 32 20 8c 20 79 64 69  73 25 3d 79 64 69 73 25  |12 . ydis%=ydis%|
00001090  2b 31 30 32 34 0d 06 b8  09 20 20 20 20 cd 0d 06  |+1024....    ...|
000010a0  c2 30 20 20 20 20 e7 20  78 64 69 73 25 2a 78 64  |.0    . xdis%*xd|
000010b0  69 73 25 2b 79 64 69 73  25 2a 79 64 69 73 25 3c  |is%+ydis%*ydis%<|
000010c0  6e 65 61 72 65 73 74 64  69 73 74 25 20 8c 0d 06  |nearestdist% ...|
000010d0  cc 2d 20 20 20 20 20 6e  65 61 72 65 73 74 64 69  |.-     nearestdi|
000010e0  73 74 25 3d 78 64 69 73  25 2a 78 64 69 73 25 2b  |st%=xdis%*xdis%+|
000010f0  79 64 69 73 25 2a 79 64  69 73 25 0d 06 d6 18 20  |ydis%*ydis%.... |
00001100  20 20 20 20 6e 65 61 72  65 73 74 25 3d 63 6f 75  |    nearest%=cou|
00001110  6e 74 25 0d 06 e0 09 20  20 20 20 cd 0d 06 ea 08  |nt%....    .....|
00001120  20 20 20 cd 0d 06 f4 07  20 20 ed 0d 06 fe 1d 20  |   .....  ..... |
00001130  20 78 64 69 73 25 3d 69  74 78 25 2d 78 25 28 6e  | xdis%=itx%-x%(n|
00001140  65 61 72 65 73 74 25 29  0d 07 08 1d 20 20 79 64  |earest%)....  yd|
00001150  69 73 25 3d 69 74 79 25  2d 79 25 28 6e 65 61 72  |is%=ity%-y%(near|
00001160  65 73 74 25 29 0d 07 12  0f 20 20 e7 20 77 72 61  |est%)....  . wra|
00001170  70 25 20 8c 0d 07 1c 25  20 20 20 e7 20 78 64 69  |p% ....%   . xdi|
00001180  73 25 3e 36 34 30 20 8c  20 78 64 69 73 25 3d 78  |s%>640 . xdis%=x|
00001190  64 69 73 25 2d 31 32 38  30 0d 07 26 26 20 20 20  |dis%-1280..&&   |
000011a0  e7 20 78 64 69 73 25 3c  2d 36 34 30 20 8c 20 78  |. xdis%<-640 . x|
000011b0  64 69 73 25 3d 78 64 69  73 25 2b 31 32 38 30 0d  |dis%=xdis%+1280.|
000011c0  07 30 25 20 20 20 e7 20  79 64 69 73 25 3e 35 31  |.0%   . ydis%>51|
000011d0  32 20 8c 20 79 64 69 73  25 3d 79 64 69 73 25 2d  |2 . ydis%=ydis%-|
000011e0  31 30 32 34 0d 07 3a 26  20 20 20 e7 20 79 64 69  |1024..:&   . ydi|
000011f0  73 25 3c 2d 35 31 32 20  8c 20 79 64 69 73 25 3d  |s%<-512 . ydis%=|
00001200  79 64 69 73 25 2b 31 30  32 34 0d 07 44 07 20 20  |ydis%+1024..D.  |
00001210  cd 0d 07 4e 0a 20 20 6c  25 3d 30 0d 07 58 0a 20  |...N.  l%=0..X. |
00001220  20 72 25 3d 30 0d 07 62  49 20 20 e7 20 28 73 69  | r%=0..bI  . (si|
00001230  6e 28 61 25 28 70 6c 61  79 65 72 25 29 29 2a 78  |n(a%(player%))*x|
00001240  64 69 73 25 3e 73 69 6e  28 34 35 30 2d 61 25 28  |dis%>sin(450-a%(|
00001250  70 6c 61 79 65 72 25 29  29 2a 79 64 69 73 25 29  |player%))*ydis%)|
00001260  20 8c 20 6c 25 3d 31 20  8b 20 72 25 3d 31 0d 07  | . l%=1 . r%=1..|
00001270  6c 0a 20 20 61 25 3d 31  0d 07 76 25 20 20 f4 20  |l.  a%=1..v%  . |
00001280  49 46 20 61 25 20 6f 66  20 70 6c 61 79 65 72 20  |IF a% of player |
00001290  69 73 20 3f 20 54 48 45  4e 20 61 3d 30 0d 07 80  |is ? THEN a=0...|
000012a0  06 20 cc 0d 07 8a 0f 20  20 f4 20 4e 6f 74 20 49  |. .....  . Not I|
000012b0  74 21 0d 07 94 1c 20 20  78 64 69 73 25 3d 78 25  |t!....  xdis%=x%|
000012c0  28 70 6c 61 79 65 72 25  29 2d 69 74 78 25 0d 07  |(player%)-itx%..|
000012d0  9e 1c 20 20 79 64 69 73  25 3d 79 25 28 70 6c 61  |..  ydis%=y%(pla|
000012e0  79 65 72 25 29 2d 69 74  79 25 0d 07 a8 0f 20 20  |yer%)-ity%....  |
000012f0  e7 20 77 72 61 70 25 20  8c 0d 07 b2 25 20 20 20  |. wrap% ....%   |
00001300  e7 20 78 64 69 73 25 3e  36 34 30 20 8c 20 78 64  |. xdis%>640 . xd|
00001310  69 73 25 3d 78 64 69 73  25 2d 31 32 38 30 0d 07  |is%=xdis%-1280..|
00001320  bc 26 20 20 20 e7 20 78  64 69 73 25 3c 2d 36 34  |.&   . xdis%<-64|
00001330  30 20 8c 20 78 64 69 73  25 3d 78 64 69 73 25 2b  |0 . xdis%=xdis%+|
00001340  31 32 38 30 0d 07 c6 25  20 20 20 e7 20 79 64 69  |1280...%   . ydi|
00001350  73 25 3e 35 31 32 20 8c  20 79 64 69 73 25 3d 79  |s%>512 . ydis%=y|
00001360  64 69 73 25 2d 31 30 32  34 0d 07 d0 26 20 20 20  |dis%-1024...&   |
00001370  e7 20 79 64 69 73 25 3c  2d 35 31 32 20 8c 20 79  |. ydis%<-512 . y|
00001380  64 69 73 25 3d 79 64 69  73 25 2b 31 30 32 34 0d  |dis%=ydis%+1024.|
00001390  07 da 07 20 20 cd 0d 07  e4 21 20 20 64 69 73 74  |...  ....!  dist|
000013a0  73 71 75 61 72 65 25 3d  78 64 69 73 25 5e 32 2b  |square%=xdis%^2+|
000013b0  79 64 69 73 25 5e 32 0d  07 ee 0a 20 20 61 25 3d  |ydis%^2....  a%=|
000013c0  31 0d 07 f8 28 20 20 e7  20 64 69 73 74 73 71 75  |1...(  . distsqu|
000013d0  61 72 65 25 3e 72 61 64  69 75 73 73 71 25 2a 34  |are%>radiussq%*4|
000013e0  30 30 20 8c 20 61 25 3d  30 0d 08 02 53 20 20 e7  |00 . a%=0...S  .|
000013f0  20 28 73 69 6e 28 61 25  28 70 6c 61 79 65 72 25  | (sin(a%(player%|
00001400  29 29 2a 78 64 69 73 25  3c 73 69 6e 28 34 35 30  |))*xdis%<sin(450|
00001410  2d 61 25 28 70 6c 61 79  65 72 25 29 29 2a 79 64  |-a%(player%))*yd|
00001420  69 73 25 29 20 8c 20 6c  25 3d 31 3a 72 25 3d 30  |is%) . l%=1:r%=0|
00001430  20 8b 20 72 25 3d 31 3a  6c 25 3d 30 0d 08 0c 11  | . r%=1:l%=0....|
00001440  20 20 e7 20 ac 20 77 72  61 70 25 20 8c 0d 08 16  |  . . wrap% ....|
00001450  19 20 20 20 e7 20 78 25  28 70 6c 61 79 65 72 25  |.   . x%(player%|
00001460  29 3c 36 30 20 8c 0d 08  20 37 20 20 20 20 e7 20  |)<60 ... 7    . |
00001470  61 25 28 70 6c 61 79 65  72 25 29 3e 3d 31 38 30  |a%(player%)>=180|
00001480  20 80 20 61 25 28 70 6c  61 79 65 72 25 29 3c 3d  | . a%(player%)<=|
00001490  32 39 30 20 72 25 3d 30  3a 6c 25 3d 31 0d 08 2a  |290 r%=0:l%=1..*|
000014a0  36 20 20 20 20 e7 20 61  25 28 70 6c 61 79 65 72  |6    . a%(player|
000014b0  25 29 3e 3d 37 30 20 80  20 61 25 28 70 6c 61 79  |%)>=70 . a%(play|
000014c0  65 72 25 29 3c 3d 31 38  30 20 72 25 3d 31 3a 6c  |er%)<=180 r%=1:l|
000014d0  25 3d 30 0d 08 34 08 20  20 20 cd 0d 08 3e 1b 20  |%=0..4.   ...>. |
000014e0  20 20 e7 20 78 25 28 70  6c 61 79 65 72 25 29 3e  |  . x%(player%)>|
000014f0  31 32 31 39 20 8c 0d 08  48 35 20 20 20 20 e7 20  |1219 ...H5    . |
00001500  61 25 28 70 6c 61 79 65  72 25 29 3e 3d 30 20 80  |a%(player%)>=0 .|
00001510  20 61 25 28 70 6c 61 79  65 72 25 29 3c 3d 31 31  | a%(player%)<=11|
00001520  30 20 72 25 3d 30 3a 6c  25 3d 31 0d 08 52 37 20  |0 r%=0:l%=1..R7 |
00001530  20 20 20 e7 20 61 25 28  70 6c 61 79 65 72 25 29  |   . a%(player%)|
00001540  3e 3d 32 35 30 20 80 20  61 25 28 70 6c 61 79 65  |>=250 . a%(playe|
00001550  72 25 29 3c 3d 33 36 30  20 72 25 3d 31 3a 6c 25  |r%)<=360 r%=1:l%|
00001560  3d 30 0d 08 5c 08 20 20  20 cd 0d 08 66 19 20 20  |=0..\.   ...f.  |
00001570  20 e7 20 79 25 28 70 6c  61 79 65 72 25 29 3c 36  | . y%(player%)<6|
00001580  30 20 8c 0d 08 70 36 20  20 20 20 e7 20 61 25 28  |0 ...p6    . a%(|
00001590  70 6c 61 79 65 72 25 29  3e 3d 32 37 30 20 84 20  |player%)>=270 . |
000015a0  61 25 28 70 6c 61 79 65  72 25 29 3c 3d 32 30 20  |a%(player%)<=20 |
000015b0  72 25 3d 30 3a 6c 25 3d  31 0d 08 7a 37 20 20 20  |r%=0:l%=1..z7   |
000015c0  20 e7 20 61 25 28 70 6c  61 79 65 72 25 29 3e 3d  | . a%(player%)>=|
000015d0  31 36 30 20 80 20 61 25  28 70 6c 61 79 65 72 25  |160 . a%(player%|
000015e0  29 3c 3d 32 37 30 20 72  25 3d 31 3a 6c 25 3d 30  |)<=270 r%=1:l%=0|
000015f0  0d 08 84 08 20 20 20 cd  0d 08 8e 1a 20 20 20 e7  |....   .....   .|
00001600  20 79 25 28 70 6c 61 79  65 72 25 29 3e 39 36 34  | y%(player%)>964|
00001610  20 8c 0d 08 98 36 20 20  20 20 e7 20 61 25 28 70  | ....6    . a%(p|
00001620  6c 61 79 65 72 25 29 3e  3d 39 30 20 80 20 61 25  |layer%)>=90 . a%|
00001630  28 70 6c 61 79 65 72 25  29 3c 3d 32 30 30 20 72  |(player%)<=200 r|
00001640  25 3d 30 3a 6c 25 3d 31  0d 08 a2 35 20 20 20 20  |%=0:l%=1...5    |
00001650  e7 20 61 25 28 70 6c 61  79 65 72 25 29 3c 3d 39  |. a%(player%)<=9|
00001660  30 20 84 20 61 25 28 70  6c 61 79 65 72 25 29 3e  |0 . a%(player%)>|
00001670  33 34 30 20 72 25 3d 31  3a 6c 25 3d 30 0d 08 ac  |340 r%=1:l%=0...|
00001680  08 20 20 20 cd 0d 08 b6  07 20 20 cd 0d 08 c0 06  |.   .....  .....|
00001690  20 cd 0d 08 ca 05 cd 0d  08 d4 12 e7 20 62 61 63  | ........... bac|
000016a0  6b 77 61 72 64 73 25 20  8c 0d 08 de 0a 61 25 3d  |kwards% .....a%=|
000016b0  2d 61 25 0d 08 e8 10 f2  73 77 61 70 28 6c 25 2c  |-a%.....swap(l%,|
000016c0  72 25 29 0d 08 f2 05 cd  0d 08 fc 05 e1 0d 09 06  |r%).............|
000016d0  04 0d 09 10 16 dd 20 f2  73 77 61 70 28 f8 20 61  |...... .swap(. a|
000016e0  25 2c f8 20 62 25 29 0d  09 1a 08 ea 20 63 25 0d  |%,. b%)..... c%.|
000016f0  09 24 09 63 25 3d 61 25  0d 09 2e 09 61 25 3d 62  |.$.c%=a%....a%=b|
00001700  25 0d 09 38 09 62 25 3d  63 25 0d 09 42 05 e1 0d  |%..8.b%=c%..B...|
00001710  09 4c 04 0d 09 56 0c dd  20 f2 70 61 75 73 65 0d  |.L...V.. .pause.|
00001720  09 60 11 74 6f 74 61 6c  74 69 6d 65 25 2b 3d 91  |.`.totaltime%+=.|
00001730  0d 09 6a 13 69 74 74 69  6d 65 25 28 69 74 25 29  |..j.ittime%(it%)|
00001740  2b 3d 91 0d 09 74 0f 74  69 6d 65 6f 75 74 25 2d  |+=...t.timeout%-|
00001750  3d 91 0d 09 7e 0b f2 6e  6f 6b 65 79 73 0d 09 88  |=...~..nokeys...|
00001760  07 eb 31 35 0d 09 92 51  f1 22 47 61 6d 65 20 70  |..15...Q."Game p|
00001770  61 75 73 65 64 22 27 22  50 6c 61 79 65 72 20 22  |aused"'"Player "|
00001780  3b c3 28 69 74 25 29 22  20 69 73 20 69 74 2e 22  |;.(it%)" is it."|
00001790  27 22 54 6f 74 61 6c 20  67 61 6d 65 20 74 69 6d  |'"Total game tim|
000017a0  65 3a 22 3b 74 6f 74 61  6c 74 69 6d 65 25 2f 31  |e:";totaltime%/1|
000017b0  30 30 22 73 22 0d 09 9c  31 e7 20 74 69 6d 65 6f  |00"s"...1. timeo|
000017c0  75 74 25 3e 30 20 f1 22  54 69 6d 65 6f 75 74 20  |ut%>0 ."Timeout |
000017d0  6c 65 66 74 3a 22 3b 74  69 6d 65 6f 75 74 25 2f  |left:";timeout%/|
000017e0  31 30 30 22 73 22 0d 09  a6 05 f1 0d 09 b0 17 e3  |100"s"..........|
000017f0  20 63 6f 75 6e 74 25 3d  31 b8 70 6c 61 79 65 72  | count%=1.player|
00001800  73 25 0d 09 ba 6b 20 f1  22 50 6c 61 79 65 72 20  |s%...k ."Player |
00001810  22 3b c3 28 63 6f 75 6e  74 25 29 22 20 68 61 73  |";.(count%)" has|
00001820  20 62 65 65 6e 20 69 74  20 66 6f 72 20 22 3b 69  | been it for ";i|
00001830  74 74 69 6d 65 25 28 63  6f 75 6e 74 25 29 2f 31  |ttime%(count%)/1|
00001840  30 30 22 73 20 69 2e 65  2e 20 22 3b 31 30 30 2a  |00"s i.e. ";100*|
00001850  69 74 74 69 6d 65 25 28  63 6f 75 6e 74 25 29 2f  |ittime%(count%)/|
00001860  74 6f 74 61 6c 74 69 6d  65 25 22 25 22 0d 09 c4  |totaltime%"%"...|
00001870  05 ed 0d 09 ce 05 f1 0d  09 d8 2e e7 20 ac 20 a4  |............ . .|
00001880  79 65 73 6e 6f 28 22 44  6f 20 79 6f 75 20 77 61  |yesno("Do you wa|
00001890  6e 74 20 74 6f 20 63 6f  6e 74 69 6e 75 65 3f 22  |nt to continue?"|
000018a0  29 20 8c 20 e0 0d 09 e2  07 eb 31 33 0d 09 ec 05  |) . ......13....|
000018b0  87 0d 09 f6 11 74 6f 74  61 6c 74 69 6d 65 25 2d  |.....totaltime%-|
000018c0  3d 91 0d 0a 00 13 69 74  74 69 6d 65 25 28 69 74  |=.....ittime%(it|
000018d0  25 29 2d 3d 91 0d 0a 0a  0f 74 69 6d 65 6f 75 74  |%)-=.....timeout|
000018e0  25 2b 3d 91 0d 0a 14 05  e1 0d 0a 1e 04 0d 0a 28  |%+=............(|
000018f0  11 dd 20 f2 63 65 6e 74  72 65 28 61 24 29 0d 0a  |.. .centre(a$)..|
00001900  32 16 f1 20 8a 28 34 30  2d a9 61 24 29 3e 3e 31  |2.. .(40-.a$)>>1|
00001910  29 3b 61 24 0d 0a 3c 05  e1 0d 0a 46 04 0d 0a 50  |);a$..<....F...P|
00001920  0c dd a4 6f 6e 28 61 25  29 0d 0a 5a 11 e7 20 61  |...on(a%)..Z.. a|
00001930  25 20 8c 20 3d 22 4f 6e  20 22 0d 0a 64 0a 3d 22  |% . ="On "..d.="|
00001940  4f 66 66 22 0d 0a 6e 04  0d 0a 78 11 dd 20 f2 67  |Off"..n...x.. .g|
00001950  65 74 6f 70 74 69 6f 6e  73 0d 0a 82 11 70 61 75  |etoptions....pau|
00001960  73 65 6b 65 79 24 3d 22  50 22 0d 0a 8c 10 70 61  |sekey$="P"....pa|
00001970  75 73 65 6b 65 79 25 3d  35 36 0d 0a 96 0c 70 72  |usekey%=56....pr|
00001980  69 6e 74 25 3d b9 0d 0a  a0 10 62 61 63 6b 77 61  |int%=.....backwa|
00001990  72 64 73 25 3d a3 0d 0a  aa 0b 77 72 61 70 25 3d  |rds%=.....wrap%=|
000019a0  a3 0d 0a b4 0a 61 63 63  3d 2e 34 0d 0a be 0c 64  |.....acc=.4....d|
000019b0  65 63 63 3d 2e 39 36 0d  0a c8 0d 72 6f 74 61 74  |ecc=.96....rotat|
000019c0  65 25 3d 34 0d 0a d2 0e  70 72 6f 6e 67 73 25 3d  |e%=4....prongs%=|
000019d0  36 30 0d 0a dc 0e 72 61  64 69 75 73 25 3d 32 30  |60....radius%=20|
000019e0  0d 0a e6 0e 70 6c 61 79  65 72 73 25 3d 32 0d 0a  |....players%=2..|
000019f0  f0 10 63 6c 65 61 72 73  63 72 6e 25 3d b9 0d 0a  |..clearscrn%=...|
00001a00  fa 14 74 69 6d 65 6f 75  74 73 69 7a 65 25 3d 32  |..timeoutsize%=2|
00001a10  30 30 0d 0b 04 09 69 74  25 3d 31 0d 0b 0e 14 6d  |00....it%=1....m|
00001a20  61 78 66 72 61 6d 65 74  69 6d 65 25 3d 31 30 0d  |axframetime%=10.|
00001a30  0b 18 15 f2 72 65 64 72  61 77 6f 70 74 69 6f 6e  |....redrawoption|
00001a40  73 28 30 29 0d 0b 22 0e  2a 70 6f 69 6e 74 65 72  |s(0)..".*pointer|
00001a50  20 31 0d 0b 2c 05 f5 0d  0b 36 1b 20 f5 3a c8 97  | 1..,....6. .:..|
00001a60  20 6d 78 25 2c 6d 79 25  2c 6d 62 25 3a fd 20 6d  | mx%,my%,mb%:. m|
00001a70  62 25 0d 0b 40 16 20 63  68 6f 69 63 65 25 3d 32  |b%..@. choice%=2|
00001a80  38 2d 6d 79 25 81 33 32  0d 0b 4a 37 20 e7 20 63  |8-my%.32..J7 . c|
00001a90  68 6f 69 63 65 25 3e 30  20 80 20 63 68 6f 69 63  |hoice%>0 . choic|
00001aa0  65 25 3c 31 34 20 8c 20  f2 72 65 64 72 61 77 6f  |e%<14 . .redrawo|
00001ab0  70 74 69 6f 6e 73 28 63  68 6f 69 63 65 25 29 0d  |ptions(choice%).|
00001ac0  0b 54 0c 20 f2 6e 6f 6b  65 79 73 0d 0b 5e 10 fd  |.T. .nokeys..^..|
00001ad0  20 63 68 6f 69 63 65 25  3d 31 34 0d 0b 68 0e 2a  | choice%=14..h.*|
00001ae0  70 6f 69 6e 74 65 72 20  30 0d 0b 72 1f e7 20 70  |pointer 0..r.. p|
00001af0  72 6f 6e 67 73 25 3c 72  61 64 69 75 73 25 20 70  |rongs%<radius% p|
00001b00  72 6f 6e 67 73 25 3d 30  0d 0b 7c 17 72 61 64 69  |rongs%=0..|.radi|
00001b10  75 73 73 71 25 3d 72 61  64 69 75 73 25 5e 32 0d  |ussq%=radius%^2.|
00001b20  0b 86 27 e7 20 70 72 6f  6e 67 73 25 3d 30 20 8c  |..'. prongs%=0 .|
00001b30  20 72 61 64 69 75 73 73  71 25 3d 72 61 64 69 75  | radiussq%=radiu|
00001b40  73 73 71 25 2a 34 0d 0b  90 05 e1 0d 0b 9a 04 0d  |ssq%*4..........|
00001b50  0b a4 18 dd 20 f2 72 65  64 72 61 77 6f 70 74 69  |.... .redrawopti|
00001b60  6f 6e 73 28 6e 25 29 0d  0b ae 10 40 25 3d 26 30  |ons(n%)....@%=&0|
00001b70  31 30 30 30 35 30 41 0d  0b b8 22 e7 20 6e 25 3d  |100050A...". n%=|
00001b80  30 20 f2 63 65 6e 74 72  65 28 22 4f 70 74 69 6f  |0 .centre("Optio|
00001b90  6e 73 20 4d 65 6e 75 22  29 0d 0b c2 0c e7 20 6e  |ns Menu")..... n|
00001ba0  25 3d 31 20 8c 0d 0b cc  12 20 20 ee 3a 2a 70 6f  |%=1 .....  .:*po|
00001bb0  69 6e 74 65 72 20 30 0d  0b d6 0f 20 20 f1 20 8a  |inter 0....  . .|
00001bc0  33 31 2c 34 29 3b 0d 0b  e0 0d 20 20 f2 6e 6f 6b  |31,4);....  .nok|
00001bd0  65 79 73 0d 0b ea 13 20  20 6b 65 79 73 6c 65 66  |eys....  keyslef|
00001be0  74 25 28 29 3d b9 0d 0b  f4 17 20 20 70 61 75 73  |t%()=.....  paus|
00001bf0  65 6b 65 79 25 3d a4 67  65 74 6b 65 79 0d 0b fe  |ekey%=.getkey...|
00001c00  11 20 20 70 61 75 73 65  6b 65 79 24 3d be 0d 0c  |.  pausekey$=...|
00001c10  08 12 20 20 87 3a 2a 70  6f 69 6e 74 65 72 20 31  |..  .:*pointer 1|
00001c20  0d 0c 12 05 cd 0d 0c 1c  35 e7 20 6e 25 3d 30 20  |........5. n%=0 |
00001c30  84 20 6e 25 3d 31 20 f1  8a 35 2c 34 29 22 50 61  |. n%=1 ..5,4)"Pa|
00001c40  75 73 65 20 6b 65 79 22  8a 33 30 2c 34 29 22 3a  |use key".30,4)":|
00001c50  22 70 61 75 73 65 6b 65  79 24 0d 0c 26 1c e7 20  |"pausekey$..&.. |
00001c60  6e 25 3d 32 20 8c 20 70  72 69 6e 74 25 3d ac 20  |n%=2 . print%=. |
00001c70  70 72 69 6e 74 25 0d 0c  30 41 e7 20 6e 25 3d 30  |print%..0A. n%=0|
00001c80  20 84 20 6e 25 3d 32 20  f1 8a 35 2c 35 29 22 49  | . n%=2 ..5,5)"I|
00001c90  6e 20 67 61 6d 65 20 69  6e 66 6f 72 6d 61 74 69  |n game informati|
00001ca0  6f 6e 22 8a 33 30 2c 35  29 22 3a 22 a4 6f 6e 28  |on".30,5)":".on(|
00001cb0  70 72 69 6e 74 25 29 0d  0c 3a 24 e7 20 6e 25 3d  |print%)..:$. n%=|
00001cc0  33 20 8c 20 62 61 63 6b  77 61 72 64 73 25 3d ac  |3 . backwards%=.|
00001cd0  20 62 61 63 6b 77 61 72  64 73 25 0d 0c 44 3b e7  | backwards%..D;.|
00001ce0  20 6e 25 3d 30 20 84 20  6e 25 3d 33 20 f1 8a 35  | n%=0 . n%=3 ..5|
00001cf0  2c 36 29 22 42 61 63 6b  77 61 72 64 73 22 8a 33  |,6)"Backwards".3|
00001d00  30 2c 36 29 22 3a 22 a4  6f 6e 28 62 61 63 6b 77  |0,6)":".on(backw|
00001d10  61 72 64 73 25 29 0d 0c  4e 1a e7 20 6e 25 3d 34  |ards%)..N.. n%=4|
00001d20  20 8c 20 77 72 61 70 25  3d ac 20 77 72 61 70 25  | . wrap%=. wrap%|
00001d30  0d 0c 58 31 e7 20 6e 25  3d 30 20 84 20 6e 25 3d  |..X1. n%=0 . n%=|
00001d40  34 20 f1 8a 35 2c 37 29  22 57 72 61 70 22 8a 33  |4 ..5,7)"Wrap".3|
00001d50  30 2c 37 29 22 3a 22 a4  6f 6e 28 77 72 61 70 25  |0,7)":".on(wrap%|
00001d60  29 0d 0c 62 26 e7 20 6e  25 3d 35 20 8c 20 61 63  |)..b&. n%=5 . ac|
00001d70  63 3d a4 67 65 74 76 61  6c 28 33 31 2c 38 2c 30  |c=.getval(31,8,0|
00001d80  2c 31 30 29 2f 31 30 0d  0c 6c 36 e7 20 6e 25 3d  |,10)/10..l6. n%=|
00001d90  30 20 84 20 6e 25 3d 35  20 f1 8a 35 2c 38 29 22  |0 . n%=5 ..5,8)"|
00001da0  41 63 63 65 6c 65 72 61  74 69 6f 6e 22 8a 33 30  |Acceleration".30|
00001db0  2c 38 29 22 3a 22 3b 61  63 63 2a 31 30 0d 0c 76  |,8)":";acc*10..v|
00001dc0  2a e7 20 6e 25 3d 36 20  8c 20 64 65 63 63 3d 31  |*. n%=6 . decc=1|
00001dd0  2d a4 67 65 74 76 61 6c  28 33 31 2c 39 2c 30 2c  |-.getval(31,9,0,|
00001de0  31 30 29 2f 31 30 30 0d  0c 80 3a e7 20 6e 25 3d  |10)/100...:. n%=|
00001df0  30 20 84 20 6e 25 3d 36  20 f1 8a 35 2c 39 29 22  |0 . n%=6 ..5,9)"|
00001e00  52 65 73 69 73 74 61 6e  63 65 22 8a 33 30 2c 39  |Resistance".30,9|
00001e10  29 22 3a 22 3b 28 31 2d  64 65 63 63 29 2a 31 30  |)":";(1-decc)*10|
00001e20  30 0d 0c 8a 28 e7 20 6e  25 3d 37 20 8c 20 72 6f  |0...(. n%=7 . ro|
00001e30  74 61 74 65 25 3d a4 67  65 74 76 61 6c 28 33 31  |tate%=.getval(31|
00001e40  2c 31 30 2c 30 2c 31 30  29 0d 0c 94 37 e7 20 6e  |,10,0,10)...7. n|
00001e50  25 3d 30 20 84 20 6e 25  3d 37 20 f1 8a 35 2c 31  |%=0 . n%=7 ..5,1|
00001e60  30 29 22 54 75 72 6e 20  73 70 65 65 64 22 8a 33  |0)"Turn speed".3|
00001e70  30 2c 31 30 29 22 3a 22  3b 72 6f 74 61 74 65 25  |0,10)":";rotate%|
00001e80  0d 0c 9e 29 e7 20 6e 25  3d 38 20 8c 20 72 61 64  |...). n%=8 . rad|
00001e90  69 75 73 25 3d a4 67 65  74 76 61 6c 28 33 31 2c  |ius%=.getval(31,|
00001ea0  31 31 2c 34 2c 31 30 30  29 0d 0c a8 33 e7 20 6e  |11,4,100)...3. n|
00001eb0  25 3d 30 20 84 20 6e 25  3d 38 20 f1 8a 35 2c 31  |%=0 . n%=8 ..5,1|
00001ec0  31 29 22 52 61 64 69 75  73 22 8a 33 30 2c 31 31  |1)"Radius".30,11|
00001ed0  29 22 3a 22 3b 72 61 64  69 75 73 25 0d 0c b2 29  |)":";radius%...)|
00001ee0  e7 20 6e 25 3d 39 20 8c  20 70 72 6f 6e 67 73 25  |. n%=9 . prongs%|
00001ef0  3d a4 67 65 74 76 61 6c  28 33 31 2c 31 32 2c 30  |=.getval(31,12,0|
00001f00  2c 35 30 30 29 0d 0c bc  39 e7 20 6e 25 3d 30 20  |,500)...9. n%=0 |
00001f10  84 20 6e 25 3d 39 20 f1  8a 35 2c 31 32 29 22 50  |. n%=9 ..5,12)"P|
00001f20  72 6f 6e 67 20 6c 65 6e  67 74 68 22 8a 33 30 2c  |rong length".30,|
00001f30  31 32 29 22 3a 22 3b 70  72 6f 6e 67 73 25 0d 0c  |12)":";prongs%..|
00001f40  c6 2b e7 20 6e 25 3d 31  30 20 8c 20 70 6c 61 79  |.+. n%=10 . play|
00001f50  65 72 73 25 3d a4 67 65  74 76 61 6c 28 33 31 2c  |ers%=.getval(31,|
00001f60  31 33 2c 30 2c 35 30 30  29 0d 0c d0 36 e7 20 6e  |13,0,500)...6. n|
00001f70  25 3d 30 20 84 20 6e 25  3d 31 30 20 f1 8a 35 2c  |%=0 . n%=10 ..5,|
00001f80  31 33 29 22 50 6c 61 79  65 72 73 22 8a 33 30 2c  |13)"Players".30,|
00001f90  31 33 29 22 3a 22 3b 70  6c 61 79 65 72 73 25 0d  |13)":";players%.|
00001fa0  0c da 25 e7 20 6e 25 3d  31 31 20 8c 20 63 6c 65  |..%. n%=11 . cle|
00001fb0  61 72 73 63 72 6e 25 3d  ac 20 63 6c 65 61 72 73  |arscrn%=. clears|
00001fc0  63 72 6e 25 0d 0c e4 3e  e7 20 6e 25 3d 30 20 84  |crn%...>. n%=0 .|
00001fd0  20 6e 25 3d 31 31 20 f1  8a 35 2c 31 34 29 22 54  | n%=11 ..5,14)"T|
00001fe0  72 61 69 6c 73 22 8a 33  30 2c 31 34 29 22 3a 22  |rails".30,14)":"|
00001ff0  3b a4 6f 6e 28 ac 20 63  6c 65 61 72 73 63 72 6e  |;.on(. clearscrn|
00002000  25 29 0d 0c ee 31 e7 20  6e 25 3d 31 32 20 8c 20  |%)...1. n%=12 . |
00002010  74 69 6d 65 6f 75 74 73  69 7a 65 25 3d a4 67 65  |timeoutsize%=.ge|
00002020  74 76 61 6c 28 33 31 2c  31 35 2c 30 2c 35 29 2a  |tval(31,15,0,5)*|
00002030  31 30 30 0d 0c f8 43 e7  20 6e 25 3d 30 20 84 20  |100...C. n%=0 . |
00002040  6e 25 3d 31 32 20 f1 8a  35 2c 31 35 29 22 54 69  |n%=12 ..5,15)"Ti|
00002050  6d 65 6f 75 74 20 74 69  6d 65 22 8a 33 30 2c 31  |meout time".30,1|
00002060  35 29 22 3a 22 3b 74 69  6d 65 6f 75 74 73 69 7a  |5)":";timeoutsiz|
00002070  65 25 2f 31 30 30 0d 0d  02 2b e7 20 6e 25 3d 31  |e%/100...+. n%=1|
00002080  33 20 8c 20 69 74 25 3d  a4 67 65 74 76 61 6c 28  |3 . it%=.getval(|
00002090  33 31 2c 31 36 2c 31 2c  70 6c 61 79 65 72 73 25  |31,16,1,players%|
000020a0  29 0d 0d 0c 3b e7 20 6e  25 3d 30 20 84 20 6e 25  |)...;. n%=0 . n%|
000020b0  3d 31 33 20 f1 8a 35 2c  31 36 29 22 44 65 66 61  |=13 ..5,16)"Defa|
000020c0  75 6c 74 20 70 6c 61 79  65 72 20 69 74 22 8a 33  |ult player it".3|
000020d0  30 2c 31 36 29 22 3a 22  3b 69 74 25 0d 0d 16 04  |0,16)":";it%....|
000020e0  0d 0d 20 1e e7 20 6e 25  3d 30 20 f1 8a 35 2c 31  |.. .. n%=0 ..5,1|
000020f0  37 29 22 50 6c 61 79 20  67 61 6d 65 21 22 0d 0d  |7)"Play game!"..|
00002100  2a 05 e1 0d 0d 34 04 0d  0d 3e 1c dd 20 a4 67 65  |*....4...>.. .ge|
00002110  74 76 61 6c 28 78 25 2c  79 25 2c 6d 69 6e 2c 6d  |tval(x%,y%,min,m|
00002120  61 78 29 0d 0d 48 09 ea  20 61 6e 73 0d 0d 52 10  |ax)..H.. ans..R.|
00002130  ee 3a 2a 70 6f 69 6e 74  65 72 20 30 0d 0d 5c 19  |.:*pointer 0..\.|
00002140  f1 20 8a 78 25 2c 79 25  29 22 20 20 20 20 20 20  |. .x%,y%)"      |
00002150  20 20 20 20 22 0d 0d 66  11 e8 20 8a 78 25 2c 79  |    "..f.. .x%,y|
00002160  25 29 20 61 6e 73 0d 0d  70 17 e7 20 61 6e 73 3c  |%) ans..p.. ans<|
00002170  6d 69 6e 20 8c 20 61 6e  73 3d 6d 69 6e 0d 0d 7a  |min . ans=min..z|
00002180  17 e7 20 61 6e 73 3e 6d  61 78 20 8c 20 61 6e 73  |.. ans>max . ans|
00002190  3d 6d 61 78 0d 0d 84 10  87 3a 2a 70 6f 69 6e 74  |=max.....:*point|
000021a0  65 72 20 31 0d 0d 8e 08  3d 61 6e 73 0d ff        |er 1....=ans..|
000021ae