Add files via upload
This commit is contained in:
parent
3675cbfd7a
commit
32ed2ddeb6
@ -46,7 +46,7 @@ C--------IF THERE IS AT LEAST ONE BASE LEFT, YOU GET THE FAERIE QUEENE
|
||||
CALL PROUT(42HTHE FAERIE QUEENE, WHICH IS ANTIQUATED BUT,42)
|
||||
CALL PROUT(14HSTILL USEABLE.,14)
|
||||
C--------SELECT BASE AT WHICH TO BEGIN AGAIN
|
||||
NB=RANF(0)*REMBASE+1
|
||||
NB=RAND()*REMBASE+1
|
||||
C--------RESET FLAGS.
|
||||
ICRYSTL=0
|
||||
IMINE=0
|
||||
@ -59,9 +59,9 @@ C--------SET UP QUADRANT AND POSITION F. Q. ADJACENT TO BASE
|
||||
CALL NEWQUAD
|
||||
QUAD(SECTX,SECTY)=IHDOT
|
||||
DO 50 L=1,3
|
||||
SECTX=3.0*RANF(0)-1.0+BASEX
|
||||
SECTX=3.0*RAND()-1.0+BASEX
|
||||
IF(SECTX .LT. 1 .OR. SECTX .GT. 10) GO TO 50
|
||||
SECTY=3.0*RANF(0)-1.0+BASEY
|
||||
SECTY=3.0*RAND()-1.0+BASEY
|
||||
IF(SECTY .LT. 1 .OR. SECTY .GT. 10) GO TO 50
|
||||
IF(QUAD(SECTX,SECTY) .EQ. IHDOT) GO TO 60
|
||||
50 CONTINUE
|
||||
@ -130,7 +130,7 @@ C--------IF KPOWER IS LT ZERO THEN ENEMY CAN'T ATTACK.
|
||||
6 IF(KPOWER(L) .LT. 0)GO TO 5
|
||||
ATTCKD=1
|
||||
C--------COMPUTE HIT STRENGTH AND DIMINISH SHIELD POWER
|
||||
DUSTFAC=0.80+0.05*RANF(0)
|
||||
DUSTFAC=0.80+0.05*RAND()
|
||||
HIT=KPOWER(L)*DUSTFAC**KDIST(L)
|
||||
II=KX(L)
|
||||
JJ=KY(L)
|
||||
@ -138,7 +138,7 @@ C--------COMPUTE HIT STRENGTH AND DIMINISH SHIELD POWER
|
||||
C--------DECIDE IF ENEMY SHOULD FIRE PHOTON TORPEDO
|
||||
IF(HIT .GT. 400.0 .OR. JUSTIN .EQ. 1) GO TO 10
|
||||
IF(HIT .GT. 300.0 .AND. KDIST(L) .GT. 5.0) GO TO 10
|
||||
IF(IQUAD .EQ. IHK .AND. RANF(0) .GT. 0.10) GO TO 10
|
||||
IF(IQUAD .EQ. IHK .AND. RAND() .GT. 0.10) GO TO 10
|
||||
C--------ENEMY FIRES PHOTON TORPEDO.
|
||||
IPHWHO=1
|
||||
CALL KPHOTON
|
||||
@ -211,7 +211,7 @@ C--------CHECK TO SEE IF CAPTAIN ON A PLANET
|
||||
CALL PROUT(38HBUT WITH THE SHIELDS UP IT'S HOPELESS.,8)
|
||||
GO TO 25
|
||||
20 CALL CRAM(42HHIS DESPERATE ATTEMPT TO RESCUE YOU . . . ,42)
|
||||
IF(RANF(0) .GT. 0.5) GO TO 30
|
||||
IF(RAND() .GT. 0.5) GO TO 30
|
||||
CALL CRAMDMP(6HFAILS. ,6)
|
||||
25 CALL FINISH(II)
|
||||
RETURN
|
||||
@ -219,7 +219,7 @@ C--------CHECK TO SEE IF CAPTAIN ON A PLANET
|
||||
IF(IMINE .EQ. 0) GO TO 45
|
||||
IMINE=0
|
||||
CALL CRAM(24HTHE CRYSTALS MINED WERE ,24)
|
||||
IF(RANF(0) .GT. 0.25) GO TO 40
|
||||
IF(RAND() .GT. 0.25) GO TO 40
|
||||
CALL CRAMDMP(5HLOST.,5)
|
||||
GO TO 45
|
||||
40 CALL CRAMDMP(6HSAVED.,6)
|
||||
@ -248,17 +248,17 @@ C--------TRY TO USE WARP ENGINES
|
||||
CALL PROUT(21HWARP ENGINES DAMAGED.,21)
|
||||
CALL FINISH(8)
|
||||
RETURN
|
||||
100 WARPFAC=6.0+2.0*RANF(0)
|
||||
100 WARPFAC=6.0+2.0*RAND()
|
||||
WFACSQ=WARPFAC*WARPFAC
|
||||
CALL CRAM(19HWARP FACTOR SET TO ,19)
|
||||
CALL CRAMF(WARPFAC,0,1)
|
||||
CALL CREND
|
||||
POWER=0.75*ENERGY
|
||||
DISTMAX=POWER/(WARPFAC*WARPFAC*WARPFAC*(SHLDUP+1))
|
||||
DISTREQ=1.4142+2.0*RANF(0)
|
||||
DISTREQ=1.4142+2.0*RAND()
|
||||
DIST=AMIN1(DISTMAX,DISTREQ)
|
||||
TIME=10.0*DIST/WFACSQ
|
||||
DIREC=12.0*RANF(0)
|
||||
DIREC=12.0*RAND()
|
||||
JUSTIN=0
|
||||
INORBIT=0
|
||||
CALL WARPX
|
||||
@ -352,6 +352,7 @@ C COMMON/SCANBF/KEY,AITEM
|
||||
REAL*8 AITEM,REGULAR,TOURNAMENT,FROZN,SHORT,MEDIUM,LONG
|
||||
1 ,NOVICE,FAIR,GOOD,EMERITUS,EXPERT,RHBLANK
|
||||
EQUIVALENCE (AITEM,TNUMBER)
|
||||
EQUIVALENCE (AITEM,ISEED)
|
||||
DATA REGULAR,TOURNAMENT,FROZN/7HREGULAR,8HTOURNAME,6HFROZEN/
|
||||
DATA SHORT,MEDIUM,LONG/5HSHORT,6HMEDIUM,4HLONG/
|
||||
DATA NOVICE,FAIR,GOOD,EXPERT/6HNOVICE,4HFAIR,4HGOOD,6HEXPERT/
|
||||
@ -362,6 +363,7 @@ C COMMON/SCANBF/KEY,AITEM
|
||||
GAMEWON=0
|
||||
C CALL SYS$GETTIM(ISEED)
|
||||
C CALL RANSET(ISEED(1))
|
||||
CALL RANSET(0)
|
||||
IPHWHO=0
|
||||
5 FROZEN = .FALSE.
|
||||
C--------ASK FOR PARAMETERS OF GAME, PREFERABLY ALL ON ONE LINE
|
||||
@ -444,16 +446,16 @@ C--------READ IN SECRET PASSWORD
|
||||
40 CONTINUE
|
||||
C--------USE PARAMETERS TO GENERATE INITIAL VALUES OF THINGS
|
||||
DAMFAC=0.50*SKILL
|
||||
REMBASE=3.0*RANF(0)+2.0
|
||||
INPLAN=5. +6.*RANF(0)
|
||||
NROMREM=(2.+RANF(0))*SKILL
|
||||
REMBASE=3.0*RAND()+2.0
|
||||
INPLAN=5. +6.*RAND()
|
||||
NROMREM=(2.+RAND())*SKILL
|
||||
NSCREM=SKILL/3
|
||||
REMTIME=7.0*LENGTH
|
||||
INTIME=REMTIME
|
||||
RATE=(SKILL-2.0*RANF(0)+1.0)*SKILL*0.1 + 0.15
|
||||
RATE=(SKILL-2.0*RAND()+1.0)*SKILL*0.1 + 0.15
|
||||
REMKL=2.0*RATE*INTIME
|
||||
INKLING=REMKL
|
||||
INCOM=SKILL+0.0625*INKLING*RANF(0)
|
||||
INCOM=SKILL+0.0625*INKLING*RAND()
|
||||
INCOM=MIN0(10,INCOM)
|
||||
REMCOM=INCOM
|
||||
REMRES=(INKLING+4* INCOM )*INTIME
|
||||
@ -464,6 +466,9 @@ C--------USE PARAMETERS TO GENERATE INITIAL VALUES OF THINGS
|
||||
C--------PROCESS A TOURNAMENT REQUEST
|
||||
100 CALL SCAN
|
||||
C CALL RANSET(ABS(TNUMBER))
|
||||
IF (KEY.EQ.IHREAL) ISEED(1)=ABS(TNUMBER)
|
||||
IF (KEY.EQ.IHALPHA) ISEED(1)=ABS(ISEED(1))
|
||||
CALL RANSET(ISEED(1))
|
||||
THINGX=-1
|
||||
C--------GO BACK FOR ANYTHING LEFT OUT
|
||||
IF (KEY.NE.IHEOL) GO TO 9
|
||||
@ -803,7 +808,7 @@ C*
|
||||
C*
|
||||
ENTRY CASULTY
|
||||
C*
|
||||
ICAS=HIT*RANF(0)*0.015
|
||||
ICAS=HIT*RAND()*0.015
|
||||
IF(ICAS .LT. 2) RETURN
|
||||
CASUAL=CASUAL+ICAS
|
||||
CALL CRAM(42HMC COY: "SICKBAY TO BRIDGE. WE JUST HAD ,42)
|
||||
@ -1103,7 +1108,7 @@ C COMMON/SCANBF/KEY,AITEM
|
||||
CALL PROUT(17H 3,17)
|
||||
CALL PROUT(20H 2,20)
|
||||
CALL PROUT(23H 1,23)
|
||||
IF(RANF(0) .LT. 0.05) CALL PROUT(19HGOODBYE-CRUEL-WORLD,19)
|
||||
IF(RAND() .LT. 0.05) CALL PROUT(19HGOODBYE-CRUEL-WORLD,19)
|
||||
CALL SKIP(2)
|
||||
C*
|
||||
ENTRY KABOOM
|
||||
@ -1402,7 +1407,7 @@ C--------EXTRANEOUS EVENT 2: TRACTOR BEAM
|
||||
200 IF(REMCOM .EQ. 0) GO TO 220
|
||||
IF(ISTRACT.NE.0) GO TO 210
|
||||
IF(CONDIT .EQ. IHDOCKD ) GO TO 210
|
||||
I=RANF(0)*REMCOM+1.0
|
||||
I=RAND()*REMCOM+1.0
|
||||
YANK=(CX(I)-QUADX)**2 + (CY(I)-QUADY)**2
|
||||
IF(YANK .EQ. 0 .AND. JUSTIN .EQ. 0) GO TO 210
|
||||
IF(ISTRACT .EQ. 0) GO TO 201
|
||||
@ -1481,7 +1486,7 @@ C--------LOOK FOR A COMMANDER IN SAME QUADRANT AS A STARBASE
|
||||
C--------COMMANDER+STARBASE COMBINATION FOUND--LAUNCH ATTACK
|
||||
430 BATX=BASEQX(J)
|
||||
BATY=BASEQY(J)
|
||||
FUTURE(5)=DATE+1.0+3.0*RANF(0)
|
||||
FUTURE(5)=DATE+1.0+3.0*RAND()
|
||||
IF(ISATB.NE.0) FUTURE(5)=FUTURE(5)+FUTURE(7)-DATE
|
||||
FUTURE(4)=FUTURE(5)+EXPRAN(0.3*INTIME)
|
||||
ITYPE=IHC
|
||||
@ -1568,7 +1573,7 @@ C--------CHECK WITH SPY TO SEE IF S.C. SHOULD TRACTOR BEAM.
|
||||
+ 0.))) GO TO 5100
|
||||
RETURN
|
||||
C--------TRACTOR-BEAM HER!
|
||||
5100 IF(RANF(0).GT..65) RETURN
|
||||
5100 IF(RAND().GT..65) RETURN
|
||||
ISTRACT=1
|
||||
GO TO 20010
|
||||
END
|
||||
@ -1578,7 +1583,7 @@ DELETE F7:TREXPRA
|
||||
EDIT
|
||||
BUILD F7:TREXPRA
|
||||
FUNCTION EXPRAN(AVERAGE)
|
||||
EXPRAN=-AVERAGE*ALOG(RANF(0))
|
||||
EXPRAN=-AVERAGE*ALOG(RAND())
|
||||
RETURN
|
||||
END
|
||||
|
||||
@ -1818,12 +1823,12 @@ C--------DECIDE FINAL OUTCOME OF GAME AFTER YOUR DEATH
|
||||
GOODIES=REMRES/INRESOR
|
||||
BADDIES=(REMKL+2.0*REMCOM)/(INKLING+2.0*INCOM)
|
||||
ADVANTG=GOODIES/BADDIES
|
||||
IF(ADVANTG .LT. (1.0+0.5*RANF(0))) GO TO 5020
|
||||
IF(ADVANTG .LT. (1.0+0.5*RAND())) GO TO 5020
|
||||
CALL PROUT(
|
||||
+ 54HAS A RESULT OF YOUR ACTIONS, A TREATY WITH THE KLINGON,54)
|
||||
CALL PROUT(
|
||||
+ 52HEMPIRE HAS BEEN SIGNED. THE TERMS OF THE TREATY ARE,52)
|
||||
IF(ADVANTG .LT. (3.0+RANF(0))) GO TO 5010
|
||||
IF(ADVANTG .LT. (3.0+RAND())) GO TO 5010
|
||||
CALL PROUT(
|
||||
+ 28HFAVORABLE TO THE FEDERATION.,28)
|
||||
CALL SKIP(1)
|
||||
@ -2172,7 +2177,7 @@ C--------GIVE STARBASE THREE CHANCES TO REMATERIALIZE STARSHIP
|
||||
CALL CRAM(26HATTEMPT TO RE-MATERIALIZE ,26)
|
||||
CALL CRAMSHP
|
||||
CALL CRAM(11H . . . . . ,11)
|
||||
IF(RANF(0) .GT. PROBF) GO TO 90
|
||||
IF(RAND() .GT. PROBF) GO TO 90
|
||||
70 CALL CRAMDMP(6HFAILS.,6)
|
||||
80 CONTINUE
|
||||
C--------ONE, TWO, THREE STRIKES YOU'RE OUT
|
||||
@ -2180,9 +2185,9 @@ C--------ONE, TWO, THREE STRIKES YOU'RE OUT
|
||||
RETURN
|
||||
C--------REMATERIALIZATION ATTEMPT SHOULD SUCCEED, IF CAN GET ADJ TO BASE
|
||||
90 DO 100 LL=1,5
|
||||
IX=BASEX+IFIX(3.0*RANF(0))-1
|
||||
IX=BASEX+IFIX(3.0*RAND())-1
|
||||
IF(IX.EQ.0 .OR. IX.EQ.11) GO TO 100
|
||||
IY=BASEY+IFIX(3.0*RANF(0))-1
|
||||
IY=BASEY+IFIX(3.0*RAND())-1
|
||||
IF(IY.EQ.0 .OR. IY.EQ.11) GO TO 100
|
||||
IF(QUAD(IX,IY) .EQ. IHDOT) GO TO 110
|
||||
100 CONTINUE
|
||||
@ -2217,7 +2222,7 @@ C LOGICAL*1 IENM
|
||||
DO 40 K=1,NENHER2
|
||||
WHAM=HITS(K)
|
||||
IF(WHAM .EQ. 0) GO TO 30
|
||||
DUSTFAC=0.90+0.01*RANF(0)
|
||||
DUSTFAC=0.90+0.01*RAND()
|
||||
HIT=WHAM*DUSTFAC**KDIST(KK)
|
||||
KP=KPOWER(KK)
|
||||
KPOWER(KK)=KP-SIGN(AMIN1(ABS(KP),PHASFAC*HIT),KP)
|
||||
@ -2240,8 +2245,8 @@ C CALL CRAMENA(IENM,2,II,JJ)
|
||||
GO TO 40
|
||||
C--------- DECIDE WHETHER OR NOT TO EMASCULATE KLINGON.
|
||||
25 IF(KPOW .LT. 0) GO TO 30
|
||||
IF(RANF(0.) .LT. .90)GO TO 30
|
||||
IF(KPOW .GT. ((.40 + .4*RANF(0.))*KP))GO TO 30
|
||||
IF(RAND() .LT. .90)GO TO 30
|
||||
IF(KPOW .GT. ((.40 + .4*RAND())*KP))GO TO 30
|
||||
CALL CRAM(38H***MR. SPOCK: "CAPTAIN, THE VESSEL AT,38)
|
||||
CALL CRAMLOC(2,II,JJ)
|
||||
CALL CREND
|
||||
@ -2313,14 +2318,14 @@ DELETE F7:TRIRAN8
|
||||
EDIT
|
||||
BUILD F7:TRIRAN8
|
||||
SUBROUTINE IRAN8(II,JJ)
|
||||
II=RANF(0)*8.+1.
|
||||
JJ=RANF(0)*8.+1.
|
||||
II=RAND()*8.+1.
|
||||
JJ=RAND()*8.+1.
|
||||
RETURN
|
||||
C*
|
||||
ENTRY IRAN10(II,JJ)
|
||||
C*
|
||||
II=RANF(0)*10.+1.
|
||||
JJ=RANF(0)*10.+1.
|
||||
II=RAND()*10.+1.
|
||||
JJ=RAND()*10.+1.
|
||||
RETURN
|
||||
END
|
||||
|
||||
@ -2484,13 +2489,13 @@ C--------OBJECT IS A BLACK HOLE. SWALLOW SHIP.
|
||||
CALL CRAM(26H PULLED INTO BLACK HOLE AT,26)
|
||||
CALL CRAMLOC(2,IX,IY)
|
||||
CALL CREND
|
||||
IF(RANF(0).GT.0.50) GO TO 27
|
||||
IF(RAND().GT.0.50) GO TO 27
|
||||
CALL IRAN8(QUADX,QUADY)
|
||||
CALL IRAN10(SECTX,SECTY)
|
||||
CALL PROUT(
|
||||
$55HSPOCK: "CAPTAIN, INSTRUMENTS INDICATE WE HAVE UNDERGONE ,55)
|
||||
CALL CRAM(15H A SPACE ,15)
|
||||
XTIMEW=RANF(0)
|
||||
XTIMEW=RAND()
|
||||
IF(XTIMEW.GT.0.65) CALL CRAM(5H-TIME ,5)
|
||||
CALL CRAMDMP(14H PHASE SHIFT." ,14)
|
||||
IF(XTIMEW.GT.0.65) CALL TIMEWRP
|
||||
@ -2622,9 +2627,9 @@ C AND BY HOW MUCH
|
||||
FORCES=FORCES+300.
|
||||
6 FORCES=FORCES-50.*TORPS*TFAC+0.2*(2500.-ENERGY)*EFAC
|
||||
C +0.6*(1250.-SHLD)*SHLDUP
|
||||
7 IF(FORCES .GT. 1000.0) MOTION=(1.-RANF(0)**2)*DIST1+1.0
|
||||
IF(CONDIT .EQ. IHDOCKD ) MOTION=MOTION-SKILL*(2.-RANF(0)**2)
|
||||
IF(MOTION .EQ. 0) MOTION=((FORCES+200.0*RANF(0))/150.0)-5.0
|
||||
7 IF(FORCES .GT. 1000.0) MOTION=(1.-RAND()**2)*DIST1+1.0
|
||||
IF(CONDIT .EQ. IHDOCKD ) MOTION=MOTION-SKILL*(2.-RAND()**2)
|
||||
IF(MOTION .EQ. 0) MOTION=((FORCES+200.0*RAND())/150.0)-5.0
|
||||
IF(MOTION .EQ. 0) GO TO 500
|
||||
IF(IABS(MOTION) .GT. SKILL) MOTION=ISIGN(SKILL,MOTION)
|
||||
C--------CALCULATE PREFERRED NUMBER OF STEPS TO MOVE COMMANDER
|
||||
@ -2883,12 +2888,12 @@ C--------EMPTY QUADRANT AND POSITION STARSHIP
|
||||
DO 15 J=1,10
|
||||
15 QUAD(I,J)=IHDOT
|
||||
QUAD(SECTX,SECTY)=ISHIP
|
||||
C-----------DECIDE IF THIS QUADRENT NEEDS A THOLIAN.....
|
||||
C IF((RANF(0).GT.0.08).AND.(PASSWD.NE.8HTHOLIANX)) GO TO 23
|
||||
IF((RANF(0).GT.0.08).AND.(PASSWD.NE.THOLIANX)) GO TO 23
|
||||
C-----------DECIDE IF THIS QUADRANT NEEDS A THOLIAN.....
|
||||
C IF((RAND().GT.0.08).AND.(PASSWD.NE.8HTHOLIANX)) GO TO 23
|
||||
IF((RAND().GT.0.08).AND.(PASSWD.NE.THOLIANX)) GO TO 23
|
||||
C--------DECIDE POSITION FOR THOLIAN......
|
||||
17 ITHX=INT(RANF(0)+0.5)*9+1
|
||||
ITHY=INT(RANF(0)+0.5)*9+1
|
||||
17 ITHX=INT(RAND()+0.5)*9+1
|
||||
ITHY=INT(RAND()+0.5)*9+1
|
||||
IF(QUAD(ITHX,ITHY).NE.IHDOT) GO TO 17
|
||||
QUAD(ITHX,ITHY)=IHT
|
||||
ITHERE=1
|
||||
@ -2905,7 +2910,7 @@ C--------POSITION ORDINARY KLINGON VESSELS
|
||||
CALL DROPIN(IHK,IX,IY)
|
||||
KX(I)=IX
|
||||
KY(I)=IY
|
||||
25 KPOWER(I)=RANF(0)*150.0+300.+25.*SKILL
|
||||
25 KPOWER(I)=RAND()*150.0+300.+25.*SKILL
|
||||
C--------IF THIS QUADRANT NEEDS A COMMANDER, PROMOTE ONE KLINGON
|
||||
IF(REMCOM .EQ. 0) GO TO 32
|
||||
DO 30 I=1,REMCOM
|
||||
@ -2913,7 +2918,7 @@ C--------IF THIS QUADRANT NEEDS A COMMANDER, PROMOTE ONE KLINGON
|
||||
30 CONTINUE
|
||||
GO TO 32
|
||||
31 QUAD(IX,IY)=IHC
|
||||
KPOWER(KLHERE)=950.0+400.0*RANF(0)+50.*SKILL
|
||||
KPOWER(KLHERE)=950.0+400.0*RAND()+50.*SKILL
|
||||
COMHERE=1
|
||||
COMX=IX
|
||||
COMY=IY
|
||||
@ -2925,7 +2930,7 @@ C--------IF THIS QUADRANT NEEDS A SUPER-COMMANDER, PROMOTE ONE KLINGON.
|
||||
IX=KX(I)
|
||||
IY=KY(I)
|
||||
33 QUAD(IX,IY) = IHS
|
||||
KPOWER(I)=1175.0+400.0*RANF(0)+125.0*SKILL
|
||||
KPOWER(I)=1175.0+400.0*RAND()+125.0*SKILL
|
||||
ISCATE=1
|
||||
ISHERE=1
|
||||
C--------PUT IN ROMULANS IF NEEDED.
|
||||
@ -2935,7 +2940,7 @@ C--------PUT IN ROMULANS IF NEEDED.
|
||||
CALL DROPIN(IHR,IX,IY)
|
||||
KX(I)=IX
|
||||
KY(I)=IY
|
||||
36 KPOWER(I)=450.+400.*RANF(0)+50.*SKILL
|
||||
36 KPOWER(I)=450.+400.*RAND()+50.*SKILL
|
||||
37 CALL RESETD
|
||||
CALL SORTKL
|
||||
C--------IF QUADRANT CONTAINS A STARBASE, CHOOSE ITS POSITION
|
||||
@ -2981,8 +2986,8 @@ C--------PUT IN "THING" IF NEEDED
|
||||
+ 43H PLEASE EXAMINE YOUR SHORT-RANGE SCAN.",43)
|
||||
C--------DROP IN A FEW BLACK HOLES
|
||||
67 DO 68 I=1,3
|
||||
C68 IF(RANF(0) .GT. 0.89) CALL DROPIN('@',IX,IY)
|
||||
68 IF(RANF(0) .GT. 0.89) CALL DROPIN(IHAT,IX,IY)
|
||||
C68 IF(RAND() .GT. 0.89) CALL DROPIN('@',IX,IY)
|
||||
68 IF(RAND() .GT. 0.89) CALL DROPIN(IHAT,IX,IY)
|
||||
C----------IF THOLIAN HERE, TAKE THE X OUT OF EACH CORNER.
|
||||
IF(ITHERE.EQ.0) RETURN
|
||||
IF(QUAD(1,1).EQ.1HX) QUAD(1,1)=IHDOT
|
||||
@ -3014,7 +3019,7 @@ C LOGICAL*1 IQUAD,IQUAD1,ISHIP
|
||||
EQUIVALENCE (CRACKS(1),HIT),(CRACKS(4),KSHOT),(SHIP,ISHIP)
|
||||
DATA COURSE/ 10.5, 12.0, 1.5, 9.0, 0.0, 3.0, 7.5, 6.0, 4.5 /
|
||||
C--------CHECK FOR SUPERNOVA POSSIBILITY
|
||||
IF(RANF(0) .GE. 0.05) GO TO 76
|
||||
IF(RAND() .GE. 0.05) GO TO 76
|
||||
CALL SNOVA(IX,IY)
|
||||
RETURN
|
||||
C--------PRINT NOVA MESSAGE FOR INITIAL STAR AT LOCATION (IX,IY)
|
||||
@ -3049,7 +3054,7 @@ C IF(IQUAD.EQ.IHDOT .OR. IQUAD.EQ.IHQUEST .OR. IQUAD.EQ.'@')
|
||||
IF(IQUAD.EQ.IHT) GO TO 90
|
||||
IF(IQUAD .NE. IHSTAR) GO TO 80
|
||||
C--------ANOTHER STAR AFFECTED BY A NOVA
|
||||
IF(RANF(0.) .GE. .05)GO TO 79
|
||||
IF(RAND() .GE. .05)GO TO 79
|
||||
CALL SNOVA(II,JJ)
|
||||
RETURN
|
||||
79 TOP2=TOP2+1
|
||||
@ -3090,7 +3095,7 @@ C----------NOVA DESTROYS STARBASE
|
||||
CALL CRMSENA(IHB,2,II,JJ)
|
||||
CALL CRAM(12H DESTROYED. ,12)
|
||||
GO TO 8905
|
||||
82 HIT=800.0 + 800.0*RANF(0)
|
||||
82 HIT=800.0 + 800.0*RAND()
|
||||
IF(IQUAD .NE.ISHIP) GO TO 87
|
||||
C----------STARSHIP IN A NOVA
|
||||
CALL PROUT(29H***STARSHIP BUFFETED BY NOVA.,29)
|
||||
@ -3274,7 +3279,7 @@ C-------- INFORM USER OF AVAIL ENERGY AND READ IN DESIRED PHASER POWER
|
||||
CALL CRAM(1H(,1)
|
||||
IREC=0
|
||||
DO 29 K=1,NENHERE
|
||||
29 IREC=ABS(KPOWER(K))/(PHASFAC*0.9**KDIST(K))*(1.01+0.05*RANF(0))+1.
|
||||
29 IREC=ABS(KPOWER(K))/(PHASFAC*0.9**KDIST(K))*(1.01+0.05*RAND())+1.
|
||||
1 +IREC
|
||||
CALL CRAMI(IREC,0)
|
||||
CALL CRAM(3H) ,3)
|
||||
@ -3306,7 +3311,7 @@ C IF(ITM.NE.1HN) GOTO 34
|
||||
GO TO 15
|
||||
C--------PRINT MESSAGE FOR SHIELD CONTROL, AND DECIDE IF MALFUNCTION OCCURS.
|
||||
42 CALL SKIP(1)
|
||||
IF(RANF(0.).LT.0.995) GO TO 45
|
||||
IF(RAND().LT.0.995) GO TO 45
|
||||
C--------SOMETHING BAD HAS HAPPENED.
|
||||
CALL REDALRT
|
||||
CALL SKIP(1)
|
||||
@ -3331,7 +3336,7 @@ C--------- LOOP THAT DISTRIBUTES HITS IN AUTO MODE IS HERE.
|
||||
HITS(I)=0.
|
||||
IF (POWREM .LE. 0.) GO TO 50
|
||||
HITS (I)=ABS(KPOWER(I))/(PHASFAC*0.90**KDIST(I))
|
||||
OVER=(.01+.05*RANF(0))*HITS(I)
|
||||
OVER=(.01+.05*RAND())*HITS(I)
|
||||
TEMP=POWREM
|
||||
POWREM=POWREM-HITS(I)-OVER
|
||||
IF(POWREM .LE. 0.) HITS(I)=AMIN1(TEMP,HITS(I))
|
||||
@ -3369,7 +3374,7 @@ C--------- LOOP FOR DESIRED INDIVIDUAL HITS.
|
||||
87 IF(IPOOP .EQ. 0) GO TO 88
|
||||
C--------PRINT BATTLE-COMPUTER RECOMMENDATION
|
||||
CALL CRAM(1H(,1)
|
||||
IREC=ABS(KPOWER(K))/(PHASFAC*0.9**KDIST(K))*(1.01+0.05*RANF(0))+1.
|
||||
IREC=ABS(KPOWER(K))/(PHASFAC*0.9**KDIST(K))*(1.01+0.05*RAND())+1.
|
||||
CALL CRAMI(IREC,0)
|
||||
CALL CRAM(3H) ,3)
|
||||
88 CALL CRAM(17HUNITS TO FIRE AT ,17)
|
||||
@ -3427,7 +3432,7 @@ C--------SAY SHIELDS RAISED OR MALFUNCTION, IF NECESSARY.
|
||||
IF(IFAST .EQ. 0) GO TO 210
|
||||
CALL SKIP(1)
|
||||
IF(NO.NE.0) GO TO 202
|
||||
IF(RANF(0) .LT. 0.99) GO TO 205
|
||||
IF(RAND() .LT. 0.99) GO TO 205
|
||||
CALL PROUT(66HSULU: "SIR, THE HIGH-SPEED SHIELD CONTROL HAS MALFU
|
||||
CNCTIONED . . .,66)
|
||||
CALL PROUT(
|
||||
@ -3438,12 +3443,12 @@ C--------SAY SHIELDS RAISED OR MALFUNCTION, IF NECESSARY.
|
||||
C--------CHECK FOR PHASER OVERHEAT
|
||||
210 IF(POW .LE. 1500.) RETURN
|
||||
CHEKBRN=(POW-1500.)*.00038
|
||||
IF(RANF(0.) .GT. CHEKBRN) RETURN
|
||||
IF(RAND() .GT. CHEKBRN) RETURN
|
||||
C--------DO YOU SMELL SMOKE?
|
||||
CALL SKIP(1)
|
||||
CALL PROUT(48HWEAPONS OFFICER SULU: "PHASERS OVERHEATED, SIR."
|
||||
1 ,48)
|
||||
DAMAGE(3) = DAMFAC*(1.0 + RANF(0))*(1.+CHEKBRN)
|
||||
DAMAGE(3) = DAMFAC*(1.0 + RAND())*(1.+CHEKBRN)
|
||||
RETURN
|
||||
END
|
||||
|
||||
@ -3552,9 +3557,9 @@ C--------BEGIN OUTER LOOP FOR MOVING <N> TORPEDOES
|
||||
J=I
|
||||
STARTX=SECTX
|
||||
STARTY=SECTY
|
||||
R=(RANF(0)+RANF(0))*0.5 -0.5
|
||||
R=(RAND()+RAND())*0.5 -0.5
|
||||
IF(ABS(R) .LT. 0.49) GO TO 5709
|
||||
R=(RANF(0)+1.2)*R
|
||||
R=(RAND()+1.2)*R
|
||||
C-------- TORPEDO MISFIRES
|
||||
IF(N.GT.1) GO TO 5706
|
||||
CALL PROUT(21H***TORPEDO MISFIRES. ,21)
|
||||
@ -3564,10 +3569,10 @@ C-------- TORPEDO MISFIRES
|
||||
CALL CRAMDMP(10H MISFIRES.,10)
|
||||
IF(I . LT. N) CALL PROUT(31H REMAINDER OF BURST ABORTED. ,31)
|
||||
I=N
|
||||
5707 IF(RANF(0.) .GT. .200000)GO TO 5709
|
||||
5707 IF(RAND() .GT. .200000)GO TO 5709
|
||||
C------- CHECK IF MISFIRE DOES SHIP DAMAGE. IF SO DON'T GIVE TRACK.
|
||||
CALL PROUT(35H***PHOTON TUBES DAMAGED BY MISFIRE.,35)
|
||||
DAMAGE(4)=DAMFAC*(1.0+2.0*RANF(0))
|
||||
DAMAGE(4)=DAMFAC*(1.0+2.0*RAND())
|
||||
GO TO 115
|
||||
5709 IF(SHLDUP.NE.0 .OR. CONDIT.EQ.IHDOC ) R=R+0.001*SHLD*R
|
||||
AC=COURSE(I)+0.25*R
|
||||
@ -3586,8 +3591,8 @@ C--------ENEMY FIRES PHOTON TORPEDO
|
||||
DELTX=0.1*(SECTY-STARTY)
|
||||
DELTY=0.1*(STARTX-SECTX)
|
||||
AC=1.90985932*ATAN2(DELTX,DELTY)
|
||||
TEMP=RANF(0)-0.5
|
||||
R=TEMP*(1.0+0.001*KPOWER(KSHOT))+RANF(0.)*TEMP
|
||||
TEMP=RAND()-0.5
|
||||
R=TEMP*(1.0+0.001*KPOWER(KSHOT))+RAND()*TEMP
|
||||
AC=AC+0.25*R
|
||||
IQUAD=QUAD(IX,IY)
|
||||
CALL CRMSENA(IQUAD,0,IX,IY)
|
||||
@ -3596,7 +3601,7 @@ C--------CHECK FOR KLINGON MISFIRE
|
||||
IF(ABS(TEMP) .LT. 0.45) GO TO 5710
|
||||
C--------ENEMY TORPEDO MISFIRED. DETERMINE DAMAGE.
|
||||
ANGLE=(15.0-AC)*0.5235988
|
||||
HIT=200.0 + 600.0*RANF(0)
|
||||
HIT=200.0 + 600.0*RAND()
|
||||
LL=KSHOT
|
||||
CALL PROUT(21H***TORPEDO MISFIRES! ,21)
|
||||
GO TO 68
|
||||
@ -3643,11 +3648,11 @@ C NORMAL MISS DISTANCE, AND HIT
|
||||
BULSEYE=(15.0-BULSEYE)*0.5235988
|
||||
SINANG=SIN(ANGLE-BULSEYE)
|
||||
DISTN=ABS(SINANG) * DIST
|
||||
HIT=700.0+100.0*RANF(0)-1000.0*DISTN
|
||||
HIT=700.0+100.0*RAND()-1000.0*DISTN
|
||||
C--------TEST FOR AND COPE WITH HIT ON KLINGON,ROMULAN, OR COMMANDER.
|
||||
IF(IQUAD .EQ. IHK .OR. IQUAD .EQ. IHR) GO TO 62
|
||||
IF(IQUAD .NE. IHC .AND. IQUAD .NE. IHS) GO TO 70
|
||||
IF(RANF(0) .GT. 0.05) GO TO 62
|
||||
IF(RAND() .GT. 0.05) GO TO 62
|
||||
CALL CRMSENA(IQUAD,2,IX,IY)
|
||||
CALL CRAMDMP(25H USES ANTI-PHOTON DEVICE;,25)
|
||||
CALL PROUT(23H TORPEDO NEUTRALIZED.,23)
|
||||
@ -3662,7 +3667,7 @@ C--------TEST FOR AND COPE WITH HIT ON KLINGON,ROMULAN, OR COMMANDER.
|
||||
GO TO 50
|
||||
69 CALL CRMSENA(IQUAD,2,IX,IY)
|
||||
C--------IF ENEMY DAMAGED BUT NOT DESTROYED, TRY TO DISPLACE HIM
|
||||
6901 ANG=ANGLE + 2.5*(RANF(0)-0.5)
|
||||
6901 ANG=ANGLE + 2.5*(RAND()-0.5)
|
||||
TEMP=AMAX1(ABS(-SIN(ANG)),ABS(COS(ANG)))
|
||||
XX=-SIN(ANG) / TEMP
|
||||
YY= COS(ANG) / TEMP
|
||||
@ -3708,7 +3713,7 @@ C--------TEST FOR AND COPE WITH HIT ON A STARBASE
|
||||
ITHX=0
|
||||
ITHY=0
|
||||
GO TO 50
|
||||
7001 X=RANF(0)
|
||||
7001 X=RAND()
|
||||
IF(X.GT.0.05) CALL CRAMDMP(23H SURVIVES PHOTON BLAST. ,23)
|
||||
IF(X.GT.0.05) GO TO 50
|
||||
CALL CRAMDMP(12H DISAPPEARS. ,12)
|
||||
@ -3772,7 +3777,7 @@ C--------STAR HIT - CHECK FOR NOVA RESULTS
|
||||
C--------CHECK FOR A BOOMERANG TORPEDO
|
||||
90 IF(IQUAD .NE.ISHIP) GO TO 93
|
||||
IF(CONDIT.NE.IHDOC) GO TO 9010
|
||||
IF(RANF(0).GT.0.77) GO TO 9010
|
||||
IF(RAND().GT.0.77) GO TO 9010
|
||||
CALL CRAM(27H STAR BASE SHIELDS PROTECT ,27)
|
||||
CALL CRAMSHP
|
||||
CALL CREND
|
||||
@ -3890,7 +3895,7 @@ C--------CHECK TO SEE IF SHIP ADJACENT TO PLANET.
|
||||
5 CALL CRAMSHP
|
||||
CALL CRAMDMP(24H NOT ADJACENT TO PLANET. ,24)
|
||||
RETURN
|
||||
10 TIME = .02+.03*RANF(0)
|
||||
10 TIME = .02+.03*RAND()
|
||||
IF(DAMAGE(6) .GT. 0.) TIME=TIME*10.
|
||||
C--------GO AHEAD, SULU.
|
||||
CALL PROUT(47HHELMSMAN SULU: "ENTERING STANDARD ORBIT, SIR."
|
||||
@ -3903,7 +3908,7 @@ C--------GO AHEAD, SULU.
|
||||
+ RETURN
|
||||
GO TO IWHERE
|
||||
17 CALL CRAM(11H ALTITUDE ,11)
|
||||
HEIGHT=1400.+7200.*RANF(0)
|
||||
HEIGHT=1400.+7200.*RAND()
|
||||
CALL CRAMF(HEIGHT,0,2)
|
||||
CALL CRAMDMP(13H KILOMETERS.",13)
|
||||
INORBIT=1
|
||||
@ -3951,7 +3956,7 @@ C IF(JA(DUMMY)) GO TO IWHERE
|
||||
CALL PROUT(18HKIRK: "ENERGIZE." ,18)
|
||||
21 CALL SKIP(1)
|
||||
CALL PROUT(41HWWHOOOIIIIIRRRRREEEE.E.E. . . . . . . ,41)
|
||||
IF(RANF(0) .GT. 0.98) GO TO 35
|
||||
IF(RAND() .GT. 0.98) GO TO 35
|
||||
CALL PROUT(41H. . . . . . .E.E.EEEERRRRRIIIIIOOOHWW ,41)
|
||||
CALL SKIP(1)
|
||||
CALL PROUT(19HTRANSPORT COMPLETE. ,19)
|
||||
@ -3989,7 +3994,7 @@ C*
|
||||
50 IF(PLNETS(IPLANET,4) .EQ. 1) GO TO 51
|
||||
CALL PROUT(37HNO DILITHIUM CRYSTALS ON THIS PLANET. ,37)
|
||||
RETURN
|
||||
51 TIME =(0.1+0.2*RANF(0)) * PLNETS(IPLANET,3)
|
||||
51 TIME =(0.1+0.2*RAND()) * PLNETS(IPLANET,3)
|
||||
ASSIGN 52 TO IWHERE
|
||||
GO TO 16
|
||||
52 CALL PROUT(26HMINING OPERATION COMPLETE. ,26)
|
||||
@ -4024,7 +4029,7 @@ C*
|
||||
CALL SKIP(1)
|
||||
CALL PROUT(42HSCOTTY: "KEEP YOUR FINGERS CROSSED, SIR!" ,42)
|
||||
CALL SKIP(1)
|
||||
IF(RANF(0) .GT. CRYPROB) GO TO 57
|
||||
IF(RAND() .GT. CRYPROB) GO TO 57
|
||||
CALL PROUT(41H "ACTIVATING NOW! - - NO GOOD! IT'S*** ,41)
|
||||
5610 CALL PROUT(54H***RED ALERT! RED A*L******************************
|
||||
+**,54)
|
||||
@ -4033,7 +4038,7 @@ C*
|
||||
C** ,54)
|
||||
CALL KABOOM
|
||||
RETURN
|
||||
57 ENERGY = ENERGY +5000.*(1.+0.9*RANF(0))
|
||||
57 ENERGY = ENERGY +5000.*(1.+0.9*RAND())
|
||||
CALL PROUT(38H "ACTIVATING NOW% - - THE INSTRUMENTS ,38)
|
||||
CALL PROUT(36H ARE GOING CRAZY, BUT I THINK IT'S ,36)
|
||||
CALL PROUT(41H GOING TO WORK! CONGRATULATIONS, SIR!" ,41)
|
||||
@ -4152,7 +4157,7 @@ C*
|
||||
CALL PROUT(16HKIRK: "ENGAGE!",16)
|
||||
CALL SKIP(1)
|
||||
CALL PROUT(45HWHIRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR,45)
|
||||
R=RANF(0)
|
||||
R=RAND()
|
||||
IF(R .GT. 0.30) GO TO 130
|
||||
C--------BANG!
|
||||
CALL PROUT(32HSULU: "CAPTAIN! IT'S WORKING!",32)
|
||||
@ -4174,7 +4179,7 @@ C--------SUCCESS!
|
||||
CALL SKIP(1)
|
||||
CALL PROUT(
|
||||
+56HSPOCK: "CAPTAIN, I BELIEVE THE "EXPERIMENTAL DEATH RAY",56)
|
||||
IF(RANF(0).GT..05) GOTO 140
|
||||
IF(RAND().GT..05) GOTO 140
|
||||
CALL PROUT(22HIS STILL OPERATIONAL.",22)
|
||||
RETURN
|
||||
140 CALL PROUT(33HHAS BEEN RENDERED DISFUNCTIONAL.",33)
|
||||
@ -4603,7 +4608,7 @@ C CALL CRAMENA(IENM,2,IX,IY)
|
||||
CALL CRAM3AS
|
||||
CALL CRAMSHP
|
||||
CALL CRAMDMP(17H HEAVILY DAMAGED.,17)
|
||||
ICAS=10.0+20.0*RANF(0)
|
||||
ICAS=10.0+20.0*RAND()
|
||||
CALL CRAM(19H***SICKBAY REPORTS ,19)
|
||||
CALL CRAMI(ICAS,0)
|
||||
CALL CRAMDMP(12H CASUALTIES.,12)
|
||||
@ -4611,7 +4616,7 @@ C CALL CRAMENA(IENM,2,IX,IY)
|
||||
DO 10 L=1,NDEVICE
|
||||
IF(DAMAGE(L) .LT. 0) GO TO 10
|
||||
IF(L.EQ.14) GOTO 10
|
||||
EXTRADM=(10.0*TYPE*RANF(0)+1.0)*DAMFAC
|
||||
EXTRADM=(10.0*TYPE*RAND()+1.0)*DAMFAC
|
||||
DAMAGE(L)=DAMAGE(L)+TIME+EXTRADM
|
||||
10 CONTINUE
|
||||
ISUBDAM=1
|
||||
@ -4621,6 +4626,35 @@ C CALL CRAMENA(IENM,2,IX,IY)
|
||||
RETURN
|
||||
END
|
||||
|
||||
END
|
||||
DELETE F7:TRRANF
|
||||
EDIT
|
||||
BUILD F7:TRRANF
|
||||
C REAL FUNCTION RANF(DUMMY)
|
||||
REAL FUNCTION RAND()
|
||||
C
|
||||
C 25-APR-79
|
||||
C CHANGED TO USE THE ONE-ARGUMENT VERSION OF THE RAN FUNCTION,
|
||||
C AND TO USE AN INTEGER*4 SEED.
|
||||
C
|
||||
C INTEGER*4 IRAN,ISEED
|
||||
INTEGER NXSEED
|
||||
C
|
||||
IF (NXSEED.NE.0) GO TO 10
|
||||
RAND=RANF()
|
||||
RETURN
|
||||
10 NXSEED=NXSEED * 1103515243 + 12345
|
||||
IDIV=NXSEED/65536
|
||||
IMOD=IDIV-((IDIV/32768)*32768)
|
||||
RAND=ABS(IMOD/32768.)
|
||||
RETURN
|
||||
C
|
||||
ENTRY RANSET(ISEED)
|
||||
C
|
||||
NXSEED=ISEED
|
||||
RETURN
|
||||
END
|
||||
|
||||
END
|
||||
DELETE F7:TRSCAN
|
||||
EDIT
|
||||
@ -4944,7 +4978,7 @@ C--------CHECK FOR A BASE.
|
||||
46 IF(IBQX.EQ.ISX .AND. IBQY.EQ.ISY .AND. ISX.NE.BATX .AND. ISY.NE.
|
||||
+ BATY) GO TO 80
|
||||
C--------CHECK FOR INTELLIGENCE REPORT.
|
||||
IF(RANF(0) .GT. 0.2) RETURN
|
||||
IF(RAND() .GT. 0.2) RETURN
|
||||
IF(DAMAGE(9).GT.0. .OR. STARCH(ISX,ISY).GT.0) RETURN
|
||||
CALL SKIP(1)
|
||||
CALL PROUT(52HLT. UHURA: "CAPTAIN, STARFLEET INTELLIGENCE REPORTS
|
||||
@ -4959,7 +4993,7 @@ C--------NOTHING AVAILABLE. GO INTO HIBERNATION.
|
||||
RETURN
|
||||
C--------ATTACK A BASE.
|
||||
80 ISATB=1
|
||||
FUTURE(7)=DATE+1.0+2.0*RANF(0)
|
||||
FUTURE(7)=DATE+1.0+2.0*RAND()
|
||||
IF(BATX.NE.0.0) FUTURE(7)=FUTURE(7)+FUTURE(5)-DATE
|
||||
LOC=IHS
|
||||
CALL SOS
|
||||
@ -5128,7 +5162,7 @@ C SHUTUP=0.0
|
||||
SHUTUP=0
|
||||
BATX=0
|
||||
BATY=0
|
||||
IDATE=31.0*RANF(0)+20.0
|
||||
IDATE=31.0*RAND()+20.0
|
||||
DATE=100*IDATE
|
||||
INDATE=DATE
|
||||
KILLK=0
|
||||
@ -5169,7 +5203,7 @@ C--------PUT STARS IN THE GALAXY
|
||||
INSTAR=0
|
||||
DO 5 I=1,8
|
||||
DO 5 J=1,8
|
||||
K = RANF(0) * 9 + 1
|
||||
K = RAND() * 9 + 1
|
||||
INSTAR=INSTAR+K
|
||||
5 GALAXY(I,J)=K
|
||||
STARKL=0
|
||||
@ -5181,7 +5215,7 @@ C-------LOCATE STARBASES IN THE GALAXY (IMPROVED PLACEMENT)
|
||||
LIM=I-1
|
||||
DO 7 J=1,LIM
|
||||
DISTQ=(IX-BASEQX(J))**2 + (IY-BASEQY(J))**2
|
||||
IF(DISTQ .LT. 6*(6-INBASE) .AND. RANF(0.) .LT. 0.75) GOTO 6
|
||||
IF(DISTQ .LT. 6*(6-INBASE) .AND. RAND() .LT. 0.75) GOTO 6
|
||||
7 CONTINUE
|
||||
8 BASEQX(I)=IX
|
||||
BASEQY(I)=IY
|
||||
@ -5192,7 +5226,7 @@ C--------POSITION ORDINARY KLINGON BATTLE CRUISERS
|
||||
KREM=INKLING-INCOM-NSCREM
|
||||
KLUMPER=0.25*SKILL*(9-LENGTH)+1.0
|
||||
KLUMPER=MIN0(9,KLUMPER)
|
||||
10 KLUMP=(1.0-RANF(0)**2)*KLUMPER
|
||||
10 KLUMP=(1.0-RAND()**2)*KLUMPER
|
||||
IF(KLUMP .GT. KREM) KLUMP=KREM
|
||||
NUM=100*KLUMP
|
||||
15 CALL IRAN8(IX,IY)
|
||||
@ -5203,7 +5237,7 @@ C--------POSITION ORDINARY KLINGON BATTLE CRUISERS
|
||||
C--------POSITION KLINGON COMMAND SHIPS
|
||||
DO 18 I=1,INCOM
|
||||
16 CALL IRAN8(IX,IY)
|
||||
IF(GALAXY(IX,IY).LT.99 .AND. RANF(0).LT.0.75) GO TO 16
|
||||
IF(GALAXY(IX,IY).LT.99 .AND. RAND().LT.0.75) GO TO 16
|
||||
IF(GALAXY(IX,IY) .GT. 899)GO TO 16
|
||||
IF(I .EQ. 1)GO TO 17
|
||||
IM1=I-1
|
||||
@ -5221,9 +5255,9 @@ C--------LOCATE PLANETS IN GALAXY
|
||||
PLNETS(I,1)=IX
|
||||
PLNETS(I,2)=IY
|
||||
C--------DECIDE WHAT KIND OF PLANET M=1, N=2, O=3.
|
||||
PLNETS(I,3)=RANF(0)*3. + 1.
|
||||
PLNETS(I,3)=RAND()*3. + 1.
|
||||
C--------DECIDE WHETHER DILITHIUM CRYSTALS ARE PRESENT.
|
||||
PLNETS(I,4)=1.2*RANF(0)
|
||||
PLNETS(I,4)=1.2*RAND()
|
||||
PLNETS(I,5)=0
|
||||
20 CONTINUE
|
||||
C--------LOCATE ROMULANS.
|
||||
@ -5241,7 +5275,7 @@ C--------LOCATE THE SUPER-COMMANDER, IF NEEDED.
|
||||
CALL SKIP(1)
|
||||
SNAP=0
|
||||
C--------DECIDE IF GALAXY NEEDS A "THING"
|
||||
IF((RANF(0) .GT. 0.04) .OR. (THINGX .EQ. -1)) GO TO 2301
|
||||
IF((RAND() .GT. 0.04) .OR. (THINGX .EQ. -1)) GO TO 2301
|
||||
CALL IRAN8(THINGX,THINGY)
|
||||
GO TO 24
|
||||
2301 THINGX=0
|
||||
@ -5489,7 +5523,7 @@ C
|
||||
NSY=INSY
|
||||
C--------IF SCHEDULED SUPERNOVA (INSX=INSY=0), SELECT STAR
|
||||
IF(INSX.NE.0) GO TO 50
|
||||
NUM=RANF(0)*INSTAR+1
|
||||
NUM=RAND()*INSTAR+1
|
||||
DO 10 NQX=1,8
|
||||
DO 10 NQY=1,8
|
||||
NUM=NUM-MOD(GALAXY(NQX,NQY),10)
|
||||
@ -5502,7 +5536,7 @@ C--------IF STARSHIP IS IN THIS QUADRANT, CHOOSE STAR EXACTLY
|
||||
C--------UNLESS STARSHIP JUST GOT HERE; THEN TREAT SUPERNOVA AS
|
||||
C OCCURING WHILE EN ROUTE.
|
||||
IF(JUSTIN.NE.0) GO TO 70
|
||||
NUM=RANF(0)*MOD(GALAXY(NQX,NQY),10)+1
|
||||
NUM=RAND()*MOD(GALAXY(NQX,NQY),10)+1
|
||||
DO 30 NSX=1,10
|
||||
DO 30 NSY=1,10
|
||||
IF(QUAD(NSX,NSY) .NE. IHSTAR) GO TO 30
|
||||
@ -5949,9 +5983,9 @@ BUILD F7:TRTIMEW
|
||||
DIMENSION PICTURE(226)
|
||||
EQUIVALENCE (PICTURE,DATE)
|
||||
CALL PROUT(21H***TIME WARP ENTERED.,21)
|
||||
IF(SNAP.NE.0 .AND. RANF(0).LT.0.5) GO TO 10
|
||||
IF(SNAP.NE.0 .AND. RAND().LT.0.5) GO TO 10
|
||||
C--------TRAVEL FORWARD IN TIME
|
||||
TIME=-0.5*INTIME*ALOG(RANF(0))
|
||||
TIME=-0.5*INTIME*ALOG(RAND())
|
||||
CALL CRAM(35HYOU ARE TRAVELLING FORWARD IN TIME ,35)
|
||||
CALL CRAMF(TIME,0,2)
|
||||
CALL CRAMDMP(11H STARDATES.,11)
|
||||
@ -6356,7 +6390,7 @@ C--------ALTERNATE REST PERIODS (EVENTS) WITH ATTACKS
|
||||
40 IF(ANUM .LE. 0.) RESTING=0
|
||||
IF(RESTING .EQ. 0) GO TO 50
|
||||
TEMP=ANUM
|
||||
IF(NENHERE.NE. 0) TEMP=AMIN1(ANUM,1.0+RANF(0))
|
||||
IF(NENHERE.NE. 0) TEMP=AMIN1(ANUM,1.0+RAND())
|
||||
TIME=TEMP
|
||||
IF(TIME .LT. ANUM) CALL ATTACK
|
||||
IF(NENHERE.EQ.0) CALL MOVETHO
|
||||
@ -6443,12 +6477,12 @@ C*
|
||||
IF(WARPFAC .LE. 6.0) GO TO 50
|
||||
C--------DECIDE IF ENGINE DAMAGE WILL OCCUR
|
||||
PROB=DIST*(6.0-WARPFAC)**2/66.666666666
|
||||
IF(PROB .GT. RANF(0)) BLOOEY=1
|
||||
IF(BLOOEY.NE.0) DIST=RANF(0)*DIST
|
||||
IF(PROB .GT. RAND()) BLOOEY=1
|
||||
IF(BLOOEY.NE.0) DIST=RAND()*DIST
|
||||
C----------DECIDE IF TIME WARP WILL OCCUR
|
||||
TWARP=0
|
||||
IF(WARPFAC .LT. 10.0) GO TO 40
|
||||
IF(0.5*DIST .GT. RANF(0)) TWARP=1
|
||||
IF(0.5*DIST .GT. RAND()) TWARP=1
|
||||
40 IF(BLOOEY .EQ. 0 .AND. TWARP .EQ. 0) GO TO 50
|
||||
C--------IF ENGINE DAMAGE OR TIME WARP SHOULD OCCUR, CHECK PATH
|
||||
ANGLE=((15.0-DIREC)*0.5235998)
|
||||
@ -6485,7 +6519,7 @@ C--------ENTER TIME WARP
|
||||
IF(TWARP.NE.0) CALL TIMEWRP
|
||||
C--------DAMAGE WARP ENGINES
|
||||
IF(BLOOEY .EQ. 0) GO TO 60
|
||||
DAMAGE(6)=DAMFAC*(3.0*RANF(0)+1.0)
|
||||
DAMAGE(6)=DAMFAC*(3.0*RAND()+1.0)
|
||||
CALL SKIP(1)
|
||||
CALL PROUT(24H"ENGINEERING TO BRIDGE--,24)
|
||||
CALL PROUT(44H SCOTT HERE. THE WARP ENGINES ARE DAMAGED.,44)
|
||||
@ -6510,7 +6544,7 @@ BUILD F7:TRZAP
|
||||
REAL*8 CRAMBUF(2)
|
||||
PFAC=1.0/INSHLD
|
||||
CHGFAC=1.0
|
||||
IF(SHLDCHG .EQ. 1) CHGFAC=0.25+0.50*RANF(0)
|
||||
IF(SHLDCHG .EQ. 1) CHGFAC=0.25+0.50*RAND()
|
||||
IF(SHLDUP .EQ. 0 .AND. SHLDCHG .EQ. 0) GO TO 10
|
||||
PROPOR=AMAX1(PFAC*SHLD,0.10)
|
||||
HITSH=PROPOR*CHGFAC*HIT+1.0
|
||||
@ -6532,20 +6566,20 @@ C CALL CRAMENA(QUAD(JX,JY),0,JX,JY)
|
||||
CALL CRAMENA(QUAD(JX,JY))
|
||||
15 CALL CREND
|
||||
C--------DECIDE IF HIT IS CRITICAL
|
||||
IF(HIT .LT. (275.0-25.0*SKILL)*(1.0+0.5*RANF(0))) GO TO 60
|
||||
NCRIT=1.0 + HIT/(500.0+100.0*RANF(0))
|
||||
IF(HIT .LT. (275.0-25.0*SKILL)*(1.0+0.5*RAND())) GO TO 60
|
||||
NCRIT=1.0 + HIT/(500.0+100.0*RAND())
|
||||
CALL CRAM(17H***CRITICAL HIT--,17)
|
||||
C--------SELECT DEVICE(S) AND CAUSE DAMAGE
|
||||
KTR=1
|
||||
DO 50 LL=1,NCRIT
|
||||
20 J=NDEVICE*RANF(0)+1.0
|
||||
20 J=NDEVICE*RAND()+1.0
|
||||
IF(DAMAGE(J) .LT. 0) GO TO 20
|
||||
C*--------CHEAT TO PREVENT DEATHRAY FROM BEING DAMAGED.
|
||||
IF(J.EQ.14) GOTO 20
|
||||
C--------CHEAT TO PREVENT SHUTTLE DAMAGE UNLESS ON SHIP.
|
||||
IF((J .EQ. 10) .AND. (ISCRAFT .NE. 1)) GO TO 20
|
||||
CDAM(LL)=J
|
||||
EXTRADM=(HIT*DAMFAC)/(NCRIT*(75.0+25.0*RANF(0)))
|
||||
EXTRADM=(HIT*DAMFAC)/(NCRIT*(75.0+25.0*RAND()))
|
||||
DAMAGE(J)=DAMAGE(J)+EXTRADM
|
||||
IF(LL .EQ. 1) GO TO 40
|
||||
DO 30 LLL=2,LL
|
||||
@ -7979,23 +8013,23 @@ BUILD TX:STARTRK
|
||||
|
||||
|
||||
1. STAR TREK (THE ORIGINAL TELEVISION SERIES), PRODUCED AND
|
||||
DIRECTED BY GENE RODENBERRY.
|
||||
DIRECTED BY GENE RODDENBERRY.
|
||||
|
||||
2. STAR TREK (THE ANIMATED TELEVISION SERIES), PRODUCED BY GENE
|
||||
RODENBERRY AND DIRECTED BY HAL SUTHERLAND. ALSO EXCELLENT,
|
||||
RODDENBERRY AND DIRECTED BY HAL SUTHERLAND. ALSO EXCELLENT,
|
||||
AND NOT JUST KIDDIE FARE. IF YOU ENJOYED THE ORIGINAL SERIES
|
||||
YOU SHOULD ENJOY THIS ONE (UNLESS YOU HAVE SOME SORT OF A
|
||||
HANGUP ABOUT WATCHING CARTOONS).
|
||||
|
||||
3. THE MAKING OF STAR TREK, BY STEVEN E. WHITFIELD AND GENE
|
||||
RODENBERRY. THE BEST AND MOST COMPLETE READILY AVAILABLE
|
||||
RODDENBERRY. THE BEST AND MOST COMPLETE READILY AVAILABLE
|
||||
BOOK ABOUT STAR TREK. (BALLANTINE BOOKS)
|
||||
|
||||
4. THE WORLD OF STAR TREK, BY DAVID GERROLD. SIMILIAR IN SCOPE
|
||||
4. THE WORLD OF STAR TREK, BY DAVID GERROLD. SIMILAR IN SCOPE
|
||||
TO THE ABOVE BOOK. (BANTAM)
|
||||
|
||||
5. THE STAR TREK GUIDE, THIRD REVISION 4/17/67, BY GENE
|
||||
RODENBERRY. THE ORIGINAL WRITER'S GUIDE FOR THE TELEVISION
|
||||
RODDENBERRY. THE ORIGINAL WRITER'S GUIDE FOR THE TELEVISION
|
||||
SERIES, BUT LESS COMPREHENSIVE THAN (3) ABOVE.
|
||||
(NORWAY PRODUCTIONS)
|
||||
|
||||
@ -8149,6 +8183,9 @@ F77 F7:TRPROUT OVER BO:TRPROUT
|
||||
F
|
||||
F77 F7:TRRAM OVER BO:TRRAM
|
||||
|
||||
F
|
||||
F77 F7:TRRANF OVER BO:TRRANF
|
||||
|
||||
F
|
||||
F77 F7:TRSCAN OVER BO:TRSCAN
|
||||
|
||||
@ -8247,6 +8284,7 @@ BUILD TRPLAQU FROM BO:TRPLAQU(ROM)
|
||||
BUILD TRPRELI FROM BO:TRPRELI(ROM)
|
||||
BUILD TRPROUT FROM BO:TRPROUT(ROM)
|
||||
BUILD TRRAM FROM BO:TRRAM(ROM)
|
||||
BUILD TRRANF FROM BO:TRRANF(ROM)
|
||||
BUILD TRSCAN FROM BO:TRSCAN(ROM)
|
||||
BUILD TRSCOM FROM BO:TRSCOM(ROM)
|
||||
BUILD TRSCORE FROM BO:TRSCORE(ROM)
|
||||
@ -8356,6 +8394,8 @@ DELETE F7:TRPROUT
|
||||
DELETE BO:TRPROUT
|
||||
DELETE F7:TRRAM
|
||||
DELETE BO:TRRAM
|
||||
DELETE F7:TRRANF
|
||||
DELETE BO:TRRANF
|
||||
DELETE F7:TRSCAN
|
||||
DELETE BO:TRSCAN
|
||||
DELETE F7:TRSCOM
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user