Home » Archimedes archive » Acorn User » AU 1995-06.adf » !StarInfo_StarInfo » Shotton/Chase

Shotton/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-06.adf » !StarInfo_StarInfo
Filename: Shotton/Chase
Read OK:
File size: 15B5 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >Chase
   20REM Version 1.2
   30REM By Jamie Shotton
   40:
   50PROCinit
   60ON ERROR IF ERR=17 END ELSE PROCerror
   70quit%=FALSE
   80REPEAT
   90PROCmenu
  100UNTIL quit%
  111END
  120:
  130DEF PROCerror
  140MODE mode%:OFF
  150PRINT REPORT$;" at line ";ERL
  160REPEATUNTILINKEY-99
  170END
  180ENDPROC
  190:
  200DEF PROCinit
  210mode%=12
  220MODE 12
  230OFF
  240players%=2
  250time_out%=2
  260prongs%=1
  270rev%=0
  280acc%=0
  290turn%=6
  300speed%=6
  310accel=speed%/7.5
  320screen%=1
  330DIM x%(4),y%(4),a%(4),s(4)
  340ENDPROC
  350:
  360DEF PROCmenu
  370LOCAL x%,y%,b%,option%,oopt%,rnd%,sdiv%
  380sdiv%=1280/11
  390option%=1:oopt%=1
  400PROCdisplay_menu
  410REPEAT
  420MOUSE x%,y%,b%
  430IF y%>sdiv%*0 AND y%<=sdiv%*1 option%=9
  440IF y%>sdiv%*1 AND y%<=sdiv%*2 option%=8
  450IF y%>sdiv%*2 AND y%<=sdiv%*3 option%=7
  460IF y%>sdiv%*3 AND y%<=sdiv%*4 option%=6
  470IF y%>sdiv%*4 AND y%<=sdiv%*5 option%=5
  480IF y%>sdiv%*5 AND y%<=sdiv%*6 option%=4
  490IF y%>sdiv%*6 AND y%<=sdiv%*7 option%=3
  500IF y%>sdiv%*7 AND y%<=sdiv%*8 option%=2
  510IF y%>sdiv%*8 AND y%<=sdiv%*9 option%=1
  520IF option%<>0 PROCselect(option%+6,oopt%+6)
  530oopt%=option%
  540IF b%<>0 PROCalter_state(option%,b%):PROCwnb
  550rnd%=RND(100)
  560UNTIL quit%
  570ENDPROC
  580:
  590DEF PROCdisplay_menu
  600LOCAL prongs$,rev$,acc$,pos%
  610pos%=20
  620IF rev% rev$="on " ELSE rev$="off"
  630IF prongs% prongs$="on " ELSE prongs$="off"
  640IF acc% acc$="on " ELSE acc$="off"
  650CLS
  660PROCcentre("Chase")
  670PROCcentre("Version 1.2")
  680PROCcentre("By Jamie Shotton")
  690PRINT'
  700PROCcentre("Options")
  710PRINT
  720PRINT TAB(pos%);"Start Game"
  730PRINT TAB(pos%);"Players : "+STR$(players%)
  740PRINT TAB(pos%);"Timeout : "+STR$(time_out%)
  750PRINT TAB(pos%);"Prongs : "+prongs$
  760PRINT TAB(pos%);"Turning speed : "+STR$(turn%)+" "
  770PRINT TAB(pos%);"Movement speed : "+STR$(speed%)+" "
  780PRINT TAB(pos%);"Reverse movement : "+rev$
  790PRINT TAB(pos%);"Acceleration : "+acc$
  800PRINT TAB(pos%);"Quit"
  810ENDPROC
  820:
  830DEF PROCcentre(a$)
  840LOCAL pos
  850pos=(80-LENa$)/2
  860PRINT TAB(pos);a$
  870ENDPROC
  880:
  890DEF PROCselect(line%,oline%)
  900IF line%<>oline% PRINT TAB(19,oline%);" "
  910PRINT TAB(19,line%);">"
  920ENDPROC
  930:
  940DEF PROCalter_state(opt%,but%)
  950LOCAL prong$,rev$,acc$,pow$
  960CASE opt% OF
  970  WHEN 1
  980    PROCstart_game
  990    speed%=ABS(speed%)
 1000    MODE 12:OFF
 1010    PROCdisplay_menu
 1020  WHEN 2
 1030    IF but%=1 players%+=1:IF players%>4 players%=4
 1040    IF but%=4 players%-=1:IF players%<2 players%=2
 1050    PRINT TAB(30,8);STR$(players%)
 1060  WHEN 3
 1070    IF but%=1 time_out%+=1:IF time_out%>10 time_out%=10
 1080    IF but%=4 time_out%-=1:IF time_out%<0 time_out%=0
 1090    PRINT TAB(30,9);STR$(time_out%);" "
 1100  WHEN 4
 1110    prongs%=1-prongs%
 1120    IF prongs% prongs$="on " ELSE prongs$="off"
 1130    PRINT TAB(29,10);prongs$
 1140  WHEN 5
 1150    IF but%=1 turn%+=1:IF turn%>10 turn%=10
 1160    IF but%=4 turn%-=1:IF turn%<1  turn%=1
 1170    PRINT TAB(36,11);STR$(turn%);" "
 1180  WHEN 6
 1190    IF but%=1 speed%+=1:IF speed%>10 speed%=10
 1200    IF but%=4 speed%-=1:IF speed%<1  speed%=1
 1210    PRINT TAB(37,12);STR$(speed%);" "
 1220  WHEN 7
 1230    rev%=1-rev%
 1240    IF rev% rev$="on " ELSE rev$="off"
 1250    PRINT TAB(39,13);rev$
 1260  WHEN 8
 1270    acc%=1-acc%
 1280    IF acc% acc$="on " ELSE acc$="off"
 1290    PRINT TAB(35,14);acc$
 1300  WHEN 9
 1310    quit%=TRUE
 1320ENDCASE
 1330ENDPROC
 1340:
 1350DEF PROCwnb
 1360LOCAL a%
 1370FOR a%=1 TO 100000:NEXT
 1380ENDPROC
 1390:
 1400DEF PROCstart_game
 1410LOCAL time%,loop%,powx%,powy%,powt%,powon%,powtime%,dec%
 1420LOCAL ERROR
 1430ON ERROR LOCAL IF ERR=17 RESTORE ERROR:ENDPROC ELSE PROCerror
 1440CLS
 1450PRINT TAB(0,12);
 1460PROCcentre("Get Ready To Play")
 1470FOR loop%=3 TO 1 STEP -1
 1480  PRINT TAB(0,13);
 1490  PROCcentre(STR$loop%)
 1500  PROCwait(100)
 1510NEXT
 1520PROCinit_game
 1530PROCplay_game
 1540ENDPROC
 1550:
 1560DEF PROCwait(len%)
 1570LOCAL time%,r%
 1580time%=TIME
 1590REPEAT
 1600UNTIL (TIME-time%)>len%
 1610ENDPROC
 1620:
 1630DEF PROCinit_game
 1640LOCAL loop%
 1650MODE mode%:OFF
 1660IF mode%=12 yr%=1024
 1670IF mode%=20 yr%=959
 1680it%=RND(players%)
 1690FOR loop%=1 TO players%
 1700  x%(loop%)=RND(1160)+60
 1710  y%(loop%)=RND(yr%-120)+60
 1720  a%(loop%)=RND(360)
 1730NEXT
 1740w%=0
 1750accel=speed%/7.5
 1760IF rev% speed%=-speed%
 1770IF rev% dec%=-2 ELSE dec%=2
 1780ENDPROC
 1790:
 1800DEF PROCplay_game
 1810REPEAT
 1820  PROCcb
 1830  PROCpps
 1840  IF w%=0 PROCcd
 1850  PROCmp
 1860  PROCdb
 1870  IF w%>0 w%-=1
 1880UNTIL FALSE
 1890ENDPROC
 1900:
 1910DEF PROCpps
 1920LOCAL p%
 1930COLOUR it%
 1940PRINTTAB(0,0);"Player ";it%;" is it"
 1950IF w%>0 THEN
 1960  COLOUR 7
 1970  PRINT"Timeout left :";FNtol
 1980ENDIF
 1990PROCpp(it%)
 2000FOR p%=1 TO players%
 2010  IF p%=it% NEXT
 2020  IF p%>players% ENDPROC
 2030  PROCpp(p%)
 2040NEXT
 2050ENDPROC
 2060:
 2070DEF FNtol
 2080LOCAL s,s$
 2090s=w%/50
 2100s=INT(s*10)*0.1
 2110s$=LEFT$(STR$s,3)
 2120IF s=INT(s) s$+=".0"
 2130=s$
 2140:
 2150DEF PROCpp(p%)
 2160IF p%=it% GCOL 7 ELSE GCOL p%
 2170CIRCLEFILL x%(p%),y%(p%),12
 2180IF prongs% THEN
 2190  LINE x%(p%),y%(p%),COSRAD(a%(p%))*50+x%(p%),SINRAD(a%(p%))*50+y%(p%)
 2200ENDIF
 2210ENDPROC
 2220:
 2230DEF PROCcd
 2240LOCAL x%,y%,point%
 2250IF prongs% THEN
 2260  x%=COSRAD(a%(it%))*50+x%(it%)
 2270  y%=SINRAD(a%(it%))*50+y%(it%)
 2280ELSE
 2290  x%=x%(it%)
 2300  y%=y%(it%)
 2310ENDIF
 2320point%=POINT(x%,y%)
 2330IF point%<=4 THEN
 2340  it%=point%:w%=time_out%*50
 2350ENDIF
 2360ENDPROC
 2370:
 2380DEF PROCmp
 2390IF acc% PROCma
 2400:
 2410IF INKEY-83 a%(1)-=turn%
 2420IF INKEY-98 a%(1)+=turn%
 2430IF INKEY-67 PROCforward(1) ELSE IF acc% PROCdeceler(1)
 2440:
 2450IF INKEY-105 a%(2)-=turn%
 2460IF INKEY-103 a%(2)+=turn%
 2470IF INKEY-104 PROCforward(2) ELSE IF acc% PROCdeceler(2)
 2480:
 2490IF players%=2 ENDPROC
 2500IF INKEY-109 a%(3)-=turn%
 2510IF INKEY-108 a%(3)+=turn%
 2520IF INKEY-125 PROCforward(3) ELSE IF acc% PROCdeceler(3)
 2530:
 2540IF players%=3 ENDPROC
 2550IF INKEY-12 a%(4)-=turn%
 2560IF INKEY-10 a%(4)+=turn%
 2570IF INKEY-11 PROCforward(4) ELSE IF acc% PROCdeceler(4)
 2580ENDPROC
 2590:
 2600DEF PROCforward(p%)
 2610IF NOT acc% THEN
 2620  x%(p%)+=COSRAD(a%(p%))*speed%
 2630  y%(p%)+=SINRAD(a%(p%))*speed%
 2640ELSE
 2650  IF rev% THEN
 2660    s(p%)-=accel
 2670    IF s(p%)<speed% s(p%)=speed%
 2680    ENDIF
 2690  ELSE
 2700    s(p%)+=accel
 2710    IF s(p%)>speed% s(p%)=speed%
 2720  ENDIF
 2730ENDIF
 2740ENDPROC
 2750:
 2760DEF PROCdeceler(p%)
 2770IF rev% THEN
 2780  IF s(p%)<0 THEN
 2790    s(p%)+=accel/2
 2800  ENDIF
 2810ELSE
 2820  IF s(p%)>0 THEN
 2830    s(p%)-=accel/2
 2840  ENDIF
 2850ENDIF
 2860ENDPROC
 2870:
 2880DEF PROCma
 2890LOCAL p%
 2900FOR p%=1 TO players%
 2910  x%(p%)+=COSRAD(a%(p%))*s(p%)
 2920  y%(p%)+=SINRAD(a%(p%))*s(p%)
 2930NEXT
 2940ENDPROC
 2950:
 2960DEF PROCdb
 2970WAIT
 2980SYS6,112,screen%
 2990screen%=screen% EOR 3
 3000SYS6,113,screen%
 3010CLS
 3020ENDPROC
 3030:
 3040DEF PROCcb
 3050LOCAL p%
 3060FOR p%=1 TO players%
 3070  IF x%(p%)>1220 x%(p%)=1220
 3080  IF x%(p%)<60 x%(p%)=60
 3090  IF y%(p%)>yr%-60 y%(p%)=yr%-60
 3100  IF y%(p%)<60 y%(p%)=60
 3110NEXT
 3120ENDPROC

