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

Regulars/StarInfo/Munro/Chase+

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+
Read OK:
File size: 21AA 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@%="F10.2"
  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@%="g10.5"
 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
�@%="F10.2"
�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%)
�@%="g10.5"
�"� 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  0e 40 25 3d 22 46 31 30  2e 32 22 0d 00 d2 0e 74  |.@%="F10.2"....t|
00000110  69 6d 65 6f 75 74 25 3d  30 0d 00 dc 0d 73 63 72  |imeout%=0....scr|
00000120  65 65 6e 25 3d 31 0d 00  e6 4e de 20 73 70 65 65  |een%=1...N. spee|
00000130  64 78 28 70 6c 61 79 65  72 73 25 29 2c 73 70 65  |dx(players%),spe|
00000140  65 64 79 28 70 6c 61 79  65 72 73 25 29 2c 78 25  |edy(players%),x%|
00000150  28 70 6c 61 79 65 72 73  25 29 2c 79 25 28 70 6c  |(players%),y%(pl|
00000160  61 79 65 72 73 25 29 2c  61 25 28 70 6c 61 79 65  |ayers%),a%(playe|
00000170  72 73 25 29 0d 00 f0 50  de 20 61 6b 65 79 25 28  |rs%)...P. akey%(|
00000180  70 6c 61 79 65 72 73 25  29 2c 6c 6b 65 79 25 28  |players%),lkey%(|
00000190  70 6c 61 79 65 72 73 25  29 2c 72 6b 65 79 25 28  |players%),rkey%(|
000001a0  70 6c 61 79 65 72 73 25  29 2c 69 74 74 69 6d 65  |players%),ittime|
000001b0  25 28 70 6c 61 79 65 72  73 25 29 2c 73 69 6e 28  |%(players%),sin(|
000001c0  34 35 30 29 0d 00 fa 12  e3 20 63 6f 75 6e 74 25  |450)..... count%|
000001d0  3d 30 b8 34 35 30 0d 01  04 1a 73 69 6e 28 63 6f  |=0.450....sin(co|
000001e0  75 6e 74 25 29 3d b5 b2  28 63 6f 75 6e 74 25 29  |unt%)=..(count%)|
000001f0  0d 01 0e 05 ed 0d 01 18  18 e3 20 70 6c 61 79 65  |.......... playe|
00000200  72 25 3d 31 b8 70 6c 61  79 65 72 73 25 0d 01 22  |r%=1.players%.."|
00000210  18 20 78 25 28 70 6c 61  79 65 72 25 29 3d b3 28  |. x%(player%)=.(|
00000220  31 32 37 39 29 0d 01 2c  18 20 79 25 28 70 6c 61  |1279)..,. y%(pla|
00000230  79 65 72 25 29 3d b3 28  31 30 32 34 29 0d 01 36  |yer%)=.(1024)..6|
00000240  05 ed 0d 01 40 05 e1 0d  01 4a 04 0d 01 54 0e dd  |....@....J...T..|
00000250  20 f2 67 65 74 6b 65 79  73 0d 01 5e 11 6b 65 79  | .getkeys..^.key|
00000260  73 6c 65 66 74 25 28 29  3d b9 0d 01 68 1a 6b 65  |sleft%()=...h.ke|
00000270  79 73 6c 65 66 74 25 28  70 61 75 73 65 6b 65 79  |ysleft%(pausekey|
00000280  25 29 3d a3 0d 01 72 18  e3 20 70 6c 61 79 65 72  |%)=...r.. player|
00000290  25 3d 31 b8 70 6c 61 79  65 72 73 25 0d 01 7c 0c  |%=1.players%..|.|
000002a0  20 f2 6e 6f 6b 65 79 73  0d 01 86 33 20 e7 20 a4  | .nokeys...3 . .|
000002b0  79 65 73 6e 6f 28 22 50  6c 61 79 65 72 20 22 2b  |yesno("Player "+|
000002c0  c3 28 70 6c 61 79 65 72  25 29 2b 22 20 61 75 74  |.(player%)+" aut|
000002d0  6f 6d 61 74 69 63 3f 22  29 20 8c 0d 01 90 16 20  |omatic?") ..... |
000002e0  20 61 6b 65 79 25 28 70  6c 61 79 65 72 25 29 3d  | akey%(player%)=|
000002f0  30 0d 01 9a 06 20 cc 0d  01 a4 0d 20 20 f2 6e 6f  |0.... .....  .no|
00000300  6b 65 79 73 0d 01 ae 30  20 20 f1 22 50 6c 61 79  |keys...0  ."Play|
00000310  65 72 20 22 c3 28 70 6c  61 79 65 72 25 29 22 20  |er ".(player%)" |
00000320  70 72 65 73 73 20 79 6f  75 72 20 6c 65 66 74 20  |press your left |
00000330  6b 65 79 22 0d 01 b8 1c  20 20 6c 6b 65 79 25 28  |key"....  lkey%(|
00000340  70 6c 61 79 65 72 25 29  3d a4 67 65 74 6b 65 79  |player%)=.getkey|
00000350  0d 01 c2 31 20 20 f1 22  50 6c 61 79 65 72 20 22  |...1  ."Player "|
00000360  c3 28 70 6c 61 79 65 72  25 29 22 20 70 72 65 73  |.(player%)" pres|
00000370  73 20 79 6f 75 72 20 72  69 67 68 74 20 6b 65 79  |s your right key|
00000380  22 0d 01 cc 1c 20 20 72  6b 65 79 25 28 70 6c 61  |"....  rkey%(pla|
00000390  79 65 72 25 29 3d a4 67  65 74 6b 65 79 0d 01 d6  |yer%)=.getkey...|
000003a0  36 20 20 f1 22 50 6c 61  79 65 72 20 22 c3 28 70  |6  ."Player ".(p|
000003b0  6c 61 79 65 72 25 29 22  20 70 72 65 73 73 20 79  |layer%)" press y|
000003c0  6f 75 72 20 61 63 63 65  72 6c 61 74 6f 72 20 6b  |our accerlator k|
000003d0  65 79 22 0d 01 e0 1c 20  20 61 6b 65 79 25 28 70  |ey"....  akey%(p|
000003e0  6c 61 79 65 72 25 29 3d  a4 67 65 74 6b 65 79 0d  |layer%)=.getkey.|
000003f0  01 ea 06 20 cd 0d 01 f4  0d ed 20 70 6c 61 79 65  |... ...... playe|
00000400  72 25 0d 01 fe 0b f2 6e  6f 6b 65 79 73 0d 02 08  |r%.....nokeys...|
00000410  05 e1 0d 02 12 04 0d 02  1c 0a dd f2 67 61 6d 65  |............game|
00000420  0d 02 26 08 74 25 3d 91  0d 02 30 11 74 6f 74 61  |..&.t%=...0.tota|
00000430  6c 74 69 6d 65 25 3d 2d  91 0d 02 3a 13 69 74 74  |ltime%=-...:.itt|
00000440  69 6d 65 25 28 69 74 25  29 2d 3d 91 0d 02 44 05  |ime%(it%)-=...D.|
00000450  f5 0d 02 4e 1b 20 e7 20  a6 28 2d 70 61 75 73 65  |...N. . .(-pause|
00000460  6b 65 79 25 29 20 f2 70  61 75 73 65 0d 02 58 07  |key%) .pause..X.|
00000470  20 c8 96 0d 02 62 13 20  e7 20 63 6c 65 61 72 73  | ....b. . clears|
00000480  63 72 6e 25 20 8c 0d 02  6c 1d 20 20 c8 99 22 4f  |crn% ...l.  .."O|
00000490  53 5f 42 79 74 65 22 2c  31 31 32 2c 73 63 72 65  |S_Byte",112,scre|
000004a0  65 6e 25 0d 02 76 17 20  20 73 63 72 65 65 6e 25  |en%..v.  screen%|
000004b0  3d 33 2d 73 63 72 65 65  6e 25 0d 02 80 1d 20 20  |=3-screen%....  |
000004c0  c8 99 22 4f 53 5f 42 79  74 65 22 2c 31 31 33 2c  |.."OS_Byte",113,|
000004d0  73 63 72 65 65 6e 25 0d  02 8a 07 20 20 db 0d 02  |screen%....  ...|
000004e0  94 06 20 cd 0d 02 9e 14  20 66 72 61 6d 65 74 69  |.. ..... frameti|
000004f0  6d 65 25 3d 91 2d 74 25  0d 02 a8 09 20 74 25 3d  |me%=.-t%.... t%=|
00000500  91 0d 02 b2 0f 20 e7 20  70 72 69 6e 74 25 20 8c  |..... . print% .|
00000510  0d 02 bc 2c 20 20 20 f1  8a 30 2c 30 29 22 54 69  |...,   ..0,0)"Ti|
00000520  6d 65 2f 66 72 61 6d 65  3a 22 3b 66 72 61 6d 65  |me/frame:";frame|
00000530  74 69 6d 65 25 2f 31 30  30 22 73 22 0d 02 c6 54  |time%/100"s"...T|
00000540  20 20 20 f1 22 50 6c 61  79 65 72 20 22 c3 28 69  |   ."Player ".(i|
00000550  74 25 29 22 20 69 74 20  66 6f 72 20 22 3b 28 69  |t%)" it for ";(i|
00000560  74 74 69 6d 65 25 28 69  74 25 29 2b 91 29 2f 31  |ttime%(it%)+.)/1|
00000570  30 30 22 73 20 6f 75 74  20 6f 66 20 22 3b 28 74  |00"s out of ";(t|
00000580  6f 74 61 6c 74 69 6d 65  25 2b 91 29 2f 31 30 30  |otaltime%+.)/100|
00000590  0d 02 d0 36 20 20 20 f1  22 49 2e 65 2e 20 22 3b  |...6   ."I.e. ";|
000005a0  31 30 30 2a 28 69 74 74  69 6d 65 25 28 69 74 25  |100*(ittime%(it%|
000005b0  29 2b 91 29 2f 28 74 6f  74 61 6c 74 69 6d 65 25  |)+.)/(totaltime%|
000005c0  2b 91 29 22 25 22 0d 02  da 06 20 cd 0d 02 e4 21  |+.)"%".... ....!|
000005d0  20 66 72 61 6d 65 74 69  6d 65 25 3d 28 66 72 61  | frametime%=(fra|
000005e0  6d 65 74 69 6d 65 25 2b  31 29 3e 3e 31 0d 02 ee  |metime%+1)>>1...|
000005f0  38 20 e7 20 66 72 61 6d  65 74 69 6d 65 25 3e 6d  |8 . frametime%>m|
00000600  61 78 66 72 61 6d 65 74  69 6d 65 25 20 66 72 61  |axframetime% fra|
00000610  6d 65 74 69 6d 65 25 3d  6d 61 78 66 72 61 6d 65  |metime%=maxframe|
00000620  74 69 6d 65 25 0d 02 f8  10 20 e7 20 70 72 6f 6e  |time%.... . pron|
00000630  67 73 25 20 8c 0d 03 02  2b 20 20 69 74 78 25 3d  |gs% ....+  itx%=|
00000640  78 25 28 69 74 25 29 2b  70 72 6f 6e 67 73 25 2a  |x%(it%)+prongs%*|
00000650  73 69 6e 28 34 35 30 2d  61 25 28 69 74 25 29 29  |sin(450-a%(it%))|
00000660  0d 03 0c 27 20 20 69 74  79 25 3d 79 25 28 69 74  |...'  ity%=y%(it|
00000670  25 29 2b 70 72 6f 6e 67  73 25 2a 73 69 6e 28 61  |%)+prongs%*sin(a|
00000680  25 28 69 74 25 29 29 0d  03 16 06 20 cc 0d 03 20  |%(it%)).... ... |
00000690  12 20 20 69 74 78 25 3d  78 25 28 69 74 25 29 0d  |.  itx%=x%(it%).|
000006a0  03 2a 12 20 20 69 74 79  25 3d 79 25 28 69 74 25  |.*.  ity%=y%(it%|
000006b0  29 0d 03 34 06 20 cd 0d  03 3e 3c 20 e7 20 91 3c  |)..4. ...>< . .<|
000006c0  74 69 6d 65 6f 75 74 25  20 80 20 70 72 69 6e 74  |timeout% . print|
000006d0  25 20 8c 20 f1 22 54 69  6d 65 6f 75 74 3a 22 3b  |% . ."Timeout:";|
000006e0  28 74 69 6d 65 6f 75 74  25 2d 91 29 2f 31 30 30  |(timeout%-.)/100|
000006f0  22 73 22 0d 03 48 19 20  e3 20 70 6c 61 79 65 72  |"s"..H. . player|
00000700  25 3d 31 b8 70 6c 61 79  65 72 73 25 0d 03 52 29  |%=1.players%..R)|
00000710  20 20 f2 67 65 74 6d 6f  76 65 28 70 6c 61 79 65  |  .getmove(playe|
00000720  72 25 2c 6c 6b 65 79 25  2c 72 6b 65 79 25 2c 61  |r%,lkey%,rkey%,a|
00000730  6b 65 79 25 29 0d 03 5c  29 20 20 78 61 63 63 3d  |key%)..\)  xacc=|
00000740  61 63 63 2a 73 69 6e 28  34 35 30 2d 61 25 28 70  |acc*sin(450-a%(p|
00000750  6c 61 79 65 72 25 29 29  2a 61 6b 65 79 25 0d 03  |layer%))*akey%..|
00000760  66 25 20 20 79 61 63 63  3d 61 63 63 2a 73 69 6e  |f%  yacc=acc*sin|
00000770  28 61 25 28 70 6c 61 79  65 72 25 29 29 2a 61 6b  |(a%(player%))*ak|
00000780  65 79 25 0d 03 70 1b 20  20 e3 20 63 6f 75 6e 74  |ey%..p.  . count|
00000790  25 3d 31 b8 66 72 61 6d  65 74 69 6d 65 25 0d 03  |%=1.frametime%..|
000007a0  7a 30 20 20 20 73 70 65  65 64 78 28 70 6c 61 79  |z0   speedx(play|
000007b0  65 72 25 29 3d 73 70 65  65 64 78 28 70 6c 61 79  |er%)=speedx(play|
000007c0  65 72 25 29 2a 64 65 63  63 2b 78 61 63 63 0d 03  |er%)*decc+xacc..|
000007d0  84 30 20 20 20 73 70 65  65 64 79 28 70 6c 61 79  |.0   speedy(play|
000007e0  65 72 25 29 3d 73 70 65  65 64 79 28 70 6c 61 79  |er%)=speedy(play|
000007f0  65 72 25 29 2a 64 65 63  63 2b 79 61 63 63 0d 03  |er%)*decc+yacc..|
00000800  8e 0e 20 20 ed 20 63 6f  75 6e 74 25 0d 03 98 38  |..  . count%...8|
00000810  20 20 78 25 28 70 6c 61  79 65 72 25 29 3d 73 70  |  x%(player%)=sp|
00000820  65 65 64 78 28 70 6c 61  79 65 72 25 29 2a 66 72  |eedx(player%)*fr|
00000830  61 6d 65 74 69 6d 65 25  2b 78 25 28 70 6c 61 79  |ametime%+x%(play|
00000840  65 72 25 29 0d 03 a2 38  20 20 79 25 28 70 6c 61  |er%)...8  y%(pla|
00000850  79 65 72 25 29 3d 73 70  65 65 64 79 28 70 6c 61  |yer%)=speedy(pla|
00000860  79 65 72 25 29 2a 66 72  61 6d 65 74 69 6d 65 25  |yer%)*frametime%|
00000870  2b 79 25 28 70 6c 61 79  65 72 25 29 0d 03 ac 0f  |+y%(player%)....|
00000880  20 20 e7 20 77 72 61 70  25 20 8c 0d 03 b6 2a 20  |  . wrap% ....* |
00000890  20 20 78 25 28 70 6c 61  79 65 72 25 29 3d 28 78  |  x%(player%)=(x|
000008a0  25 28 70 6c 61 79 65 72  25 29 2b 32 35 36 30 29  |%(player%)+2560)|
000008b0  83 31 32 38 30 0d 03 c0  2a 20 20 20 79 25 28 70  |.1280...*   y%(p|
000008c0  6c 61 79 65 72 25 29 3d  28 79 25 28 70 6c 61 79  |layer%)=(y%(play|
000008d0  65 72 25 29 2b 32 30 34  38 29 83 31 30 32 34 0d  |er%)+2048).1024.|
000008e0  03 ca 07 20 20 cc 0d 03  d4 52 20 20 20 e7 20 78  |...  ....R   . x|
000008f0  25 28 70 6c 61 79 65 72  25 29 3c 30 20 8c 20 78  |%(player%)<0 . x|
00000900  25 28 70 6c 61 79 65 72  25 29 3d 2d 78 25 28 70  |%(player%)=-x%(p|
00000910  6c 61 79 65 72 25 29 3a  73 70 65 65 64 78 28 70  |layer%):speedx(p|
00000920  6c 61 79 65 72 25 29 3d  2d 73 70 65 65 64 78 28  |layer%)=-speedx(|
00000930  70 6c 61 79 65 72 25 29  0d 03 de 59 20 20 20 e7  |player%)...Y   .|
00000940  20 78 25 28 70 6c 61 79  65 72 25 29 3e 31 32 37  | x%(player%)>127|
00000950  39 20 8c 20 78 25 28 70  6c 61 79 65 72 25 29 3d  |9 . x%(player%)=|
00000960  32 35 35 39 2d 78 25 28  70 6c 61 79 65 72 25 29  |2559-x%(player%)|
00000970  3a 73 70 65 65 64 78 28  70 6c 61 79 65 72 25 29  |:speedx(player%)|
00000980  3d 2d 73 70 65 65 64 78  28 70 6c 61 79 65 72 25  |=-speedx(player%|
00000990  29 0d 03 e8 52 20 20 20  e7 20 79 25 28 70 6c 61  |)...R   . y%(pla|
000009a0  79 65 72 25 29 3c 30 20  8c 20 79 25 28 70 6c 61  |yer%)<0 . y%(pla|
000009b0  79 65 72 25 29 3d 2d 79  25 28 70 6c 61 79 65 72  |yer%)=-y%(player|
000009c0  25 29 3a 73 70 65 65 64  79 28 70 6c 61 79 65 72  |%):speedy(player|
000009d0  25 29 3d 2d 73 70 65 65  64 79 28 70 6c 61 79 65  |%)=-speedy(playe|
000009e0  72 25 29 0d 03 f2 59 20  20 20 e7 20 79 25 28 70  |r%)...Y   . y%(p|
000009f0  6c 61 79 65 72 25 29 3e  31 30 32 33 20 8c 20 79  |layer%)>1023 . y|
00000a00  25 28 70 6c 61 79 65 72  25 29 3d 32 30 34 37 2d  |%(player%)=2047-|
00000a10  79 25 28 70 6c 61 79 65  72 25 29 3a 73 70 65 65  |y%(player%):spee|
00000a20  64 79 28 70 6c 61 79 65  72 25 29 3d 2d 73 70 65  |dy(player%)=-spe|
00000a30  65 64 79 28 70 6c 61 79  65 72 25 29 0d 03 fc 07  |edy(player%)....|
00000a40  20 20 cd 0d 04 06 33 20  20 61 25 28 70 6c 61 79  |  ....3  a%(play|
00000a50  65 72 25 29 2b 3d 28 6c  6b 65 79 25 2d 72 6b 65  |er%)+=(lkey%-rke|
00000a60  79 25 29 2a 72 6f 74 61  74 65 25 2a 66 72 61 6d  |y%)*rotate%*fram|
00000a70  65 74 69 6d 65 25 0d 04  10 29 20 20 61 25 28 70  |etime%...)  a%(p|
00000a80  6c 61 79 65 72 25 29 3d  28 61 25 28 70 6c 61 79  |layer%)=(a%(play|
00000a90  65 72 25 29 2b 33 36 30  29 20 83 20 33 36 30 0d  |er%)+360) . 360.|
00000aa0  04 1a 2d 20 20 e6 20 28  32 35 35 2d 70 6c 61 79  |..-  . (255-play|
00000ab0  65 72 25 2a 37 29 83 36  34 20 c8 9c 20 28 70 6c  |er%*7).64 .. (pl|
00000ac0  61 79 65 72 25 2a 37 29  83 32 35 35 0d 04 24 21  |ayer%*7).255..$!|
00000ad0  20 20 e7 20 70 6c 61 79  65 72 25 3d 69 74 25 20  |  . player%=it% |
00000ae0  8c 20 e6 20 36 33 20 c8  9c 20 32 35 35 0d 04 2e  |. . 63 .. 255...|
00000af0  2b 20 20 c8 8f 20 c8 90  20 78 25 28 70 6c 61 79  |+  .. .. x%(play|
00000b00  65 72 25 29 2c 79 25 28  70 6c 61 79 65 72 25 29  |er%),y%(player%)|
00000b10  2c 72 61 64 69 75 73 25  0d 04 38 77 20 20 e7 20  |,radius%..8w  . |
00000b20  70 72 6f 6e 67 73 25 20  86 20 78 25 28 70 6c 61  |prongs% . x%(pla|
00000b30  79 65 72 25 29 2c 79 25  28 70 6c 61 79 65 72 25  |yer%),y%(player%|
00000b40  29 2c 78 25 28 70 6c 61  79 65 72 25 29 2b 70 72  |),x%(player%)+pr|
00000b50  6f 6e 67 73 25 2a 73 69  6e 28 34 35 30 2d 61 25  |ongs%*sin(450-a%|
00000b60  28 70 6c 61 79 65 72 25  29 29 2c 79 25 28 70 6c  |(player%)),y%(pl|
00000b70  61 79 65 72 25 29 2b 70  72 6f 6e 67 73 25 2a 73  |ayer%)+prongs%*s|
00000b80  69 6e 28 61 25 28 70 6c  61 79 65 72 25 29 29 0d  |in(a%(player%)).|
00000b90  04 42 14 20 20 e7 20 91  3e 74 69 6d 65 6f 75 74  |.B.  . .>timeout|
00000ba0  25 20 8c 0d 04 4c 17 20  20 20 e7 20 69 74 25 3c  |% ...L.   . it%<|
00000bb0  3e 70 6c 61 79 65 72 25  20 8c 0d 04 56 3f 20 20  |>player% ...V?  |
00000bc0  20 20 e7 20 28 69 74 78  25 2d 78 25 28 70 6c 61  |  . (itx%-x%(pla|
00000bd0  79 65 72 25 29 29 5e 32  2b 28 69 74 79 25 2d 79  |yer%))^2+(ity%-y|
00000be0  25 28 70 6c 61 79 65 72  25 29 29 5e 32 3c 72 61  |%(player%))^2<ra|
00000bf0  64 69 75 73 73 71 25 20  8c 0d 04 60 18 20 20 20  |diussq% ...`.   |
00000c00  20 20 69 74 74 69 6d 65  25 28 69 74 25 29 2b 3d  |  ittime%(it%)+=|
00000c10  91 0d 04 6a 14 20 20 20  20 20 69 74 25 3d 70 6c  |...j.     it%=pl|
00000c20  61 79 65 72 25 0d 04 74  18 20 20 20 20 20 69 74  |ayer%..t.     it|
00000c30  74 69 6d 65 25 28 69 74  25 29 2d 3d 91 0d 04 7e  |time%(it%)-=...~|
00000c40  20 20 20 20 20 20 74 69  6d 65 6f 75 74 25 3d 91  |      timeout%=.|
00000c50  2b 74 69 6d 65 6f 75 74  73 69 7a 65 25 0d 04 88  |+timeoutsize%...|
00000c60  09 20 20 20 20 cd 0d 04  92 08 20 20 20 cd 0d 04  |.    .....   ...|
00000c70  9c 07 20 20 cd 0d 04 a6  0e 20 ed 20 70 6c 61 79  |..  ..... . play|
00000c80  65 72 25 0d 04 b0 07 fd  20 a3 0d 04 ba 05 e1 0d  |er%..... .......|
00000c90  04 c4 04 0d 04 ce 0d dd  20 a4 67 65 74 6b 65 79  |........ .getkey|
00000ca0  0d 04 d8 0a ea 20 6b 65  79 25 0d 04 e2 05 f5 0d  |..... key%......|
00000cb0  04 ec 13 20 e3 20 6b 65  79 25 3d 31 20 b8 20 31  |... . key%=1 . 1|
00000cc0  32 37 0d 04 f6 3e 20 20  e7 20 a6 28 2d 6b 65 79  |27...>  . .(-key|
00000cd0  25 29 20 8c 20 e7 20 6b  65 79 73 6c 65 66 74 25  |%) . . keysleft%|
00000ce0  28 6b 65 79 25 29 20 8c  20 6b 65 79 73 6c 65 66  |(key%) . keyslef|
00000cf0  74 25 28 6b 65 79 25 29  3d a3 3a 3d 6b 65 79 25  |t%(key%)=.:=key%|
00000d00  0d 05 00 06 20 ed 0d 05  0a 07 fd 20 a3 0d 05 14  |.... ...... ....|
00000d10  06 3d 30 0d 05 1e 04 0d  05 28 0f dd a4 79 65 73  |.=0......(...yes|
00000d20  6e 6f 28 61 24 29 0d 05  32 08 ea 20 61 25 0d 05  |no(a$)..2.. a%..|
00000d30  3c 05 f5 0d 05 46 10 20  f1 61 24 22 28 59 2f 4e  |<....F. .a$"(Y/N|
00000d40  29 22 3b 0d 05 50 11 20  61 25 3d 28 a5 83 33 32  |)";..P. a%=(..32|
00000d50  29 2b 36 34 0d 05 5a 0c  20 f1 20 bd 28 61 25 29  |)+64..Z. . .(a%)|
00000d60  0d 05 64 1b fd 20 61 25  3d 97 28 22 59 22 29 20  |..d.. a%=.("Y") |
00000d70  84 20 61 25 3d 97 28 22  4e 22 29 0d 05 6e 10 3d  |. a%=.("N")..n.=|
00000d80  28 61 25 3d 97 28 22 59  22 29 29 0d 05 78 04 0d  |(a%=.("Y"))..x..|
00000d90  05 82 0d dd 20 f2 6e 6f  6b 65 79 73 0d 05 8c 05  |.... .nokeys....|
00000da0  f5 0d 05 96 0c 20 74 65  73 74 25 3d a3 0d 05 a0  |..... test%=....|
00000db0  13 20 e3 20 6b 65 79 25  3d 31 20 b8 20 31 32 37  |. . key%=1 . 127|
00000dc0  0d 05 aa 1c 20 20 74 65  73 74 25 3d 74 65 73 74  |....  test%=test|
00000dd0  25 20 84 20 a6 28 2d 6b  65 79 25 29 0d 05 b4 06  |% . .(-key%)....|
00000de0  20 ed 0d 05 be 0d fd 20  ac 20 74 65 73 74 25 0d  | ...... . test%.|
00000df0  05 c8 0f f5 20 fd 20 a6  28 30 29 3d 2d 31 0d 05  |.... . .(0)=-1..|
00000e00  d2 05 e1 0d 05 dc 04 0d  05 e6 26 dd 20 f2 67 65  |..........&. .ge|
00000e10  74 6d 6f 76 65 28 70 6c  61 79 65 72 25 2c f8 20  |tmove(player%,. |
00000e20  6c 25 2c f8 20 72 25 2c  f8 20 61 25 29 0d 05 f0  |l%,. r%,. a%)...|
00000e30  2e ea 20 63 6f 75 6e 74  25 2c 78 64 69 73 25 2c  |.. count%,xdis%,|
00000e40  79 64 69 73 25 2c 6e 65  61 72 65 73 74 64 69 73  |ydis%,nearestdis|
00000e50  74 25 2c 6e 65 61 72 65  73 74 25 0d 05 fa 16 e7  |t%,nearest%.....|
00000e60  20 61 6b 65 79 25 28 70  6c 61 79 65 72 25 29 20  | akey%(player%) |
00000e70  8c 0d 06 04 1b 20 6c 25  3d 2d a6 28 2d 6c 6b 65  |..... l%=-.(-lke|
00000e80  79 25 28 70 6c 61 79 65  72 25 29 29 0d 06 0e 1b  |y%(player%))....|
00000e90  20 72 25 3d 2d a6 28 2d  72 6b 65 79 25 28 70 6c  | r%=-.(-rkey%(pl|
00000ea0  61 79 65 72 25 29 29 0d  06 18 1b 20 61 25 3d 2d  |ayer%)).... a%=-|
00000eb0  a6 28 2d 61 6b 65 79 25  28 70 6c 61 79 65 72 25  |.(-akey%(player%|
00000ec0  29 29 0d 06 22 1a 20 e7  20 62 61 63 6b 77 61 72  |))..". . backwar|
00000ed0  64 73 25 20 8c 20 61 25  3d 2d 61 25 0d 06 2c 06  |ds% . a%=-a%..,.|
00000ee0  20 e1 0d 06 36 05 cc 0d  06 40 17 20 f4 20 61 75  | ...6....@. . au|
00000ef0  74 6f 6d 61 74 69 63 20  70 6c 61 79 65 72 0d 06  |tomatic player..|
00000f00  4a 14 20 e7 20 70 6c 61  79 65 72 25 3d 69 74 25  |J. . player%=it%|
00000f10  20 8c 0d 06 54 1b 20 20  6e 65 61 72 65 73 74 64  | ...T.  nearestd|
00000f20  69 73 74 25 3d 31 30 30  30 30 30 30 30 0d 06 5e  |ist%=10000000..^|
00000f30  19 20 20 e3 20 63 6f 75  6e 74 25 3d 31 b8 70 6c  |.  . count%=1.pl|
00000f40  61 79 65 72 73 25 0d 06  68 1a 20 20 20 e7 20 63  |ayers%..h.   . c|
00000f50  6f 75 6e 74 25 3c 3e 70  6c 61 79 65 72 25 20 8c  |ount%<>player% .|
00000f60  0d 06 72 42 20 20 20 20  78 64 69 73 25 3d 69 74  |..rB    xdis%=it|
00000f70  78 25 2d 78 25 28 63 6f  75 6e 74 25 29 3a e7 20  |x%-x%(count%):. |
00000f80  77 72 61 70 25 20 80 20  78 64 69 73 25 3e 36 34  |wrap% . xdis%>64|
00000f90  30 20 78 64 69 73 25 3d  78 64 69 73 25 2d 31 32  |0 xdis%=xdis%-12|
00000fa0  38 30 0d 06 7c 42 20 20  20 20 79 64 69 73 25 3d  |80..|B    ydis%=|
00000fb0  69 74 79 25 2d 79 25 28  63 6f 75 6e 74 25 29 3a  |ity%-y%(count%):|
00000fc0  e7 20 77 72 61 70 25 20  80 20 79 64 69 73 25 3e  |. wrap% . ydis%>|
00000fd0  35 31 32 20 79 64 69 73  25 3d 79 64 69 73 25 2d  |512 ydis%=ydis%-|
00000fe0  31 30 32 34 0d 06 86 11  20 20 20 20 e7 20 77 72  |1024....    . wr|
00000ff0  61 70 25 20 8c 0d 06 90  27 20 20 20 20 20 e7 20  |ap% ....'     . |
00001000  78 64 69 73 25 3e 36 34  30 20 8c 20 78 64 69 73  |xdis%>640 . xdis|
00001010  25 3d 78 64 69 73 25 2d  31 32 38 30 0d 06 9a 28  |%=xdis%-1280...(|
00001020  20 20 20 20 20 e7 20 78  64 69 73 25 3c 2d 36 34  |     . xdis%<-64|
00001030  30 20 8c 20 78 64 69 73  25 3d 78 64 69 73 25 2b  |0 . xdis%=xdis%+|
00001040  31 32 38 30 0d 06 a4 27  20 20 20 20 20 e7 20 79  |1280...'     . y|
00001050  64 69 73 25 3e 35 31 32  20 8c 20 79 64 69 73 25  |dis%>512 . ydis%|
00001060  3d 79 64 69 73 25 2d 31  30 32 34 0d 06 ae 28 20  |=ydis%-1024...( |
00001070  20 20 20 20 e7 20 79 64  69 73 25 3c 2d 35 31 32  |    . ydis%<-512|
00001080  20 8c 20 79 64 69 73 25  3d 79 64 69 73 25 2b 31  | . ydis%=ydis%+1|
00001090  30 32 34 0d 06 b8 09 20  20 20 20 cd 0d 06 c2 30  |024....    ....0|
000010a0  20 20 20 20 e7 20 78 64  69 73 25 2a 78 64 69 73  |    . xdis%*xdis|
000010b0  25 2b 79 64 69 73 25 2a  79 64 69 73 25 3c 6e 65  |%+ydis%*ydis%<ne|
000010c0  61 72 65 73 74 64 69 73  74 25 20 8c 0d 06 cc 2d  |arestdist% ....-|
000010d0  20 20 20 20 20 6e 65 61  72 65 73 74 64 69 73 74  |     nearestdist|
000010e0  25 3d 78 64 69 73 25 2a  78 64 69 73 25 2b 79 64  |%=xdis%*xdis%+yd|
000010f0  69 73 25 2a 79 64 69 73  25 0d 06 d6 18 20 20 20  |is%*ydis%....   |
00001100  20 20 6e 65 61 72 65 73  74 25 3d 63 6f 75 6e 74  |  nearest%=count|
00001110  25 0d 06 e0 09 20 20 20  20 cd 0d 06 ea 08 20 20  |%....    .....  |
00001120  20 cd 0d 06 f4 07 20 20  ed 0d 06 fe 1d 20 20 78  | .....  .....  x|
00001130  64 69 73 25 3d 69 74 78  25 2d 78 25 28 6e 65 61  |dis%=itx%-x%(nea|
00001140  72 65 73 74 25 29 0d 07  08 1d 20 20 79 64 69 73  |rest%)....  ydis|
00001150  25 3d 69 74 79 25 2d 79  25 28 6e 65 61 72 65 73  |%=ity%-y%(neares|
00001160  74 25 29 0d 07 12 0f 20  20 e7 20 77 72 61 70 25  |t%)....  . wrap%|
00001170  20 8c 0d 07 1c 25 20 20  20 e7 20 78 64 69 73 25  | ....%   . xdis%|
00001180  3e 36 34 30 20 8c 20 78  64 69 73 25 3d 78 64 69  |>640 . xdis%=xdi|
00001190  73 25 2d 31 32 38 30 0d  07 26 26 20 20 20 e7 20  |s%-1280..&&   . |
000011a0  78 64 69 73 25 3c 2d 36  34 30 20 8c 20 78 64 69  |xdis%<-640 . xdi|
000011b0  73 25 3d 78 64 69 73 25  2b 31 32 38 30 0d 07 30  |s%=xdis%+1280..0|
000011c0  25 20 20 20 e7 20 79 64  69 73 25 3e 35 31 32 20  |%   . ydis%>512 |
000011d0  8c 20 79 64 69 73 25 3d  79 64 69 73 25 2d 31 30  |. ydis%=ydis%-10|
000011e0  32 34 0d 07 3a 26 20 20  20 e7 20 79 64 69 73 25  |24..:&   . ydis%|
000011f0  3c 2d 35 31 32 20 8c 20  79 64 69 73 25 3d 79 64  |<-512 . ydis%=yd|
00001200  69 73 25 2b 31 30 32 34  0d 07 44 07 20 20 cd 0d  |is%+1024..D.  ..|
00001210  07 4e 0a 20 20 6c 25 3d  30 0d 07 58 0a 20 20 72  |.N.  l%=0..X.  r|
00001220  25 3d 30 0d 07 62 49 20  20 e7 20 28 73 69 6e 28  |%=0..bI  . (sin(|
00001230  61 25 28 70 6c 61 79 65  72 25 29 29 2a 78 64 69  |a%(player%))*xdi|
00001240  73 25 3e 73 69 6e 28 34  35 30 2d 61 25 28 70 6c  |s%>sin(450-a%(pl|
00001250  61 79 65 72 25 29 29 2a  79 64 69 73 25 29 20 8c  |ayer%))*ydis%) .|
00001260  20 6c 25 3d 31 20 8b 20  72 25 3d 31 0d 07 6c 0a  | l%=1 . r%=1..l.|
00001270  20 20 61 25 3d 31 0d 07  76 25 20 20 f4 20 49 46  |  a%=1..v%  . IF|
00001280  20 61 25 20 6f 66 20 70  6c 61 79 65 72 20 69 73  | a% of player is|
00001290  20 3f 20 54 48 45 4e 20  61 3d 30 0d 07 80 06 20  | ? THEN a=0.... |
000012a0  cc 0d 07 8a 0f 20 20 f4  20 4e 6f 74 20 49 74 21  |.....  . Not It!|
000012b0  0d 07 94 1c 20 20 78 64  69 73 25 3d 78 25 28 70  |....  xdis%=x%(p|
000012c0  6c 61 79 65 72 25 29 2d  69 74 78 25 0d 07 9e 1c  |layer%)-itx%....|
000012d0  20 20 79 64 69 73 25 3d  79 25 28 70 6c 61 79 65  |  ydis%=y%(playe|
000012e0  72 25 29 2d 69 74 79 25  0d 07 a8 0f 20 20 e7 20  |r%)-ity%....  . |
000012f0  77 72 61 70 25 20 8c 0d  07 b2 25 20 20 20 e7 20  |wrap% ....%   . |
00001300  78 64 69 73 25 3e 36 34  30 20 8c 20 78 64 69 73  |xdis%>640 . xdis|
00001310  25 3d 78 64 69 73 25 2d  31 32 38 30 0d 07 bc 26  |%=xdis%-1280...&|
00001320  20 20 20 e7 20 78 64 69  73 25 3c 2d 36 34 30 20  |   . xdis%<-640 |
00001330  8c 20 78 64 69 73 25 3d  78 64 69 73 25 2b 31 32  |. xdis%=xdis%+12|
00001340  38 30 0d 07 c6 25 20 20  20 e7 20 79 64 69 73 25  |80...%   . ydis%|
00001350  3e 35 31 32 20 8c 20 79  64 69 73 25 3d 79 64 69  |>512 . ydis%=ydi|
00001360  73 25 2d 31 30 32 34 0d  07 d0 26 20 20 20 e7 20  |s%-1024...&   . |
00001370  79 64 69 73 25 3c 2d 35  31 32 20 8c 20 79 64 69  |ydis%<-512 . ydi|
00001380  73 25 3d 79 64 69 73 25  2b 31 30 32 34 0d 07 da  |s%=ydis%+1024...|
00001390  07 20 20 cd 0d 07 e4 21  20 20 64 69 73 74 73 71  |.  ....!  distsq|
000013a0  75 61 72 65 25 3d 78 64  69 73 25 5e 32 2b 79 64  |uare%=xdis%^2+yd|
000013b0  69 73 25 5e 32 0d 07 ee  0a 20 20 61 25 3d 31 0d  |is%^2....  a%=1.|
000013c0  07 f8 28 20 20 e7 20 64  69 73 74 73 71 75 61 72  |..(  . distsquar|
000013d0  65 25 3e 72 61 64 69 75  73 73 71 25 2a 34 30 30  |e%>radiussq%*400|
000013e0  20 8c 20 61 25 3d 30 0d  08 02 53 20 20 e7 20 28  | . a%=0...S  . (|
000013f0  73 69 6e 28 61 25 28 70  6c 61 79 65 72 25 29 29  |sin(a%(player%))|
00001400  2a 78 64 69 73 25 3c 73  69 6e 28 34 35 30 2d 61  |*xdis%<sin(450-a|
00001410  25 28 70 6c 61 79 65 72  25 29 29 2a 79 64 69 73  |%(player%))*ydis|
00001420  25 29 20 8c 20 6c 25 3d  31 3a 72 25 3d 30 20 8b  |%) . l%=1:r%=0 .|
00001430  20 72 25 3d 31 3a 6c 25  3d 30 0d 08 0c 11 20 20  | r%=1:l%=0....  |
00001440  e7 20 ac 20 77 72 61 70  25 20 8c 0d 08 16 19 20  |. . wrap% ..... |
00001450  20 20 e7 20 78 25 28 70  6c 61 79 65 72 25 29 3c  |  . x%(player%)<|
00001460  36 30 20 8c 0d 08 20 37  20 20 20 20 e7 20 61 25  |60 ... 7    . a%|
00001470  28 70 6c 61 79 65 72 25  29 3e 3d 31 38 30 20 80  |(player%)>=180 .|
00001480  20 61 25 28 70 6c 61 79  65 72 25 29 3c 3d 32 39  | a%(player%)<=29|
00001490  30 20 72 25 3d 30 3a 6c  25 3d 31 0d 08 2a 36 20  |0 r%=0:l%=1..*6 |
000014a0  20 20 20 e7 20 61 25 28  70 6c 61 79 65 72 25 29  |   . a%(player%)|
000014b0  3e 3d 37 30 20 80 20 61  25 28 70 6c 61 79 65 72  |>=70 . a%(player|
000014c0  25 29 3c 3d 31 38 30 20  72 25 3d 31 3a 6c 25 3d  |%)<=180 r%=1:l%=|
000014d0  30 0d 08 34 08 20 20 20  cd 0d 08 3e 1b 20 20 20  |0..4.   ...>.   |
000014e0  e7 20 78 25 28 70 6c 61  79 65 72 25 29 3e 31 32  |. x%(player%)>12|
000014f0  31 39 20 8c 0d 08 48 35  20 20 20 20 e7 20 61 25  |19 ...H5    . a%|
00001500  28 70 6c 61 79 65 72 25  29 3e 3d 30 20 80 20 61  |(player%)>=0 . a|
00001510  25 28 70 6c 61 79 65 72  25 29 3c 3d 31 31 30 20  |%(player%)<=110 |
00001520  72 25 3d 30 3a 6c 25 3d  31 0d 08 52 37 20 20 20  |r%=0:l%=1..R7   |
00001530  20 e7 20 61 25 28 70 6c  61 79 65 72 25 29 3e 3d  | . a%(player%)>=|
00001540  32 35 30 20 80 20 61 25  28 70 6c 61 79 65 72 25  |250 . a%(player%|
00001550  29 3c 3d 33 36 30 20 72  25 3d 31 3a 6c 25 3d 30  |)<=360 r%=1:l%=0|
00001560  0d 08 5c 08 20 20 20 cd  0d 08 66 19 20 20 20 e7  |..\.   ...f.   .|
00001570  20 79 25 28 70 6c 61 79  65 72 25 29 3c 36 30 20  | y%(player%)<60 |
00001580  8c 0d 08 70 36 20 20 20  20 e7 20 61 25 28 70 6c  |...p6    . a%(pl|
00001590  61 79 65 72 25 29 3e 3d  32 37 30 20 84 20 61 25  |ayer%)>=270 . a%|
000015a0  28 70 6c 61 79 65 72 25  29 3c 3d 32 30 20 72 25  |(player%)<=20 r%|
000015b0  3d 30 3a 6c 25 3d 31 0d  08 7a 37 20 20 20 20 e7  |=0:l%=1..z7    .|
000015c0  20 61 25 28 70 6c 61 79  65 72 25 29 3e 3d 31 36  | a%(player%)>=16|
000015d0  30 20 80 20 61 25 28 70  6c 61 79 65 72 25 29 3c  |0 . a%(player%)<|
000015e0  3d 32 37 30 20 72 25 3d  31 3a 6c 25 3d 30 0d 08  |=270 r%=1:l%=0..|
000015f0  84 08 20 20 20 cd 0d 08  8e 1a 20 20 20 e7 20 79  |..   .....   . y|
00001600  25 28 70 6c 61 79 65 72  25 29 3e 39 36 34 20 8c  |%(player%)>964 .|
00001610  0d 08 98 36 20 20 20 20  e7 20 61 25 28 70 6c 61  |...6    . a%(pla|
00001620  79 65 72 25 29 3e 3d 39  30 20 80 20 61 25 28 70  |yer%)>=90 . a%(p|
00001630  6c 61 79 65 72 25 29 3c  3d 32 30 30 20 72 25 3d  |layer%)<=200 r%=|
00001640  30 3a 6c 25 3d 31 0d 08  a2 35 20 20 20 20 e7 20  |0:l%=1...5    . |
00001650  61 25 28 70 6c 61 79 65  72 25 29 3c 3d 39 30 20  |a%(player%)<=90 |
00001660  84 20 61 25 28 70 6c 61  79 65 72 25 29 3e 33 34  |. a%(player%)>34|
00001670  30 20 72 25 3d 31 3a 6c  25 3d 30 0d 08 ac 08 20  |0 r%=1:l%=0.... |
00001680  20 20 cd 0d 08 b6 07 20  20 cd 0d 08 c0 06 20 cd  |  .....  ..... .|
00001690  0d 08 ca 05 cd 0d 08 d4  12 e7 20 62 61 63 6b 77  |.......... backw|
000016a0  61 72 64 73 25 20 8c 0d  08 de 0a 61 25 3d 2d 61  |ards% .....a%=-a|
000016b0  25 0d 08 e8 10 f2 73 77  61 70 28 6c 25 2c 72 25  |%.....swap(l%,r%|
000016c0  29 0d 08 f2 05 cd 0d 08  fc 05 e1 0d 09 06 04 0d  |)...............|
000016d0  09 10 16 dd 20 f2 73 77  61 70 28 f8 20 61 25 2c  |.... .swap(. a%,|
000016e0  f8 20 62 25 29 0d 09 1a  08 ea 20 63 25 0d 09 24  |. b%)..... c%..$|
000016f0  09 63 25 3d 61 25 0d 09  2e 09 61 25 3d 62 25 0d  |.c%=a%....a%=b%.|
00001700  09 38 09 62 25 3d 63 25  0d 09 42 05 e1 0d 09 4c  |.8.b%=c%..B....L|
00001710  04 0d 09 56 0c dd 20 f2  70 61 75 73 65 0d 09 60  |...V.. .pause..`|
00001720  11 74 6f 74 61 6c 74 69  6d 65 25 2b 3d 91 0d 09  |.totaltime%+=...|
00001730  6a 13 69 74 74 69 6d 65  25 28 69 74 25 29 2b 3d  |j.ittime%(it%)+=|
00001740  91 0d 09 74 0f 74 69 6d  65 6f 75 74 25 2d 3d 91  |...t.timeout%-=.|
00001750  0d 09 7e 0b f2 6e 6f 6b  65 79 73 0d 09 88 07 eb  |..~..nokeys.....|
00001760  31 35 0d 09 92 51 f1 22  47 61 6d 65 20 70 61 75  |15...Q."Game pau|
00001770  73 65 64 22 27 22 50 6c  61 79 65 72 20 22 3b c3  |sed"'"Player ";.|
00001780  28 69 74 25 29 22 20 69  73 20 69 74 2e 22 27 22  |(it%)" is it."'"|
00001790  54 6f 74 61 6c 20 67 61  6d 65 20 74 69 6d 65 3a  |Total game time:|
000017a0  22 3b 74 6f 74 61 6c 74  69 6d 65 25 2f 31 30 30  |";totaltime%/100|
000017b0  22 73 22 0d 09 9c 31 e7  20 74 69 6d 65 6f 75 74  |"s"...1. timeout|
000017c0  25 3e 30 20 f1 22 54 69  6d 65 6f 75 74 20 6c 65  |%>0 ."Timeout le|
000017d0  66 74 3a 22 3b 74 69 6d  65 6f 75 74 25 2f 31 30  |ft:";timeout%/10|
000017e0  30 22 73 22 0d 09 a6 05  f1 0d 09 b0 17 e3 20 63  |0"s".......... c|
000017f0  6f 75 6e 74 25 3d 31 b8  70 6c 61 79 65 72 73 25  |ount%=1.players%|
00001800  0d 09 ba 6b 20 f1 22 50  6c 61 79 65 72 20 22 3b  |...k ."Player ";|
00001810  c3 28 63 6f 75 6e 74 25  29 22 20 68 61 73 20 62  |.(count%)" has b|
00001820  65 65 6e 20 69 74 20 66  6f 72 20 22 3b 69 74 74  |een it for ";itt|
00001830  69 6d 65 25 28 63 6f 75  6e 74 25 29 2f 31 30 30  |ime%(count%)/100|
00001840  22 73 20 69 2e 65 2e 20  22 3b 31 30 30 2a 69 74  |"s i.e. ";100*it|
00001850  74 69 6d 65 25 28 63 6f  75 6e 74 25 29 2f 74 6f  |time%(count%)/to|
00001860  74 61 6c 74 69 6d 65 25  22 25 22 0d 09 c4 05 ed  |taltime%"%".....|
00001870  0d 09 ce 05 f1 0d 09 d8  2e e7 20 ac 20 a4 79 65  |.......... . .ye|
00001880  73 6e 6f 28 22 44 6f 20  79 6f 75 20 77 61 6e 74  |sno("Do you want|
00001890  20 74 6f 20 63 6f 6e 74  69 6e 75 65 3f 22 29 20  | to continue?") |
000018a0  8c 20 e0 0d 09 e2 07 eb  31 33 0d 09 ec 05 87 0d  |. ......13......|
000018b0  09 f6 11 74 6f 74 61 6c  74 69 6d 65 25 2d 3d 91  |...totaltime%-=.|
000018c0  0d 0a 00 13 69 74 74 69  6d 65 25 28 69 74 25 29  |....ittime%(it%)|
000018d0  2d 3d 91 0d 0a 0a 0f 74  69 6d 65 6f 75 74 25 2b  |-=.....timeout%+|
000018e0  3d 91 0d 0a 14 05 e1 0d  0a 1e 04 0d 0a 28 11 dd  |=............(..|
000018f0  20 f2 63 65 6e 74 72 65  28 61 24 29 0d 0a 32 16  | .centre(a$)..2.|
00001900  f1 20 8a 28 34 30 2d a9  61 24 29 3e 3e 31 29 3b  |. .(40-.a$)>>1);|
00001910  61 24 0d 0a 3c 05 e1 0d  0a 46 04 0d 0a 50 0c dd  |a$..<....F...P..|
00001920  a4 6f 6e 28 61 25 29 0d  0a 5a 11 e7 20 61 25 20  |.on(a%)..Z.. a% |
00001930  8c 20 3d 22 4f 6e 20 22  0d 0a 64 0a 3d 22 4f 66  |. ="On "..d.="Of|
00001940  66 22 0d 0a 6e 04 0d 0a  78 11 dd 20 f2 67 65 74  |f"..n...x.. .get|
00001950  6f 70 74 69 6f 6e 73 0d  0a 82 11 70 61 75 73 65  |options....pause|
00001960  6b 65 79 24 3d 22 50 22  0d 0a 8c 10 70 61 75 73  |key$="P"....paus|
00001970  65 6b 65 79 25 3d 35 36  0d 0a 96 0c 70 72 69 6e  |ekey%=56....prin|
00001980  74 25 3d b9 0d 0a a0 10  62 61 63 6b 77 61 72 64  |t%=.....backward|
00001990  73 25 3d a3 0d 0a aa 0b  77 72 61 70 25 3d a3 0d  |s%=.....wrap%=..|
000019a0  0a b4 0a 61 63 63 3d 2e  34 0d 0a be 0c 64 65 63  |...acc=.4....dec|
000019b0  63 3d 2e 39 36 0d 0a c8  0d 72 6f 74 61 74 65 25  |c=.96....rotate%|
000019c0  3d 34 0d 0a d2 0e 70 72  6f 6e 67 73 25 3d 36 30  |=4....prongs%=60|
000019d0  0d 0a dc 0e 72 61 64 69  75 73 25 3d 32 30 0d 0a  |....radius%=20..|
000019e0  e6 0e 70 6c 61 79 65 72  73 25 3d 32 0d 0a f0 10  |..players%=2....|
000019f0  63 6c 65 61 72 73 63 72  6e 25 3d b9 0d 0a fa 14  |clearscrn%=.....|
00001a00  74 69 6d 65 6f 75 74 73  69 7a 65 25 3d 32 30 30  |timeoutsize%=200|
00001a10  0d 0b 04 09 69 74 25 3d  31 0d 0b 0e 14 6d 61 78  |....it%=1....max|
00001a20  66 72 61 6d 65 74 69 6d  65 25 3d 31 30 0d 0b 18  |frametime%=10...|
00001a30  15 f2 72 65 64 72 61 77  6f 70 74 69 6f 6e 73 28  |..redrawoptions(|
00001a40  30 29 0d 0b 22 0e 2a 70  6f 69 6e 74 65 72 20 31  |0)..".*pointer 1|
00001a50  0d 0b 2c 05 f5 0d 0b 36  1b 20 f5 3a c8 97 20 6d  |..,....6. .:.. m|
00001a60  78 25 2c 6d 79 25 2c 6d  62 25 3a fd 20 6d 62 25  |x%,my%,mb%:. mb%|
00001a70  0d 0b 40 16 20 63 68 6f  69 63 65 25 3d 32 38 2d  |..@. choice%=28-|
00001a80  6d 79 25 81 33 32 0d 0b  4a 37 20 e7 20 63 68 6f  |my%.32..J7 . cho|
00001a90  69 63 65 25 3e 30 20 80  20 63 68 6f 69 63 65 25  |ice%>0 . choice%|
00001aa0  3c 31 34 20 8c 20 f2 72  65 64 72 61 77 6f 70 74  |<14 . .redrawopt|
00001ab0  69 6f 6e 73 28 63 68 6f  69 63 65 25 29 0d 0b 54  |ions(choice%)..T|
00001ac0  0c 20 f2 6e 6f 6b 65 79  73 0d 0b 5e 10 fd 20 63  |. .nokeys..^.. c|
00001ad0  68 6f 69 63 65 25 3d 31  34 0d 0b 68 0e 2a 70 6f  |hoice%=14..h.*po|
00001ae0  69 6e 74 65 72 20 30 0d  0b 72 1f e7 20 70 72 6f  |inter 0..r.. pro|
00001af0  6e 67 73 25 3c 72 61 64  69 75 73 25 20 70 72 6f  |ngs%<radius% pro|
00001b00  6e 67 73 25 3d 30 0d 0b  7c 17 72 61 64 69 75 73  |ngs%=0..|.radius|
00001b10  73 71 25 3d 72 61 64 69  75 73 25 5e 32 0d 0b 86  |sq%=radius%^2...|
00001b20  27 e7 20 70 72 6f 6e 67  73 25 3d 30 20 8c 20 72  |'. prongs%=0 . r|
00001b30  61 64 69 75 73 73 71 25  3d 72 61 64 69 75 73 73  |adiussq%=radiuss|
00001b40  71 25 2a 34 0d 0b 90 05  e1 0d 0b 9a 04 0d 0b a4  |q%*4............|
00001b50  18 dd 20 f2 72 65 64 72  61 77 6f 70 74 69 6f 6e  |.. .redrawoption|
00001b60  73 28 6e 25 29 0d 0b ae  0e 40 25 3d 22 67 31 30  |s(n%)....@%="g10|
00001b70  2e 35 22 0d 0b b8 22 e7  20 6e 25 3d 30 20 f2 63  |.5"...". n%=0 .c|
00001b80  65 6e 74 72 65 28 22 4f  70 74 69 6f 6e 73 20 4d  |entre("Options M|
00001b90  65 6e 75 22 29 0d 0b c2  0c e7 20 6e 25 3d 31 20  |enu")..... n%=1 |
00001ba0  8c 0d 0b cc 12 20 20 ee  3a 2a 70 6f 69 6e 74 65  |.....  .:*pointe|
00001bb0  72 20 30 0d 0b d6 0f 20  20 f1 20 8a 33 31 2c 34  |r 0....  . .31,4|
00001bc0  29 3b 0d 0b e0 0d 20 20  f2 6e 6f 6b 65 79 73 0d  |);....  .nokeys.|
00001bd0  0b ea 13 20 20 6b 65 79  73 6c 65 66 74 25 28 29  |...  keysleft%()|
00001be0  3d b9 0d 0b f4 17 20 20  70 61 75 73 65 6b 65 79  |=.....  pausekey|
00001bf0  25 3d a4 67 65 74 6b 65  79 0d 0b fe 11 20 20 70  |%=.getkey....  p|
00001c00  61 75 73 65 6b 65 79 24  3d be 0d 0c 08 12 20 20  |ausekey$=.....  |
00001c10  87 3a 2a 70 6f 69 6e 74  65 72 20 31 0d 0c 12 05  |.:*pointer 1....|
00001c20  cd 0d 0c 1c 35 e7 20 6e  25 3d 30 20 84 20 6e 25  |....5. n%=0 . n%|
00001c30  3d 31 20 f1 8a 35 2c 34  29 22 50 61 75 73 65 20  |=1 ..5,4)"Pause |
00001c40  6b 65 79 22 8a 33 30 2c  34 29 22 3a 22 70 61 75  |key".30,4)":"pau|
00001c50  73 65 6b 65 79 24 0d 0c  26 1c e7 20 6e 25 3d 32  |sekey$..&.. n%=2|
00001c60  20 8c 20 70 72 69 6e 74  25 3d ac 20 70 72 69 6e  | . print%=. prin|
00001c70  74 25 0d 0c 30 41 e7 20  6e 25 3d 30 20 84 20 6e  |t%..0A. n%=0 . n|
00001c80  25 3d 32 20 f1 8a 35 2c  35 29 22 49 6e 20 67 61  |%=2 ..5,5)"In ga|
00001c90  6d 65 20 69 6e 66 6f 72  6d 61 74 69 6f 6e 22 8a  |me information".|
00001ca0  33 30 2c 35 29 22 3a 22  a4 6f 6e 28 70 72 69 6e  |30,5)":".on(prin|
00001cb0  74 25 29 0d 0c 3a 24 e7  20 6e 25 3d 33 20 8c 20  |t%)..:$. n%=3 . |
00001cc0  62 61 63 6b 77 61 72 64  73 25 3d ac 20 62 61 63  |backwards%=. bac|
00001cd0  6b 77 61 72 64 73 25 0d  0c 44 3b e7 20 6e 25 3d  |kwards%..D;. n%=|
00001ce0  30 20 84 20 6e 25 3d 33  20 f1 8a 35 2c 36 29 22  |0 . n%=3 ..5,6)"|
00001cf0  42 61 63 6b 77 61 72 64  73 22 8a 33 30 2c 36 29  |Backwards".30,6)|
00001d00  22 3a 22 a4 6f 6e 28 62  61 63 6b 77 61 72 64 73  |":".on(backwards|
00001d10  25 29 0d 0c 4e 1a e7 20  6e 25 3d 34 20 8c 20 77  |%)..N.. n%=4 . w|
00001d20  72 61 70 25 3d ac 20 77  72 61 70 25 0d 0c 58 31  |rap%=. wrap%..X1|
00001d30  e7 20 6e 25 3d 30 20 84  20 6e 25 3d 34 20 f1 8a  |. n%=0 . n%=4 ..|
00001d40  35 2c 37 29 22 57 72 61  70 22 8a 33 30 2c 37 29  |5,7)"Wrap".30,7)|
00001d50  22 3a 22 a4 6f 6e 28 77  72 61 70 25 29 0d 0c 62  |":".on(wrap%)..b|
00001d60  26 e7 20 6e 25 3d 35 20  8c 20 61 63 63 3d a4 67  |&. n%=5 . acc=.g|
00001d70  65 74 76 61 6c 28 33 31  2c 38 2c 30 2c 31 30 29  |etval(31,8,0,10)|
00001d80  2f 31 30 0d 0c 6c 36 e7  20 6e 25 3d 30 20 84 20  |/10..l6. n%=0 . |
00001d90  6e 25 3d 35 20 f1 8a 35  2c 38 29 22 41 63 63 65  |n%=5 ..5,8)"Acce|
00001da0  6c 65 72 61 74 69 6f 6e  22 8a 33 30 2c 38 29 22  |leration".30,8)"|
00001db0  3a 22 3b 61 63 63 2a 31  30 0d 0c 76 2a e7 20 6e  |:";acc*10..v*. n|
00001dc0  25 3d 36 20 8c 20 64 65  63 63 3d 31 2d a4 67 65  |%=6 . decc=1-.ge|
00001dd0  74 76 61 6c 28 33 31 2c  39 2c 30 2c 31 30 29 2f  |tval(31,9,0,10)/|
00001de0  31 30 30 0d 0c 80 3a e7  20 6e 25 3d 30 20 84 20  |100...:. n%=0 . |
00001df0  6e 25 3d 36 20 f1 8a 35  2c 39 29 22 52 65 73 69  |n%=6 ..5,9)"Resi|
00001e00  73 74 61 6e 63 65 22 8a  33 30 2c 39 29 22 3a 22  |stance".30,9)":"|
00001e10  3b 28 31 2d 64 65 63 63  29 2a 31 30 30 0d 0c 8a  |;(1-decc)*100...|
00001e20  28 e7 20 6e 25 3d 37 20  8c 20 72 6f 74 61 74 65  |(. n%=7 . rotate|
00001e30  25 3d a4 67 65 74 76 61  6c 28 33 31 2c 31 30 2c  |%=.getval(31,10,|
00001e40  30 2c 31 30 29 0d 0c 94  37 e7 20 6e 25 3d 30 20  |0,10)...7. n%=0 |
00001e50  84 20 6e 25 3d 37 20 f1  8a 35 2c 31 30 29 22 54  |. n%=7 ..5,10)"T|
00001e60  75 72 6e 20 73 70 65 65  64 22 8a 33 30 2c 31 30  |urn speed".30,10|
00001e70  29 22 3a 22 3b 72 6f 74  61 74 65 25 0d 0c 9e 29  |)":";rotate%...)|
00001e80  e7 20 6e 25 3d 38 20 8c  20 72 61 64 69 75 73 25  |. n%=8 . radius%|
00001e90  3d a4 67 65 74 76 61 6c  28 33 31 2c 31 31 2c 34  |=.getval(31,11,4|
00001ea0  2c 31 30 30 29 0d 0c a8  33 e7 20 6e 25 3d 30 20  |,100)...3. n%=0 |
00001eb0  84 20 6e 25 3d 38 20 f1  8a 35 2c 31 31 29 22 52  |. n%=8 ..5,11)"R|
00001ec0  61 64 69 75 73 22 8a 33  30 2c 31 31 29 22 3a 22  |adius".30,11)":"|
00001ed0  3b 72 61 64 69 75 73 25  0d 0c b2 29 e7 20 6e 25  |;radius%...). n%|
00001ee0  3d 39 20 8c 20 70 72 6f  6e 67 73 25 3d a4 67 65  |=9 . prongs%=.ge|
00001ef0  74 76 61 6c 28 33 31 2c  31 32 2c 30 2c 35 30 30  |tval(31,12,0,500|
00001f00  29 0d 0c bc 39 e7 20 6e  25 3d 30 20 84 20 6e 25  |)...9. n%=0 . n%|
00001f10  3d 39 20 f1 8a 35 2c 31  32 29 22 50 72 6f 6e 67  |=9 ..5,12)"Prong|
00001f20  20 6c 65 6e 67 74 68 22  8a 33 30 2c 31 32 29 22  | length".30,12)"|
00001f30  3a 22 3b 70 72 6f 6e 67  73 25 0d 0c c6 2b e7 20  |:";prongs%...+. |
00001f40  6e 25 3d 31 30 20 8c 20  70 6c 61 79 65 72 73 25  |n%=10 . players%|
00001f50  3d a4 67 65 74 76 61 6c  28 33 31 2c 31 33 2c 30  |=.getval(31,13,0|
00001f60  2c 35 30 30 29 0d 0c d0  36 e7 20 6e 25 3d 30 20  |,500)...6. n%=0 |
00001f70  84 20 6e 25 3d 31 30 20  f1 8a 35 2c 31 33 29 22  |. n%=10 ..5,13)"|
00001f80  50 6c 61 79 65 72 73 22  8a 33 30 2c 31 33 29 22  |Players".30,13)"|
00001f90  3a 22 3b 70 6c 61 79 65  72 73 25 0d 0c da 25 e7  |:";players%...%.|
00001fa0  20 6e 25 3d 31 31 20 8c  20 63 6c 65 61 72 73 63  | n%=11 . clearsc|
00001fb0  72 6e 25 3d ac 20 63 6c  65 61 72 73 63 72 6e 25  |rn%=. clearscrn%|
00001fc0  0d 0c e4 3e e7 20 6e 25  3d 30 20 84 20 6e 25 3d  |...>. n%=0 . n%=|
00001fd0  31 31 20 f1 8a 35 2c 31  34 29 22 54 72 61 69 6c  |11 ..5,14)"Trail|
00001fe0  73 22 8a 33 30 2c 31 34  29 22 3a 22 3b a4 6f 6e  |s".30,14)":";.on|
00001ff0  28 ac 20 63 6c 65 61 72  73 63 72 6e 25 29 0d 0c  |(. clearscrn%)..|
00002000  ee 31 e7 20 6e 25 3d 31  32 20 8c 20 74 69 6d 65  |.1. n%=12 . time|
00002010  6f 75 74 73 69 7a 65 25  3d a4 67 65 74 76 61 6c  |outsize%=.getval|
00002020  28 33 31 2c 31 35 2c 30  2c 35 29 2a 31 30 30 0d  |(31,15,0,5)*100.|
00002030  0c f8 43 e7 20 6e 25 3d  30 20 84 20 6e 25 3d 31  |..C. n%=0 . n%=1|
00002040  32 20 f1 8a 35 2c 31 35  29 22 54 69 6d 65 6f 75  |2 ..5,15)"Timeou|
00002050  74 20 74 69 6d 65 22 8a  33 30 2c 31 35 29 22 3a  |t time".30,15)":|
00002060  22 3b 74 69 6d 65 6f 75  74 73 69 7a 65 25 2f 31  |";timeoutsize%/1|
00002070  30 30 0d 0d 02 2b e7 20  6e 25 3d 31 33 20 8c 20  |00...+. n%=13 . |
00002080  69 74 25 3d a4 67 65 74  76 61 6c 28 33 31 2c 31  |it%=.getval(31,1|
00002090  36 2c 31 2c 70 6c 61 79  65 72 73 25 29 0d 0d 0c  |6,1,players%)...|
000020a0  3b e7 20 6e 25 3d 30 20  84 20 6e 25 3d 31 33 20  |;. n%=0 . n%=13 |
000020b0  f1 8a 35 2c 31 36 29 22  44 65 66 61 75 6c 74 20  |..5,16)"Default |
000020c0  70 6c 61 79 65 72 20 69  74 22 8a 33 30 2c 31 36  |player it".30,16|
000020d0  29 22 3a 22 3b 69 74 25  0d 0d 16 04 0d 0d 20 1e  |)":";it%...... .|
000020e0  e7 20 6e 25 3d 30 20 f1  8a 35 2c 31 37 29 22 50  |. n%=0 ..5,17)"P|
000020f0  6c 61 79 20 67 61 6d 65  21 22 0d 0d 2a 05 e1 0d  |lay game!"..*...|
00002100  0d 34 04 0d 0d 3e 1c dd  20 a4 67 65 74 76 61 6c  |.4...>.. .getval|
00002110  28 78 25 2c 79 25 2c 6d  69 6e 2c 6d 61 78 29 0d  |(x%,y%,min,max).|
00002120  0d 48 09 ea 20 61 6e 73  0d 0d 52 10 ee 3a 2a 70  |.H.. ans..R..:*p|
00002130  6f 69 6e 74 65 72 20 30  0d 0d 5c 19 f1 20 8a 78  |ointer 0..\.. .x|
00002140  25 2c 79 25 29 22 20 20  20 20 20 20 20 20 20 20  |%,y%)"          |
00002150  22 0d 0d 66 11 e8 20 8a  78 25 2c 79 25 29 20 61  |"..f.. .x%,y%) a|
00002160  6e 73 0d 0d 70 17 e7 20  61 6e 73 3c 6d 69 6e 20  |ns..p.. ans<min |
00002170  8c 20 61 6e 73 3d 6d 69  6e 0d 0d 7a 17 e7 20 61  |. ans=min..z.. a|
00002180  6e 73 3e 6d 61 78 20 8c  20 61 6e 73 3d 6d 61 78  |ns>max . ans=max|
00002190  0d 0d 84 10 87 3a 2a 70  6f 69 6e 74 65 72 20 31  |.....:*pointer 1|
000021a0  0d 0d 8e 08 3d 61 6e 73  0d ff                    |....=ans..|
000021aa