home *** CD-ROM | disk | FTP | other *** search
- REM THIS IS THE PROGRAM "SERCHGME.BAS" AN AERIAL SEARCH FOR A DOWNED A/C
- REM WRITTEN BY MJ.R.A.GREGOIRE, BASED UPON THE PROGRAM "C.A.P.SEARCH" WHICH WAS
- REM WRITTEN BY CAPT. BRUCE BEAM CAP, 1683 COACHLIGHT DR NEW BERLIN,WI 53151
- REM
- INPUT"WOULD YOU LIKE TO HAVE A SEARCH GRID PRINTED?(Y/N)";K$:RANDOMIZE
- IF LEFT$(K$,1)<>"Y" THEN GOTO 15 ELSE LPRINTER REM HARD COPY COMMAND
- FOR I=1 TO 32:FOR J=1 TO 16:K$=STR$(32*(16-J)+I)
- 10 IF LEN(K$)<4 THEN K$=" "+K$:GOTO 10
- PRINT K$;:NEXT J:PRINT:PRINT:NEXT I:PRINT CHR$(12):CONSOLE REM SOFT COPY
- 15 DIM X(36),Y(36),V(3),H(3)
- X0=INT(31*RND)+1:Y0=INT(15*RND)+1:X1=INT(31*RND)+1:Y1=INT(15*RND)
- P1=X0:P2=Y0:P3=X0:P4=Y0:P5=X0:P6=Y0:F1=28:F2=50:K$="A FARMER"
- REM
- REM INITIALIZATION ROUTINE FOLLOWS ********************************************
- REM
- R=RND*INT(.5+SQR((Y1-Y0)*(Y1-Y0)+(X1-X0)*(X1-X0)))
- FOR I=1 TO R REM DESIGNATE LEAD GRIDS
- S=S+INT(SGN(X1-X0)+SGN(.5-RND))
- T=T+INT(SGN(Y1-Y0)+RND*1.99)
- X(I)=X0+S:Y(I)=Y0+T
- IF X(I)<3 OR X(I)>30 OR Y(I)<2 OR Y(I)>13 THEN X2=X(I):Y2=Y(I):GOTO 20
- NEXT I:X2=X(I-1):Y2=Y(I-1) REM X2,Y2 IS X,Y COORD OF TARGET
- 20 PRINT "YOUR MISSION IS TO FIND AN AIRCRAFT THAT"
- PRINT "DEPARTED AN AIRPORT IN ";32*Y0+X0;"FOR ONE IN ";32*Y1+X1
- REM
- REM COMMAND MENUE *************************************************************
- REM
- 100 PRINT:INPUT"COMMAND? 0-MOVE UNITS, 1-ASSIGN UNITS, 2-STATUS, 3-QUIT";M
- IF M=0 THEN L=L+1:GOSUB 400:GOSUB 500:GOSUB 700 REM L IS # OF MOVES
- IF M=1 THEN GOSUB 200
- IF M=2 THEN GOSUB 300
- IF M=3 THEN GOTO 800
- IF K$="A FARMER" THEN GOTO 100 ELSE GOTO 800 REM END OF GAME
- REM
- REM ASSIGN UNITS **************************************************************
- REM
- 200 INPUT "WHICH UNIT? 1-'8633S' 2-'532GF' 3-'LRT'";N
- IF N<1 OR N>3 THEN GOTO 200
- 210 INPUT "TO WHICH GRID IS THAT UNIT ASSIGNED";G
- IF G<1 OR G>512 THEN GOTO 210 ELSE V(N)=INT((G-1)/32):H(N)=G-32*V(N)
- RETURN
- REM
- REM STATUS ROUTINE ************************************************************
- REM
- 300 PRINT "TIME ";INT(L/3);":";(L-3*INT(L/3))*20
- PRINT "UNIT","33S","2GF","LRT"
- PRINT:PRINT "ASSIGNED TO",V(1)*32+H(1),V(2)*32+H(2),V(3)*32+H(3)
- PRINT "NOW IN",P2*32+P1,P4*32+P3,P6*32+P5
- PRINT "FUEL",F1,F2
- RETURN
- REM
- REM 8633S MOVE ROUTINE ********************************************************
- REM
- 400 IF ((P2=V(1) AND P1=H(1)) AND (L<>1)) OR (V(1)=0 AND H(1)=0) THEN GOTO 440
- FOR I=1 TO 2
- IF F1-1>0 THEN F1=F1-1 ELSE PRINT"8633S DOWN FOR GAS IN ";\
- 32*P2+P1:F1=28:GOTO 440
- IF P2<>V(1) THEN P2=P2+SGN(V(1)-P2) REM F1 IS FUEL REMAINING
- IF P1<>H(1) THEN P1=P1+SGN(H(1)-P1)
- IF RND<.07 THEN PRINT "8633S LANDING IN ";32*P2+P1;:GOSUB 600:GOTO 440
- IF X2=P1 AND Y2=P2 AND RND<.7 THEN K$="A/C N8633S":GOTO 440 REM FIND!
- NEXT I REM 8633S MUST BE IN TARGET GRID+RND>70% FOR FIND
- 440 RETURN
- REM
- REM 532GF MOVE ROUTINE*********************************************************
- REM
- 500 IF ((P4=V(2) AND P3=H(2)) AND (L<>1)) OR (V(2)=0 AND H(2)=0) THEN GOTO 580
- FOR I=1 TO 3
- IF F2-1>0 THEN F2=F2-1 ELSE PRINT "532GF DOWN FOR GAS IN ";\
- 32*P4+P3:F2=50:GOTO 580
- IF P4<>V(2) THEN P4=P4+SGN(V(2)-P4) REM F2 IS FUEL REMAINING
- IF P3<>H(2) THEN P3=P3+SGN(H(2)-P3)
- IF RND<.035 THEN PRINT "532GF LANDING IN ";32*P4+P3;:GOSUB 600:GOTO 580
- IF ABS(Y2-P4)<=1 AND ABS(X2-P3)<=1 AND L<12+RND*12 THEN \
- PRINT"ELT HEARD IN ";32*P4+P3
- IF X2=P3 AND Y2=P4 AND RND<.7 THEN K$="A/C N532GF":GOTO 580 REM FIND!
- NEXT I
- 580 RETURN
- REM
- REM HAZARD IDENTIFICATION ROUTINE *********************************************
- REM
- 600 ON .501+2.999*RND GOTO 610,620,630
- 610 PRINT ",PILOT GOT LOST":GOTO 640
- 620 PRINT ",PRECAUTIONARY LANDING DUE TO STORM":GOTO 640
- 630 PRINT ",OBSERVER IS AIRSICK"
- 640 RETURN
- REM
- REM LRT(LAND RANGER TEAM) MOVE ROUTINE ****************************************
- REM
- 700 IF ((P5=H(3) AND P6=V(3)) AND (L<>1)) OR (H(3)=0 AND V(3)=0) THEN GOTO 770
- IF P5<>H(3) THEN P5=P5+SGN(H(3)-P5)
- IF P6<>V(3) THEN P6=P6+SGN(V(3)-P6)
- IF Y2=P6 AND X2=P5 AND RND<.7 THEN K$="THE LRT":GOTO 770 REM FIND!
- FOR I=1 TO R
- IF X(I)<>P5 OR Y(I)<>P6 THEN GOTO 760
- PRINT"LRT HAS A LEAD":PRINT"AN AIRCRAFT WAS SEEN FLYING ";
- IF Y2<P6 THEN PRINT "NORTH"; ELSE PRINT "SOUTH";
- IF X2<P5 THEN PRINT "WEST"; ELSE PRINT "EAST";
- PRINT " IN GRID ";32*P6+P5
- 760 NEXT I
- 770 RETURN
- REM END OF GAME ROUTINE *******************************************************
- 800 PRINT "A/C FOUND IN GRID ";32*Y2+X2;"BY ";K$
- PRINT "TOTAL SEARCH EFFORT WAS ";INT(L/3);"HOURS AND ";(L-3*INT(L/3))*20;"MIN"
- END
- THIS IS THE GAME SERCHGME.BAS. ITS PURPOSE IS TO SIMULATE, USING A COMPUTER
- PROGRAM, THE SEARCH METHODS USED IN ALLOCATING FORCES FOR A DOWNED AIRCRAFT
- SEARCH MISSION. THIS PROGRAM IS FURTHER DESCRIBED IN THE FOLLOWING PARAGRAPHS.
-
- A.OBJECTIVE--TO FIND A MISSING AIRCRAFT
-
- B.RESOURCES--TWO AIRCRAFT AND ONE LRT(LAND RESCUE TEAM). THE AIRCRAFT N532GF IS
- CAPABLE OF HEARING THE ELT IF IT IS WITHIN ONE GRID OF THE TARGET (AND THE ELT
- (EMERGENCY LOCATION TRANSMITTER) IS TURNED ON OF COURSE). AIRCRAFT N8633S CAN
- ONLY BE USED FOR VISUAL SEARCHES. THE LRT CAN FIND LEADS THAT TELL WHICH WAY
- THE MISSING AIRCRAFT WAS SEEN FLYING. NO PHONEY LEADS ARE GIVEN. ALL SEARCH
- UNITS HAVE A 70% CHANCE OF FINDING THE TARGET PROVIDING THAT THEY ARE LOCATED
- IN THE TARGET GRID.
-
- C.PLAYING BOARD--THE PLAYING BOARD CONSISTS OF 512 GRIDS NUMBERED FROM LEFT TO
- RIGHT STARTING FROM UPPER LEFT, WITH 32 ACROSS THE TOP. IF YOU HAVE A PRINTER
- THE PROGRAM WILL TYPE OUT A NUMBERED GRID PLAYING BOARD.
-
- D.ASSIGNMENT--TYPING A '1' WILL ALLOW YOU TO ASSIGN ANY OF THE AIRCRAFT OR THE
- LRT TO A GRID. ONCE A GRID IS ASSIGNED YOU MUST USE THE COMMAND '0' TO GET THE
- UNIT TO MOVE TO THAT GRID AND BEGIN SEARCH OPERATIONS. THERE IS A PENALTY OF
- 20 MINUTES(SIMULATED TIME) FOR EACH MOVE WHETHER OR NOT 1 OR ALL 3 UNITS ARE
- MOVING. THE AIRCRAFT N532GF CAN MOVE 3 GRIDS PER TURN, N8633S MOVES 2 GRIDS
- AND THE LRT WILL MOVE 1 GRID. THEY WILL MOVE THE SHORTEST DISTANCE BY MOVING
- VERTICALLY, HORIZONTALLY ONLY. ONCE IN THE ASSIGNED GRID THEY WILL REMAIN
- THERE UNTIL REASSIGNED.
-
- E.ELT--ONLY THE AIRCRAFT N532GF CAN FIND AN ELT. THE ELT WILL REMAIN ON FOR 4
- HOURS. BETWEEN 4 AND 8 HOURS THE ELT WILL BE RANDOMLY ON AND OFF. THE ELT
- CANNOT BE HEARD AFTER 8 HOURS.
-
- F.LEADS--CERTAIN GRIDS WILL CONTAIN LEADS THAT MAY BE FOUND BY THE LRT. THE
- LRT MUST MOVE INTO THESE GRIDS IN ORDER TO DISCOVER THESE LEADS.
-
- G.HAZARDS--BOTH AIRCRAFT HAVE A SMALL CHANCE OF HAVING THE PILOT GET LOST,
- OBSERVER GET AIRSICK OR OF FLYING INTO A STORM. IF THIS HAPPENS THE AIRCRAFT
- WILL IMMEDIATELY LAND AND NOTIFY YOU OF THE SITUATION. ALSO WHEN THE AIRCRAFT
- RUNS OUT OF GAS IT WILL LAND IN THE NEAREST GRID.
-
- H.STATUS BOARDS--TYPING A '2' WILL SHOW THE MISSION TIME, CURRENT LOCATION OF
- ALL UNITS, CURRENT ASSIGNMENT OF UNITS AND THE FUEL SITUATION. THERE IS NO
- PENALTY FOR CHECKING STATUS.
-
- I MOVE--TYPING A '0' WILL CAUSE THE UNITS TO MOVE TO THEIR ASSIGNED GRIDS,
- ADVANCE THE CLOCK AND FIND ANY LEADS, ELT REPORTS OR HAZARDS. AFTER THEY ARE
- ASSIGNED, THE UNITS MOVE DIAGONALLY TO THE NEAREST ROW OR COLUMN WHICH CONTAINS
- THEIR ASSIGNED GRID, AND THEN THEY MOVE ACROSS THE ROW OR UP/DOWN THE COLUMN
- UNTIL THEIR ASSIGNED GRID IS REACHED. IF IT IS NOT POSSIBLE TO REACH THE
- ASSIGNED GRID IN ONE TURN, DUE TO MOVEMENT LIMITATIONS OF THE UNITS, THE UNITS
- WILL CONTINUE THEIR JOURNEY,UNLESS REASSIGNED TO A NEW GRID, UPON THE NEXT
- MOVEMENT COMMAND (COMMAND '0'). EVERY GRID THAT THE UNIT PASSES THROUGH IS
- VISUALLY AND ELECTRONICALLY (N532GF ONLY) SEARCHED.
-
- J.CONCLUSION--WHEN A SEARCH UNIT HAS FOUND THE TARGET YOUWILL BE NOTIFIED. IF
- YOU GIVE UP, TYPING A '3' WILL CONCLUDE THE GAME.
-
- K.GENERAL NOTES--THE MISSING AIRCRAFT WILL ALWAYS BE ON THE PLAYING BOARD.
- AND IT WILL BE IN THE QUADRANT FROM THE DEPARTURE AIRPORT THAT THE DESTINATION
- AIRPORT IS IN. THERE IS A 45 DEGREE AMBIGUITY IN THE DIRECTIONS GIVEN IN THE
- LEADS. FOR INSTANCE A LEAD THAT SAYS THAT THE AIRCRAFT WAS SEEN FLYING
- NORTHEAST MAY VERY WELL BE REFERING TO AN AIRCRAFT THAT WAS ACTUALLY FLYING
- DIRECTLY NORTH OR DIRECTLY EAST.
-
- PROGRAM NOTES--THIS PROGRAM WAS ORIGINALLY WRITTEN BY CAPTAIN BRUCE BEAM CAP
- (WISCONSIN WING). IT HAS BEEN SOMEWHAT REWRITTEN AND REFORMATTED FOR THE
- PROGRAM LANGUAGE CBASIC AND BASIC-E BY MAJOR BOB GREGOIRE (GROUP 30 PA WING)
-