� >Chase
� Version 1.2
� By Jamie Shotton
(:
2	�init
<� � � �=17 � � �error
Fquit%=�
P�
Z	�menu
d� quit%
o�
x:
�� �error
�
� mode%:�
�� �$;" at line ";�
�
���-99
��
��
�:
�� �init
�mode%=12
�� 12
��
�players%=2
�time_out%=2

prongs%=1

rev%=0

acc%=0
"turn%=6
,speed%=6
6accel=speed%/7.5
@
screen%=1
J� x%(4),y%(4),a%(4),s(4)
T�
^:
h� �menu
r'� x%,y%,b%,option%,oopt%,rnd%,sdiv%
|sdiv%=1280/11
�option%=1:oopt%=1
��display_menu
��
�ȗ x%,y%,b%
�(� y%>sdiv%*0 � y%<=sdiv%*1 option%=9
�(� y%>sdiv%*1 � y%<=sdiv%*2 option%=8
�(� y%>sdiv%*2 � y%<=sdiv%*3 option%=7
�(� y%>sdiv%*3 � y%<=sdiv%*4 option%=6
�(� y%>sdiv%*4 � y%<=sdiv%*5 option%=5
�(� y%>sdiv%*5 � y%<=sdiv%*6 option%=4
�(� y%>sdiv%*6 � y%<=sdiv%*7 option%=3
�(� y%>sdiv%*7 � y%<=sdiv%*8 option%=2
�(� y%>sdiv%*8 � y%<=sdiv%*9 option%=1
+� option%<>0 �select(option%+6,oopt%+6)
oopt%=option%
)� b%<>0 �alter_state(option%,b%):�wnb
&rnd%=�(100)
0� quit%
:�
D:
N� �display_menu
X� prongs$,rev$,acc$,pos%
bpos%=20
l"� rev% rev$="on " � rev$="off"
v+� prongs% prongs$="on " � prongs$="off"
�"� acc% acc$="on " � acc$="off"
��
��centre("Chase")
��centre("Version 1.2")
��centre("By Jamie Shotton")
��'
��centre("Options")
��
�� �pos%);"Start Game"
�%� �pos%);"Players : "+�(players%)
�&� �pos%);"Timeout : "+�(time_out%)
� � �pos%);"Prongs : "+prongs$
�,� �pos%);"Turning speed : "+�(turn%)+" "
.� �pos%);"Movement speed : "+�(speed%)+" "
'� �pos%);"Reverse movement : "+rev$
#� �pos%);"Acceleration : "+acc$
 � �pos%);"Quit"
*�
4:
>� �centre(a$)
H	� pos
Rpos=(80-�a$)/2
\� �pos);a$
f�
p:
z� �select(line%,oline%)
�%� line%<>oline% � �19,oline%);" "
�� �19,line%);">"
��
�:
�� �alter_state(opt%,but%)
�� prong$,rev$,acc$,pow$
�
Ȏ opt% �
�	  � 1
�    �start_game
�    speed%=�(speed%)
�    � 12:�
�    �display_menu
�	  � 2
4    � but%=1 players%+=1:� players%>4 players%=4
4    � but%=4 players%-=1:� players%<2 players%=2
    � �30,8);�(players%)
