1  REM  ****  HP BASIC PROGRAM LIBRARY  ******************************
2  REM
3  REM        CHASE:  PURSUIT OF A TARGET
4  REM
5  REM        36683 REV A -- 10/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ****************************************
10  PRINT 
20  PRINT "***********************"
30  PRINT "* PURSUIT OF A TARGET *"
40  PRINT "***********************"
50  PRINT 
60  PRINT "PROGRAM  --  CHASE"
70  PRINT 
80  DIM N$[72]
90  PRINT "DO YOU WISH INSTRUCTIONS";
100  INPUT N$
110  IF N$#"YES" THEN 310
120  PRINT "THE OBJECT OF THE GAME IS TO TRACK DOWN AND INTERCEPT"
130  PRINT "A RANDOMLY MOVING TARGED (LIKE A RABBIT HUNT)"
140  PRINT 
150  PRINT "FIRST YOU MUST CHOOSE A LEVEL OF DIFFICULTY ( 0-9 )"
160  PRINT "YOU SHOULD PROBABLY START WITH 9 AND INCREASE THE DIFFICULTY"
170  PRINT "AS YOU GET MORE PROFICIENT"
180  PRINT 
190  PRINT "AT EACH ITERATION THE COMPUTER WILL GIVE YOU INFORMATION"
200  PRINT "CONCERNING THE POSITION AND DIRECTION (WITH RESPECT TO"
210  PRINT "THE ORIGIN) OF THE TARGET.  YOU MUST TELL THE COMPUTER"
220  PRINT "WHICH DIRECTION FOR YOU TO MOVE"
230  PRINT 
240  PRINT "ASSUME A STANDARD CARTESIAN COORDINATE SYSTEM ( X-Y )"
250  PRINT "AND STANDARD ANGLES MEASURED IN DEGREES ( X-AXIS IS 0 ) IN"
260  PRINT "A COUNTER-CLOCKWISE MANNER"
270  PRINT 
280  PRINT 
290  PRINT "GOOD LUCK !!!!!"
300  PRINT 
310  PRINT 
320  PRINT "HERE WE GO"
330  PRINT 
340  LET T9=0
350  PRINT 
360  PRINT "LEVEL OF DIFFICULTY";
370  INPUT T
380  IF T<0 OR T>9 OR T#INT(T) THEN 360
390  LET T=5+T*5
400  PRINT "YOU MUST COME WITHIN  ";T;"UNITS OF THE TARGET TO SCORE A HIT"
410  LET T=T*T
420  PRINT 
430  LET V1=INT(RND(0)*10+.5)*10+50
440  LET V2=(INT(RND(0)*2+.5)+1)*V1
450  LET X1=(INT(RND(0)*400)+100)*SGN(RND(0)-.5)
460  LET Y1=(INT(RND(0)*400)+100)*SGN(RND(0)-.5)
470  LET X2=0
480  IF Y1=0 OR X1=0 THEN 450
490  LET Y2=0
500  PRINT "INITIAL TARGET VELOCITY",V1
510  PRINT "YOUR INITIAL VELOCITY",V2
520  PRINT 
530  PRINT 
540  PRINT 
550  LET C=(X2-X1)^2+(Y2-Y1)^2
560  LET D1=INT(RND(0)*359)
570  PRINT "T =";T9,
580  PRINT "CLOSEST APP.",INT(SQR(C)+.5),
590  PRINT "DIST. TO TAR.",INT(SQR((X2-X1)^2+(Y2-Y1)^2)+.5)
600  PRINT "TAR. POS.",INT(X1+.5),INT(Y1+.5),"TAR. DIR.",D1
610  PRINT "YOUR POS.",INT(X2+.5),INT(Y2+.5),"YOUR DIR.",
620  INPUT D2
630  IF D2<0 OR D2>359 THEN 880
640  PRINT 
650  PRINT 
660  LET S1=V1*COS(D1*3.14159/180)/100
670  LET M1=V1*SIN(D1*3.14159/180)/100
680  LET S2=V2*COS(D2*3.14159/180)/100
690  LET M2=V2*SIN(D2*3.14159/180)/100
700  LET C=1.E+38
710  FOR I=1 TO 100
720  LET X1=X1+S1
730  LET Y1=Y1+M1
740  LET X2=X2+S2
750  LET Y2=Y2+M2
760  LET C1=(X2-X1)^2+(Y2-Y1)^2
770  IF C1<T THEN 830
780  IF C<C1 THEN 800
790  LET C=C1
800  NEXT I
810  LET T9=T9+1
820  GOTO 560
830  PRINT 
840  PRINT 
850  PRINT "*******"
860  PRINT "* POW *"
870  PRINT "*******"
880  PRINT 
890  PRINT 
900  PRINT 
910  PRINT "DO YOU WISH ANOTHER GO AT IT";
920  INPUT N$
930  IF N$="YES" THEN 950
940  STOP 
950  PRINT "AGAIN  --  ";
960  GOTO 320
970  END 