$	  � 3
.9    � but%=1 time_out%+=1:� time_out%>10 time_out%=10
87    � but%=4 time_out%-=1:� time_out%<0 time_out%=0
B!    � �30,9);�(time_out%);" "
L	  � 4
V    prongs%=1-prongs%
`/    � prongs% prongs$="on " � prongs$="off"
j    � �29,10);prongs$
t	  � 5
~-    � but%=1 turn%+=1:� turn%>10 turn%=10
�,    � but%=4 turn%-=1:� turn%<1  turn%=1
�    � �36,11);�(turn%);" "
�	  � 6
�0    � but%=1 speed%+=1:� speed%>10 speed%=10
�/    � but%=4 speed%-=1:� speed%<1  speed%=1
�    � �37,12);�(speed%);" "
�	  � 7
�    rev%=1-rev%
�&    � rev% rev$="on " � rev$="off"
�    � �39,13);rev$
�	  � 8
�    acc%=1-acc%
&    � acc% acc$="on " � acc$="off"

    � �35,14);acc$
	  � 9
    quit%=�
(�
2�
<:
F
� �wnb
P� a%
Z� a%=1 � 100000:�
d�
n:
x� �start_game
�8� time%,loop%,powx%,powy%,powt%,powon%,powtime%,dec%
�� �
�� � � � �=17 � �:� � �error
��
�
� �0,12);
� �centre("Get Ready To Play")
�� loop%=3 � 1 � -1
�  � �0,13);
�  �centre(�loop%)
�  �wait(100)
��
��init_game
��play_game
�
:
� �wait(len%)
"� time%,r%
,time%=�
6�
@� (�-time%)>len%
J�
T:
^� �init_game
h� loop%
r
� mode%:�
|� mode%=12 yr%=1024
�� mode%=20 yr%=959
�it%=�(players%)
�� loop%=1 � players%
�  x%(loop%)=�(1160)+60
�  y%(loop%)=�(yr%-120)+60
�  a%(loop%)=�(360)
��
�w%=0
�accel=speed%/7.5
�� rev% speed%=-speed%
�� rev% dec%=-2 � dec%=2
��
�:
� �play_game
�
	  �cb
&
  �pps
0  � w%=0 �cd
:	  �mp
D	  �db
N  � w%>0 w%-=1
X� �
b�
l:
v
� �pps
�� p%
�	� it%
�!�0,0);"Player ";it%;" is it"
�� w%>0 �
�	  � 7
�  �"Timeout left :";�tol
��
��pp(it%)
�� p%=1 � players%
�  � p%=it% �
�  � p%>players% �
�
  �pp(p%)
��
�
:

� �tol
 
� s,s$
*s=w%/50
4s=�(s*10)*0.1
>
s$=��s,3)
H� s=�(s) s$+=".0"
R=s$
\:
f
� �pp(p%)
p� p%=it% � 7 � � p%
zȏȐ x%(p%),y%(p%),12
�� prongs% �
�?  � x%(p%),y%(p%),��(a%(p%))*50+x%(p%),��(a%(p%))*50+y%(p%)
��
��
�:
�	� �cd
�� x%,y%,point%
�� prongs% �
�  x%=��(a%(it%))*50+x%(it%)
�  y%=��(a%(it%))*50+y%(it%)
��
�  x%=x%(it%)
�  y%=y%(it%)
	�
	point%=�x%,y%)
	� point%<=4 �
	$   it%=point%:w%=time_out%*50
	.�
	8�
	B:
	L	� �mp
	V� acc% �ma
	`:
	j� �-83 a%(1)-=turn%
	t� �-98 a%(1)+=turn%
	~+� �-67 �forward(1) � � acc% �deceler(1)
	�:
	�� �-105 a%(2)-=turn%
	�� �-103 a%(2)+=turn%
	�,� �-104 �forward(2) � � acc% �deceler(2)
	�:
	�� players%=2 �
	�� �-109 a%(3)-=turn%
	�� �-108 a%(3)+=turn%
	�,� �-125 �forward(3) � � acc% �deceler(3)
	�:
	�� players%=3 �
	�� �-12 a%(4)-=turn%
� �-10 a%(4)+=turn%

+� �-11 �forward(4) � � acc% �deceler(4)
�
:
(� �forward(p%)
2� � acc% �
<  x%(p%)+=��(a%(p%))*speed%
F  y%(p%)+=��(a%(p%))*speed%
P�
Z  � rev% �
d    s(p%)-=accel
n#    � s(p%)<speed% s(p%)=speed%
x	    �
�  �
�    s(p%)+=accel
�#    � s(p%)>speed% s(p%)=speed%
�  �
��
��
�:
�� �deceler(p%)
�� rev% �
�  � s(p%)<0 �
�    s(p%)+=accel/2
�  �
��
  � s(p%)>0 �
    s(p%)-=accel/2
  �
"�
,�
6:
@	� �ma
J� p%
T� p%=1 � players%
^  x%(p%)+=��(a%(p%))*s(p%)
h  y%(p%)+=��(a%(p%))*s(p%)
r�
|�
�:
�	� �db
�Ȗ
�ș6,112,screen%
�screen%=screen% � 3
�ș6,113,screen%
��
��
�:
�	� �cb
�� p%
�� p%=1 � players%
�  � x%(p%)>1220 x%(p%)=1220
  � x%(p%)<60 x%(p%)=60
#  � y%(p%)>yr%-60 y%(p%)=yr%-60
  � y%(p%)<60 y%(p%)=60
&�
0�
�
00000000  0d 00 0a 0c f4 20 3e 43  68 61 73 65 0d 00 14 11  |..... >Chase....|
00000010  f4 20 56 65 72 73 69 6f  6e 20 31 2e 32 0d 00 1e  |. Version 1.2...|
00000020  16 f4 20 42 79 20 4a 61  6d 69 65 20 53 68 6f 74  |.. By Jamie Shot|
00000030  74 6f 6e 0d 00 28 05 3a  0d 00 32 09 f2 69 6e 69  |ton..(.:..2..ini|
00000040  74 0d 00 3c 19 ee 20 85  20 e7 20 9f 3d 31 37 20  |t..<.. . . .=17 |
00000050  e0 20 8b 20 f2 65 72 72  6f 72 0d 00 46 0b 71 75  |. . .error..F.qu|
00000060  69 74 25 3d a3 0d 00 50  05 f5 0d 00 5a 09 f2 6d  |it%=...P....Z..m|
00000070  65 6e 75 0d 00 64 0b fd  20 71 75 69 74 25 0d 00  |enu..d.. quit%..|
00000080  6f 05 e0 0d 00 78 05 3a  0d 00 82 0c dd 20 f2 65  |o....x.:..... .e|
00000090  72 72 6f 72 0d 00 8c 0d  eb 20 6d 6f 64 65 25 3a  |rror..... mode%:|
000000a0  87 0d 00 96 16 f1 20 f6  24 3b 22 20 61 74 20 6c  |...... .$;" at l|
000000b0  69 6e 65 20 22 3b 9e 0d  00 a0 0a f5 fd a6 2d 39  |ine ";........-9|
000000c0  39 0d 00 aa 05 e0 0d 00  b4 05 e1 0d 00 be 05 3a  |9..............:|
000000d0  0d 00 c8 0b dd 20 f2 69  6e 69 74 0d 00 d2 0c 6d  |..... .init....m|
000000e0  6f 64 65 25 3d 31 32 0d  00 dc 08 eb 20 31 32 0d  |ode%=12..... 12.|
000000f0  00 e6 05 87 0d 00 f0 0e  70 6c 61 79 65 72 73 25  |........players%|
00000100  3d 32 0d 00 fa 0f 74 69  6d 65 5f 6f 75 74 25 3d  |=2....time_out%=|
00000110  32 0d 01 04 0d 70 72 6f  6e 67 73 25 3d 31 0d 01  |2....prongs%=1..|
00000120  0e 0a 72 65 76 25 3d 30  0d 01 18 0a 61 63 63 25  |..rev%=0....acc%|
00000130  3d 30 0d 01 22 0b 74 75  72 6e 25 3d 36 0d 01 2c  |=0..".turn%=6..,|
00000140  0c 73 70 65 65 64 25 3d  36 0d 01 36 14 61 63 63  |.speed%=6..6.acc|
00000150  65 6c 3d 73 70 65 65 64  25 2f 37 2e 35 0d 01 40  |el=speed%/7.5..@|
00000160  0d 73 63 72 65 65 6e 25  3d 31 0d 01 4a 1c de 20  |.screen%=1..J.. |
00000170  78 25 28 34 29 2c 79 25  28 34 29 2c 61 25 28 34  |x%(4),y%(4),a%(4|
00000180  29 2c 73 28 34 29 0d 01  54 05 e1 0d 01 5e 05 3a  |),s(4)..T....^.:|
00000190  0d 01 68 0b dd 20 f2 6d  65 6e 75 0d 01 72 27 ea  |..h.. .menu..r'.|
000001a0  20 78 25 2c 79 25 2c 62  25 2c 6f 70 74 69 6f 6e  | x%,y%,b%,option|
000001b0  25 2c 6f 6f 70 74 25 2c  72 6e 64 25 2c 73 64 69  |%,oopt%,rnd%,sdi|
000001c0  76 25 0d 01 7c 11 73 64  69 76 25 3d 31 32 38 30  |v%..|.sdiv%=1280|
000001d0  2f 31 31 0d 01 86 15 6f  70 74 69 6f 6e 25 3d 31  |/11....option%=1|
000001e0  3a 6f 6f 70 74 25 3d 31  0d 01 90 11 f2 64 69 73  |:oopt%=1.....dis|
000001f0  70 6c 61 79 5f 6d 65 6e  75 0d 01 9a 05 f5 0d 01  |play_menu.......|
00000200  a4 0f c8 97 20 78 25 2c  79 25 2c 62 25 0d 01 ae  |.... x%,y%,b%...|
00000210  28 e7 20 79 25 3e 73 64  69 76 25 2a 30 20 80 20  |(. y%>sdiv%*0 . |
00000220  79 25 3c 3d 73 64 69 76  25 2a 31 20 6f 70 74 69  |y%<=sdiv%*1 opti|
00000230  6f 6e 25 3d 39 0d 01 b8  28 e7 20 79 25 3e 73 64  |on%=9...(. y%>sd|
00000240  69 76 25 2a 31 20 80 20  79 25 3c 3d 73 64 69 76  |iv%*1 . y%<=sdiv|
00000250  25 2a 32 20 6f 70 74 69  6f 6e 25 3d 38 0d 01 c2  |%*2 option%=8...|
00000260  28 e7 20 79 25 3e 73 64  69 76 25 2a 32 20 80 20  |(. y%>sdiv%*2 . |
00000270  79 25 3c 3d 73 64 69 76  25 2a 33 20 6f 70 74 69  |y%<=sdiv%*3 opti|
00000280  6f 6e 25 3d 37 0d 01 cc  28 e7 20 79 25 3e 73 64  |on%=7...(. y%>sd|
00000290  69 76 25 2a 33 20 80 20  79 25 3c 3d 73 64 69 76  |iv%*3 . y%<=sdiv|
000002a0  25 2a 34 20 6f 70 74 69  6f 6e 25 3d 36 0d 01 d6  |%*4 option%=6...|
000002b0  28 e7 20 79 25 3e 73 64  69 76 25 2a 34 20 80 20  |(. y%>sdiv%*4 . |
000002c0  79 25 3c 3d 73 64 69 76  25 2a 35 20 6f 70 74 69  |y%<=sdiv%*5 opti|
000002d0  6f 6e 25 3d 35 0d 01 e0  28 e7 20 79 25 3e 73 64  |on%=5...(. y%>sd|
000002e0  69 76 25 2a 35 20 80 20  79 25 3c 3d 73 64 69 76  |iv%*5 . y%<=sdiv|
000002f0  25 2a 36 20 6f 70 74 69  6f 6e 25 3d 34 0d 01 ea  |%*6 option%=4...|
00000300  28 e7 20 79 25 3e 73 64  69 76 25 2a 36 20 80 20  |(. y%>sdiv%*6 . |
00000310  79 25 3c 3d 73 64 69 76  25 2a 37 20 6f 70 74 69  |y%<=sdiv%*7 opti|
00000320  6f 6e 25 3d 33 0d 01 f4  28 e7 20 79 25 3e 73 64  |on%=3...(. y%>sd|
00000330  69 76 25 2a 37 20 80 20  79 25 3c 3d 73 64 69 76  |iv%*7 . y%<=sdiv|
00000340  25 2a 38 20 6f 70 74 69  6f 6e 25 3d 32 0d 01 fe  |%*8 option%=2...|
00000350  28 e7 20 79 25 3e 73 64  69 76 25 2a 38 20 80 20  |(. y%>sdiv%*8 . |
00000360  79 25 3c 3d 73 64 69 76  25 2a 39 20 6f 70 74 69  |y%<=sdiv%*9 opti|
00000370  6f 6e 25 3d 31 0d 02 08  2b e7 20 6f 70 74 69 6f  |on%=1...+. optio|
00000380  6e 25 3c 3e 30 20 f2 73  65 6c 65 63 74 28 6f 70  |n%<>0 .select(op|
00000390  74 69 6f 6e 25 2b 36 2c  6f 6f 70 74 25 2b 36 29  |tion%+6,oopt%+6)|
000003a0  0d 02 12 11 6f 6f 70 74  25 3d 6f 70 74 69 6f 6e  |....oopt%=option|
000003b0  25 0d 02 1c 29 e7 20 62  25 3c 3e 30 20 f2 61 6c  |%...). b%<>0 .al|
000003c0  74 65 72 5f 73 74 61 74  65 28 6f 70 74 69 6f 6e  |ter_state(option|
000003d0  25 2c 62 25 29 3a f2 77  6e 62 0d 02 26 0f 72 6e  |%,b%):.wnb..&.rn|
000003e0  64 25 3d b3 28 31 30 30  29 0d 02 30 0b fd 20 71  |d%=.(100)..0.. q|
000003f0  75 69 74 25 0d 02 3a 05  e1 0d 02 44 05 3a 0d 02  |uit%..:....D.:..|
00000400  4e 13 dd 20 f2 64 69 73  70 6c 61 79 5f 6d 65 6e  |N.. .display_men|
00000410  75 0d 02 58 1c ea 20 70  72 6f 6e 67 73 24 2c 72  |u..X.. prongs$,r|
00000420  65 76 24 2c 61 63 63 24  2c 70 6f 73 25 0d 02 62  |ev$,acc$,pos%..b|
00000430  0b 70 6f 73 25 3d 32 30  0d 02 6c 22 e7 20 72 65  |.pos%=20..l". re|
00000440  76 25 20 72 65 76 24 3d  22 6f 6e 20 22 20 8b 20  |v% rev$="on " . |
00000450  72 65 76 24 3d 22 6f 66  66 22 0d 02 76 2b e7 20  |rev$="off"..v+. |
00000460  70 72 6f 6e 67 73 25 20  70 72 6f 6e 67 73 24 3d  |prongs% prongs$=|
00000470  22 6f 6e 20 22 20 8b 20  70 72 6f 6e 67 73 24 3d  |"on " . prongs$=|
00000480  22 6f 66 66 22 0d 02 80  22 e7 20 61 63 63 25 20  |"off"...". acc% |
00000490  61 63 63 24 3d 22 6f 6e  20 22 20 8b 20 61 63 63  |acc$="on " . acc|
000004a0  24 3d 22 6f 66 66 22 0d  02 8a 05 db 0d 02 94 14  |$="off".........|
000004b0  f2 63 65 6e 74 72 65 28  22 43 68 61 73 65 22 29  |.centre("Chase")|
000004c0  0d 02 9e 1a f2 63 65 6e  74 72 65 28 22 56 65 72  |.....centre("Ver|
000004d0  73 69 6f 6e 20 31 2e 32  22 29 0d 02 a8 1f f2 63  |sion 1.2").....c|
000004e0  65 6e 74 72 65 28 22 42  79 20 4a 61 6d 69 65 20  |entre("By Jamie |
000004f0  53 68 6f 74 74 6f 6e 22  29 0d 02 b2 06 f1 27 0d  |Shotton").....'.|
00000500  02 bc 16 f2 63 65 6e 74  72 65 28 22 4f 70 74 69  |....centre("Opti|
00000510  6f 6e 73 22 29 0d 02 c6  05 f1 0d 02 d0 19 f1 20  |ons").......... |
00000520  8a 70 6f 73 25 29 3b 22  53 74 61 72 74 20 47 61  |.pos%);"Start Ga|
00000530  6d 65 22 0d 02 da 25 f1  20 8a 70 6f 73 25 29 3b  |me"...%. .pos%);|
00000540  22 50 6c 61 79 65 72 73  20 3a 20 22 2b c3 28 70  |"Players : "+.(p|
00000550  6c 61 79 65 72 73 25 29  0d 02 e4 26 f1 20 8a 70  |layers%)...&. .p|
00000560  6f 73 25 29 3b 22 54 69  6d 65 6f 75 74 20 3a 20  |os%);"Timeout : |
00000570  22 2b c3 28 74 69 6d 65  5f 6f 75 74 25 29 0d 02  |"+.(time_out%)..|
00000580  ee 20 f1 20 8a 70 6f 73  25 29 3b 22 50 72 6f 6e  |. . .pos%);"Pron|
00000590  67 73 20 3a 20 22 2b 70  72 6f 6e 67 73 24 0d 02  |gs : "+prongs$..|
000005a0  f8 2c f1 20 8a 70 6f 73  25 29 3b 22 54 75 72 6e  |.,. .pos%);"Turn|
000005b0  69 6e 67 20 73 70 65 65  64 20 3a 20 22 2b c3 28  |ing speed : "+.(|
000005c0  74 75 72 6e 25 29 2b 22  20 22 0d 03 02 2e f1 20  |turn%)+" "..... |
000005d0  8a 70 6f 73 25 29 3b 22  4d 6f 76 65 6d 65 6e 74  |.pos%);"Movement|
000005e0  20 73 70 65 65 64 20 3a  20 22 2b c3 28 73 70 65  | speed : "+.(spe|
000005f0  65 64 25 29 2b 22 20 22  0d 03 0c 27 f1 20 8a 70  |ed%)+" "...'. .p|
00000600  6f 73 25 29 3b 22 52 65  76 65 72 73 65 20 6d 6f  |os%);"Reverse mo|
00000610  76 65 6d 65 6e 74 20 3a  20 22 2b 72 65 76 24 0d  |vement : "+rev$.|
00000620  03 16 23 f1 20 8a 70 6f  73 25 29 3b 22 41 63 63  |..#. .pos%);"Acc|
00000630  65 6c 65 72 61 74 69 6f  6e 20 3a 20 22 2b 61 63  |eleration : "+ac|
00000640  63 24 0d 03 20 13 f1 20  8a 70 6f 73 25 29 3b 22  |c$.. .. .pos%);"|
00000650  51 75 69 74 22 0d 03 2a  05 e1 0d 03 34 05 3a 0d  |Quit"..*....4.:.|
00000660  03 3e 11 dd 20 f2 63 65  6e 74 72 65 28 61 24 29  |.>.. .centre(a$)|
00000670  0d 03 48 09 ea 20 70 6f  73 0d 03 52 12 70 6f 73  |..H.. pos..R.pos|
00000680  3d 28 38 30 2d a9 61 24  29 2f 32 0d 03 5c 0e f1  |=(80-.a$)/2..\..|
00000690  20 8a 70 6f 73 29 3b 61  24 0d 03 66 05 e1 0d 03  | .pos);a$..f....|
000006a0  70 05 3a 0d 03 7a 1b dd  20 f2 73 65 6c 65 63 74  |p.:..z.. .select|
000006b0  28 6c 69 6e 65 25 2c 6f  6c 69 6e 65 25 29 0d 03  |(line%,oline%)..|
000006c0  84 25 e7 20 6c 69 6e 65  25 3c 3e 6f 6c 69 6e 65  |.%. line%<>oline|
000006d0  25 20 f1 20 8a 31 39 2c  6f 6c 69 6e 65 25 29 3b  |% . .19,oline%);|
000006e0  22 20 22 0d 03 8e 14 f1  20 8a 31 39 2c 6c 69 6e  |" "..... .19,lin|
000006f0  65 25 29 3b 22 3e 22 0d  03 98 05 e1 0d 03 a2 05  |e%);">".........|
00000700  3a 0d 03 ac 1d dd 20 f2  61 6c 74 65 72 5f 73 74  |:..... .alter_st|
00000710  61 74 65 28 6f 70 74 25  2c 62 75 74 25 29 0d 03  |ate(opt%,but%)..|
00000720  b6 1b ea 20 70 72 6f 6e  67 24 2c 72 65 76 24 2c  |... prong$,rev$,|
00000730  61 63 63 24 2c 70 6f 77  24 0d 03 c0 0d c8 8e 20  |acc$,pow$...... |
00000740  6f 70 74 25 20 ca 0d 03  ca 09 20 20 c9 20 31 0d  |opt% .....  . 1.|
00000750  03 d4 13 20 20 20 20 f2  73 74 61 72 74 5f 67 61  |...    .start_ga|
00000760  6d 65 0d 03 de 18 20 20  20 20 73 70 65 65 64 25  |me....    speed%|
00000770  3d 94 28 73 70 65 65 64  25 29 0d 03 e8 0e 20 20  |=.(speed%)....  |
00000780  20 20 eb 20 31 32 3a 87  0d 03 f2 15 20 20 20 20  |  . 12:.....    |
00000790  f2 64 69 73 70 6c 61 79  5f 6d 65 6e 75 0d 03 fc  |.display_menu...|
000007a0  09 20 20 c9 20 32 0d 04  06 34 20 20 20 20 e7 20  |.  . 2...4    . |
000007b0  62 75 74 25 3d 31 20 70  6c 61 79 65 72 73 25 2b  |but%=1 players%+|
000007c0  3d 31 3a e7 20 70 6c 61  79 65 72 73 25 3e 34 20  |=1:. players%>4 |
000007d0  70 6c 61 79 65 72 73 25  3d 34 0d 04 10 34 20 20  |players%=4...4  |
000007e0  20 20 e7 20 62 75 74 25  3d 34 20 70 6c 61 79 65  |  . but%=4 playe|
000007f0  72 73 25 2d 3d 31 3a e7  20 70 6c 61 79 65 72 73  |rs%-=1:. players|
00000800  25 3c 32 20 70 6c 61 79  65 72 73 25 3d 32 0d 04  |%<2 players%=2..|
00000810  1a 1c 20 20 20 20 f1 20  8a 33 30 2c 38 29 3b c3  |..    . .30,8);.|
00000820  28 70 6c 61 79 65 72 73  25 29 0d 04 24 09 20 20  |(players%)..$.  |
00000830  c9 20 33 0d 04 2e 39 20  20 20 20 e7 20 62 75 74  |. 3...9    . but|
00000840  25 3d 31 20 74 69 6d 65  5f 6f 75 74 25 2b 3d 31  |%=1 time_out%+=1|
00000850  3a e7 20 74 69 6d 65 5f  6f 75 74 25 3e 31 30 20  |:. time_out%>10 |
00000860  74 69 6d 65 5f 6f 75 74  25 3d 31 30 0d 04 38 37  |time_out%=10..87|
00000870  20 20 20 20 e7 20 62 75  74 25 3d 34 20 74 69 6d  |    . but%=4 tim|
00000880  65 5f 6f 75 74 25 2d 3d  31 3a e7 20 74 69 6d 65  |e_out%-=1:. time|
00000890  5f 6f 75 74 25 3c 30 20  74 69 6d 65 5f 6f 75 74  |_out%<0 time_out|
000008a0  25 3d 30 0d 04 42 21 20  20 20 20 f1 20 8a 33 30  |%=0..B!    . .30|
000008b0  2c 39 29 3b c3 28 74 69  6d 65 5f 6f 75 74 25 29  |,9);.(time_out%)|
000008c0  3b 22 20 22 0d 04 4c 09  20 20 c9 20 34 0d 04 56  |;" "..L.  . 4..V|
000008d0  19 20 20 20 20 70 72 6f  6e 67 73 25 3d 31 2d 70  |.    prongs%=1-p|
000008e0  72 6f 6e 67 73 25 0d 04  60 2f 20 20 20 20 e7 20  |rongs%..`/    . |
000008f0  70 72 6f 6e 67 73 25 20  70 72 6f 6e 67 73 24 3d  |prongs% prongs$=|
00000900  22 6f 6e 20 22 20 8b 20  70 72 6f 6e 67 73 24 3d  |"on " . prongs$=|
00000910  22 6f 66 66 22 0d 04 6a  19 20 20 20 20 f1 20 8a  |"off"..j.    . .|
00000920  32 39 2c 31 30 29 3b 70  72 6f 6e 67 73 24 0d 04  |29,10);prongs$..|
00000930  74 09 20 20 c9 20 35 0d  04 7e 2d 20 20 20 20 e7  |t.  . 5..~-    .|
00000940  20 62 75 74 25 3d 31 20  74 75 72 6e 25 2b 3d 31  | but%=1 turn%+=1|
00000950  3a e7 20 74 75 72 6e 25  3e 31 30 20 74 75 72 6e  |:. turn%>10 turn|
00000960  25 3d 31 30 0d 04 88 2c  20 20 20 20 e7 20 62 75  |%=10...,    . bu|
00000970  74 25 3d 34 20 74 75 72  6e 25 2d 3d 31 3a e7 20  |t%=4 turn%-=1:. |
00000980  74 75 72 6e 25 3c 31 20  20 74 75 72 6e 25 3d 31  |turn%<1  turn%=1|
00000990  0d 04 92 1e 20 20 20 20  f1 20 8a 33 36 2c 31 31  |....    . .36,11|
000009a0  29 3b c3 28 74 75 72 6e  25 29 3b 22 20 22 0d 04  |);.(turn%);" "..|
000009b0  9c 09 20 20 c9 20 36 0d  04 a6 30 20 20 20 20 e7  |..  . 6...0    .|
000009c0  20 62 75 74 25 3d 31 20  73 70 65 65 64 25 2b 3d  | but%=1 speed%+=|
000009d0  31 3a e7 20 73 70 65 65  64 25 3e 31 30 20 73 70  |1:. speed%>10 sp|
000009e0  65 65 64 25 3d 31 30 0d  04 b0 2f 20 20 20 20 e7  |eed%=10.../    .|
000009f0  20 62 75 74 25 3d 34 20  73 70 65 65 64 25 2d 3d  | but%=4 speed%-=|
00000a00  31 3a e7 20 73 70 65 65  64 25 3c 31 20 20 73 70  |1:. speed%<1  sp|
00000a10  65 65 64 25 3d 31 0d 04  ba 1f 20 20 20 20 f1 20  |eed%=1....    . |
00000a20  8a 33 37 2c 31 32 29 3b  c3 28 73 70 65 65 64 25  |.37,12);.(speed%|
00000a30  29 3b 22 20 22 0d 04 c4  09 20 20 c9 20 37 0d 04  |);" "....  . 7..|
00000a40  ce 13 20 20 20 20 72 65  76 25 3d 31 2d 72 65 76  |..    rev%=1-rev|
00000a50  25 0d 04 d8 26 20 20 20  20 e7 20 72 65 76 25 20  |%...&    . rev% |
00000a60  72 65 76 24 3d 22 6f 6e  20 22 20 8b 20 72 65 76  |rev$="on " . rev|
00000a70  24 3d 22 6f 66 66 22 0d  04 e2 16 20 20 20 20 f1  |$="off"....    .|
00000a80  20 8a 33 39 2c 31 33 29  3b 72 65 76 24 0d 04 ec  | .39,13);rev$...|
00000a90  09 20 20 c9 20 38 0d 04  f6 13 20 20 20 20 61 63  |.  . 8....    ac|
00000aa0  63 25 3d 31 2d 61 63 63  25 0d 05 00 26 20 20 20  |c%=1-acc%...&   |
00000ab0  20 e7 20 61 63 63 25 20  61 63 63 24 3d 22 6f 6e  | . acc% acc$="on|
00000ac0  20 22 20 8b 20 61 63 63  24 3d 22 6f 66 66 22 0d  | " . acc$="off".|
00000ad0  05 0a 16 20 20 20 20 f1  20 8a 33 35 2c 31 34 29  |...    . .35,14)|
00000ae0  3b 61 63 63 24 0d 05 14  09 20 20 c9 20 39 0d 05  |;acc$....  . 9..|
00000af0  1e 0f 20 20 20 20 71 75  69 74 25 3d b9 0d 05 28  |..    quit%=...(|
00000b00  05 cb 0d 05 32 05 e1 0d  05 3c 05 3a 0d 05 46 0a  |....2....<.:..F.|
00000b10  dd 20 f2 77 6e 62 0d 05  50 08 ea 20 61 25 0d 05  |. .wnb..P.. a%..|
00000b20  5a 15 e3 20 61 25 3d 31  20 b8 20 31 30 30 30 30  |Z.. a%=1 . 10000|
00000b30  30 3a ed 0d 05 64 05 e1  0d 05 6e 05 3a 0d 05 78  |0:...d....n.:..x|
00000b40  11 dd 20 f2 73 74 61 72  74 5f 67 61 6d 65 0d 05  |.. .start_game..|
00000b50  82 38 ea 20 74 69 6d 65  25 2c 6c 6f 6f 70 25 2c  |.8. time%,loop%,|
00000b60  70 6f 77 78 25 2c 70 6f  77 79 25 2c 70 6f 77 74  |powx%,powy%,powt|
00000b70  25 2c 70 6f 77 6f 6e 25  2c 70 6f 77 74 69 6d 65  |%,powon%,powtime|
00000b80  25 2c 64 65 63 25 0d 05  8c 07 ea 20 85 0d 05 96  |%,dec%..... ....|
00000b90  1f ee 20 85 20 ea 20 e7  20 9f 3d 31 37 20 f7 20  |.. . . . .=17 . |
00000ba0  85 3a e1 20 8b 20 f2 65  72 72 6f 72 0d 05 a0 05  |.:. . .error....|
00000bb0  db 0d 05 aa 0d f1 20 8a  30 2c 31 32 29 3b 0d 05  |...... .0,12);..|
00000bc0  b4 20 f2 63 65 6e 74 72  65 28 22 47 65 74 20 52  |. .centre("Get R|
00000bd0  65 61 64 79 20 54 6f 20  50 6c 61 79 22 29 0d 05  |eady To Play")..|
00000be0  be 16 e3 20 6c 6f 6f 70  25 3d 33 20 b8 20 31 20  |... loop%=3 . 1 |
00000bf0  88 20 2d 31 0d 05 c8 0f  20 20 f1 20 8a 30 2c 31  |. -1....  . .0,1|
00000c00  33 29 3b 0d 05 d2 15 20  20 f2 63 65 6e 74 72 65  |3);....  .centre|
00000c10  28 c3 6c 6f 6f 70 25 29  0d 05 dc 10 20 20 f2 77  |(.loop%)....  .w|
00000c20  61 69 74 28 31 30 30 29  0d 05 e6 05 ed 0d 05 f0  |ait(100)........|
00000c30  0e f2 69 6e 69 74 5f 67  61 6d 65 0d 05 fa 0e f2  |..init_game.....|
00000c40  70 6c 61 79 5f 67 61 6d  65 0d 06 04 05 e1 0d 06  |play_game.......|
00000c50  0e 05 3a 0d 06 18 11 dd  20 f2 77 61 69 74 28 6c  |..:..... .wait(l|
00000c60  65 6e 25 29 0d 06 22 0e  ea 20 74 69 6d 65 25 2c  |en%)..".. time%,|
00000c70  72 25 0d 06 2c 0b 74 69  6d 65 25 3d 91 0d 06 36  |r%..,.time%=...6|
00000c80  05 f5 0d 06 40 14 fd 20  28 91 2d 74 69 6d 65 25  |....@.. (.-time%|
00000c90  29 3e 6c 65 6e 25 0d 06  4a 05 e1 0d 06 54 05 3a  |)>len%..J....T.:|
00000ca0  0d 06 5e 10 dd 20 f2 69  6e 69 74 5f 67 61 6d 65  |..^.. .init_game|
00000cb0  0d 06 68 0b ea 20 6c 6f  6f 70 25 0d 06 72 0d eb  |..h.. loop%..r..|
00000cc0  20 6d 6f 64 65 25 3a 87  0d 06 7c 17 e7 20 6d 6f  | mode%:...|.. mo|
00000cd0  64 65 25 3d 31 32 20 79  72 25 3d 31 30 32 34 0d  |de%=12 yr%=1024.|
00000ce0  06 86 16 e7 20 6d 6f 64  65 25 3d 32 30 20 79 72  |.... mode%=20 yr|
00000cf0  25 3d 39 35 39 0d 06 90  13 69 74 25 3d b3 28 70  |%=959....it%=.(p|
00000d00  6c 61 79 65 72 73 25 29  0d 06 9a 18 e3 20 6c 6f  |layers%)..... lo|
00000d10  6f 70 25 3d 31 20 b8 20  70 6c 61 79 65 72 73 25  |op%=1 . players%|
00000d20  0d 06 a4 1a 20 20 78 25  28 6c 6f 6f 70 25 29 3d  |....  x%(loop%)=|
00000d30  b3 28 31 31 36 30 29 2b  36 30 0d 06 ae 1d 20 20  |.(1160)+60....  |
00000d40  79 25 28 6c 6f 6f 70 25  29 3d b3 28 79 72 25 2d  |y%(loop%)=.(yr%-|
00000d50  31 32 30 29 2b 36 30 0d  06 b8 16 20 20 61 25 28  |120)+60....  a%(|
00000d60  6c 6f 6f 70 25 29 3d b3  28 33 36 30 29 0d 06 c2  |loop%)=.(360)...|
00000d70  05 ed 0d 06 cc 08 77 25  3d 30 0d 06 d6 14 61 63  |......w%=0....ac|
00000d80  63 65 6c 3d 73 70 65 65  64 25 2f 37 2e 35 0d 06  |cel=speed%/7.5..|
00000d90  e0 19 e7 20 72 65 76 25  20 73 70 65 65 64 25 3d  |... rev% speed%=|
00000da0  2d 73 70 65 65 64 25 0d  06 ea 1b e7 20 72 65 76  |-speed%..... rev|
00000db0  25 20 64 65 63 25 3d 2d  32 20 8b 20 64 65 63 25  |% dec%=-2 . dec%|
00000dc0  3d 32 0d 06 f4 05 e1 0d  06 fe 05 3a 0d 07 08 10  |=2.........:....|
00000dd0  dd 20 f2 70 6c 61 79 5f  67 61 6d 65 0d 07 12 05  |. .play_game....|
00000de0  f5 0d 07 1c 09 20 20 f2  63 62 0d 07 26 0a 20 20  |.....  .cb..&.  |
00000df0  f2 70 70 73 0d 07 30 10  20 20 e7 20 77 25 3d 30  |.pps..0.  . w%=0|
00000e00  20 f2 63 64 0d 07 3a 09  20 20 f2 6d 70 0d 07 44  | .cd..:.  .mp..D|
00000e10  09 20 20 f2 64 62 0d 07  4e 12 20 20 e7 20 77 25  |.  .db..N.  . w%|
00000e20  3e 30 20 77 25 2d 3d 31  0d 07 58 07 fd 20 a3 0d  |>0 w%-=1..X.. ..|
00000e30  07 62 05 e1 0d 07 6c 05  3a 0d 07 76 0a dd 20 f2  |.b....l.:..v.. .|
00000e40  70 70 73 0d 07 80 08 ea  20 70 25 0d 07 8a 09 fb  |pps..... p%.....|
00000e50  20 69 74 25 0d 07 94 21  f1 8a 30 2c 30 29 3b 22  | it%...!..0,0);"|
00000e60  50 6c 61 79 65 72 20 22  3b 69 74 25 3b 22 20 69  |Player ";it%;" i|
00000e70  73 20 69 74 22 0d 07 9e  0c e7 20 77 25 3e 30 20  |s it"..... w%>0 |
00000e80  8c 0d 07 a8 09 20 20 fb  20 37 0d 07 b2 1c 20 20  |.....  . 7....  |
00000e90  f1 22 54 69 6d 65 6f 75  74 20 6c 65 66 74 20 3a  |."Timeout left :|
00000ea0  22 3b a4 74 6f 6c 0d 07  bc 05 cd 0d 07 c6 0c f2  |";.tol..........|
00000eb0  70 70 28 69 74 25 29 0d  07 d0 15 e3 20 70 25 3d  |pp(it%)..... p%=|
00000ec0  31 20 b8 20 70 6c 61 79  65 72 73 25 0d 07 da 10  |1 . players%....|
00000ed0  20 20 e7 20 70 25 3d 69  74 25 20 ed 0d 07 e4 15  |  . p%=it% .....|
00000ee0  20 20 e7 20 70 25 3e 70  6c 61 79 65 72 73 25 20  |  . p%>players% |
00000ef0  e1 0d 07 ee 0d 20 20 f2  70 70 28 70 25 29 0d 07  |.....  .pp(p%)..|
00000f00  f8 05 ed 0d 08 02 05 e1  0d 08 0c 05 3a 0d 08 16  |............:...|
00000f10  0a dd 20 a4 74 6f 6c 0d  08 20 0a ea 20 73 2c 73  |.. .tol.. .. s,s|
00000f20  24 0d 08 2a 0b 73 3d 77  25 2f 35 30 0d 08 34 11  |$..*.s=w%/50..4.|
00000f30  73 3d a8 28 73 2a 31 30  29 2a 30 2e 31 0d 08 3e  |s=.(s*10)*0.1..>|
00000f40  0d 73 24 3d c0 c3 73 2c  33 29 0d 08 48 15 e7 20  |.s$=..s,3)..H.. |
00000f50  73 3d a8 28 73 29 20 73  24 2b 3d 22 2e 30 22 0d  |s=.(s) s$+=".0".|
00000f60  08 52 07 3d 73 24 0d 08  5c 05 3a 0d 08 66 0d dd  |.R.=s$..\.:..f..|
00000f70  20 f2 70 70 28 70 25 29  0d 08 70 17 e7 20 70 25  | .pp(p%)..p.. p%|
00000f80  3d 69 74 25 20 e6 20 37  20 8b 20 e6 20 70 25 0d  |=it% . 7 . . p%.|
00000f90  08 7a 19 c8 8f c8 90 20  78 25 28 70 25 29 2c 79  |.z..... x%(p%),y|
00000fa0  25 28 70 25 29 2c 31 32  0d 08 84 0f e7 20 70 72  |%(p%),12..... pr|
00000fb0  6f 6e 67 73 25 20 8c 0d  08 8e 3f 20 20 86 20 78  |ongs% ....?  . x|
00000fc0  25 28 70 25 29 2c 79 25  28 70 25 29 2c 9b b2 28  |%(p%),y%(p%),..(|
00000fd0  61 25 28 70 25 29 29 2a  35 30 2b 78 25 28 70 25  |a%(p%))*50+x%(p%|
00000fe0  29 2c b5 b2 28 61 25 28  70 25 29 29 2a 35 30 2b  |),..(a%(p%))*50+|
00000ff0  79 25 28 70 25 29 0d 08  98 05 cd 0d 08 a2 05 e1  |y%(p%)..........|
00001000  0d 08 ac 05 3a 0d 08 b6  09 dd 20 f2 63 64 0d 08  |....:..... .cd..|
00001010  c0 12 ea 20 78 25 2c 79  25 2c 70 6f 69 6e 74 25  |... x%,y%,point%|
00001020  0d 08 ca 0f e7 20 70 72  6f 6e 67 73 25 20 8c 0d  |..... prongs% ..|
00001030  08 d4 1f 20 20 78 25 3d  9b b2 28 61 25 28 69 74  |...  x%=..(a%(it|
00001040  25 29 29 2a 35 30 2b 78  25 28 69 74 25 29 0d 08  |%))*50+x%(it%)..|
00001050  de 1f 20 20 79 25 3d b5  b2 28 61 25 28 69 74 25  |..  y%=..(a%(it%|
00001060  29 29 2a 35 30 2b 79 25  28 69 74 25 29 0d 08 e8  |))*50+y%(it%)...|
00001070  05 cc 0d 08 f2 10 20 20  78 25 3d 78 25 28 69 74  |......  x%=x%(it|
00001080  25 29 0d 08 fc 10 20 20  79 25 3d 79 25 28 69 74  |%)....  y%=y%(it|
00001090  25 29 0d 09 06 05 cd 0d  09 10 12 70 6f 69 6e 74  |%).........point|
000010a0  25 3d b0 78 25 2c 79 25  29 0d 09 1a 11 e7 20 70  |%=.x%,y%)..... p|
000010b0  6f 69 6e 74 25 3c 3d 34  20 8c 0d 09 24 20 20 20  |oint%<=4 ...$   |
000010c0  69 74 25 3d 70 6f 69 6e  74 25 3a 77 25 3d 74 69  |it%=point%:w%=ti|
000010d0  6d 65 5f 6f 75 74 25 2a  35 30 0d 09 2e 05 cd 0d  |me_out%*50......|
000010e0  09 38 05 e1 0d 09 42 05  3a 0d 09 4c 09 dd 20 f2  |.8....B.:..L.. .|
000010f0  6d 70 0d 09 56 0e e7 20  61 63 63 25 20 f2 6d 61  |mp..V.. acc% .ma|
00001100  0d 09 60 05 3a 0d 09 6a  17 e7 20 a6 2d 38 33 20  |..`.:..j.. .-83 |
00001110  61 25 28 31 29 2d 3d 74  75 72 6e 25 0d 09 74 17  |a%(1)-=turn%..t.|
00001120  e7 20 a6 2d 39 38 20 61  25 28 31 29 2b 3d 74 75  |. .-98 a%(1)+=tu|
00001130  72 6e 25 0d 09 7e 2b e7  20 a6 2d 36 37 20 f2 66  |rn%..~+. .-67 .f|
00001140  6f 72 77 61 72 64 28 31  29 20 8b 20 e7 20 61 63  |orward(1) . . ac|
00001150  63 25 20 f2 64 65 63 65  6c 65 72 28 31 29 0d 09  |c% .deceler(1)..|
00001160  88 05 3a 0d 09 92 18 e7  20 a6 2d 31 30 35 20 61  |..:..... .-105 a|
00001170  25 28 32 29 2d 3d 74 75  72 6e 25 0d 09 9c 18 e7  |%(2)-=turn%.....|
00001180  20 a6 2d 31 30 33 20 61  25 28 32 29 2b 3d 74 75  | .-103 a%(2)+=tu|
00001190  72 6e 25 0d 09 a6 2c e7  20 a6 2d 31 30 34 20 f2  |rn%...,. .-104 .|
000011a0  66 6f 72 77 61 72 64 28  32 29 20 8b 20 e7 20 61  |forward(2) . . a|
000011b0  63 63 25 20 f2 64 65 63  65 6c 65 72 28 32 29 0d  |cc% .deceler(2).|
000011c0  09 b0 05 3a 0d 09 ba 12  e7 20 70 6c 61 79 65 72  |...:..... player|
000011d0  73 25 3d 32 20 e1 0d 09  c4 18 e7 20 a6 2d 31 30  |s%=2 ...... .-10|
000011e0  39 20 61 25 28 33 29 2d  3d 74 75 72 6e 25 0d 09  |9 a%(3)-=turn%..|
000011f0  ce 18 e7 20 a6 2d 31 30  38 20 61 25 28 33 29 2b  |... .-108 a%(3)+|
00001200  3d 74 75 72 6e 25 0d 09  d8 2c e7 20 a6 2d 31 32  |=turn%...,. .-12|
00001210  35 20 f2 66 6f 72 77 61  72 64 28 33 29 20 8b 20  |5 .forward(3) . |
00001220  e7 20 61 63 63 25 20 f2  64 65 63 65 6c 65 72 28  |. acc% .deceler(|
00001230  33 29 0d 09 e2 05 3a 0d  09 ec 12 e7 20 70 6c 61  |3)....:..... pla|
00001240  79 65 72 73 25 3d 33 20  e1 0d 09 f6 17 e7 20 a6  |yers%=3 ...... .|
00001250  2d 31 32 20 61 25 28 34  29 2d 3d 74 75 72 6e 25  |-12 a%(4)-=turn%|
00001260  0d 0a 00 17 e7 20 a6 2d  31 30 20 61 25 28 34 29  |..... .-10 a%(4)|
00001270  2b 3d 74 75 72 6e 25 0d  0a 0a 2b e7 20 a6 2d 31  |+=turn%...+. .-1|
00001280  31 20 f2 66 6f 72 77 61  72 64 28 34 29 20 8b 20  |1 .forward(4) . |
00001290  e7 20 61 63 63 25 20 f2  64 65 63 65 6c 65 72 28  |. acc% .deceler(|
000012a0  34 29 0d 0a 14 05 e1 0d  0a 1e 05 3a 0d 0a 28 12  |4).........:..(.|
000012b0  dd 20 f2 66 6f 72 77 61  72 64 28 70 25 29 0d 0a  |. .forward(p%)..|
000012c0  32 0e e7 20 ac 20 61 63  63 25 20 8c 0d 0a 3c 1f  |2.. . acc% ...<.|
000012d0  20 20 78 25 28 70 25 29  2b 3d 9b b2 28 61 25 28  |  x%(p%)+=..(a%(|
000012e0  70 25 29 29 2a 73 70 65  65 64 25 0d 0a 46 1f 20  |p%))*speed%..F. |
000012f0  20 79 25 28 70 25 29 2b  3d b5 b2 28 61 25 28 70  | y%(p%)+=..(a%(p|
00001300  25 29 29 2a 73 70 65 65  64 25 0d 0a 50 05 cc 0d  |%))*speed%..P...|
00001310  0a 5a 0e 20 20 e7 20 72  65 76 25 20 8c 0d 0a 64  |.Z.  . rev% ...d|
00001320  14 20 20 20 20 73 28 70  25 29 2d 3d 61 63 63 65  |.    s(p%)-=acce|
00001330  6c 0d 0a 6e 23 20 20 20  20 e7 20 73 28 70 25 29  |l..n#    . s(p%)|
00001340  3c 73 70 65 65 64 25 20  73 28 70 25 29 3d 73 70  |<speed% s(p%)=sp|
00001350  65 65 64 25 0d 0a 78 09  20 20 20 20 cd 0d 0a 82  |eed%..x.    ....|
00001360  07 20 20 cc 0d 0a 8c 14  20 20 20 20 73 28 70 25  |.  .....    s(p%|
00001370  29 2b 3d 61 63 63 65 6c  0d 0a 96 23 20 20 20 20  |)+=accel...#    |
00001380  e7 20 73 28 70 25 29 3e  73 70 65 65 64 25 20 73  |. s(p%)>speed% s|
00001390  28 70 25 29 3d 73 70 65  65 64 25 0d 0a a0 07 20  |(p%)=speed%.... |
000013a0  20 cd 0d 0a aa 05 cd 0d  0a b4 05 e1 0d 0a be 05  | ...............|
000013b0  3a 0d 0a c8 12 dd 20 f2  64 65 63 65 6c 65 72 28  |:..... .deceler(|
000013c0  70 25 29 0d 0a d2 0c e7  20 72 65 76 25 20 8c 0d  |p%)..... rev% ..|
000013d0  0a dc 11 20 20 e7 20 73  28 70 25 29 3c 30 20 8c  |...  . s(p%)<0 .|
000013e0  0d 0a e6 16 20 20 20 20  73 28 70 25 29 2b 3d 61  |....    s(p%)+=a|
000013f0  63 63 65 6c 2f 32 0d 0a  f0 07 20 20 cd 0d 0a fa  |ccel/2....  ....|
00001400  05 cc 0d 0b 04 11 20 20  e7 20 73 28 70 25 29 3e  |......  . s(p%)>|
00001410  30 20 8c 0d 0b 0e 16 20  20 20 20 73 28 70 25 29  |0 .....    s(p%)|
00001420  2d 3d 61 63 63 65 6c 2f  32 0d 0b 18 07 20 20 cd  |-=accel/2....  .|
00001430  0d 0b 22 05 cd 0d 0b 2c  05 e1 0d 0b 36 05 3a 0d  |.."....,....6.:.|
00001440  0b 40 09 dd 20 f2 6d 61  0d 0b 4a 08 ea 20 70 25  |.@.. .ma..J.. p%|
00001450  0d 0b 54 15 e3 20 70 25  3d 31 20 b8 20 70 6c 61  |..T.. p%=1 . pla|
00001460  79 65 72 73 25 0d 0b 5e  1e 20 20 78 25 28 70 25  |yers%..^.  x%(p%|
00001470  29 2b 3d 9b b2 28 61 25  28 70 25 29 29 2a 73 28  |)+=..(a%(p%))*s(|
00001480  70 25 29 0d 0b 68 1e 20  20 79 25 28 70 25 29 2b  |p%)..h.  y%(p%)+|
00001490  3d b5 b2 28 61 25 28 70  25 29 29 2a 73 28 70 25  |=..(a%(p%))*s(p%|
000014a0  29 0d 0b 72 05 ed 0d 0b  7c 05 e1 0d 0b 86 05 3a  |)..r....|......:|
000014b0  0d 0b 90 09 dd 20 f2 64  62 0d 0b 9a 06 c8 96 0d  |..... .db.......|
000014c0  0b a4 13 c8 99 36 2c 31  31 32 2c 73 63 72 65 65  |.....6,112,scree|
000014d0  6e 25 0d 0b ae 17 73 63  72 65 65 6e 25 3d 73 63  |n%....screen%=sc|
000014e0  72 65 65 6e 25 20 82 20  33 0d 0b b8 13 c8 99 36  |reen% . 3......6|
000014f0  2c 31 31 33 2c 73 63 72  65 65 6e 25 0d 0b c2 05  |,113,screen%....|
00001500  db 0d 0b cc 05 e1 0d 0b  d6 05 3a 0d 0b e0 09 dd  |..........:.....|
00001510  20 f2 63 62 0d 0b ea 08  ea 20 70 25 0d 0b f4 15  | .cb..... p%....|
00001520  e3 20 70 25 3d 31 20 b8  20 70 6c 61 79 65 72 73  |. p%=1 . players|
00001530  25 0d 0b fe 1f 20 20 e7  20 78 25 28 70 25 29 3e  |%....  . x%(p%)>|
00001540  31 32 32 30 20 78 25 28  70 25 29 3d 31 32 32 30  |1220 x%(p%)=1220|
00001550  0d 0c 08 1b 20 20 e7 20  78 25 28 70 25 29 3c 36  |....  . x%(p%)<6|
00001560  30 20 78 25 28 70 25 29  3d 36 30 0d 0c 12 23 20  |0 x%(p%)=60...# |
00001570  20 e7 20 79 25 28 70 25  29 3e 79 72 25 2d 36 30  | . y%(p%)>yr%-60|
00001580  20 79 25 28 70 25 29 3d  79 72 25 2d 36 30 0d 0c  | y%(p%)=yr%-60..|
00001590  1c 1b 20 20 e7 20 79 25  28 70 25 29 3c 36 30 20  |..  . y%(p%)<60 |
000015a0  79 25 28 70 25 29 3d 36  30 0d 0c 26 05 ed 0d 0c  |y%(p%)=60..&....|
000015b0  30 05 e1 0d ff                                    |0....|
000015b5