DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T p

⟦fd4ef7331⟧ TextFile

    Length: 1519 (0x5ef)
    Types: TextFile
    Names: »priori.f«

Derivation

└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
    └─⟦this⟧ »EUUGD18/General/Empire/priori.f« 

TextFile

	FUNCTION PRIORI(Z6,IFO,ILA,DIR,AC)
C
	IMPLICIT INTEGER(A-Z)

	include 'common.h'
C
	character GROUND,OK
C 
	DO 100 I=1,7
100	PRIOR(I)=0
	EXPMAX=0
C 
C NOW MAKE A GUESS AS TO WHAT THE MOVE WILL BE
C
	MOVE1=ILA
	IF (IFO.EQ.1.OR.IFO.EQ.2) MOVE1=MOV(Z6,ILA)
	IF (IFO.EQ.3) MOVE1=MOV(Z6,RLMAP(ITT2+ILA))
C 
C NOW SEE IF ANY PRIORITY MOVES EXIST
C
	DO 200 I=0,7*DIR,DIR
	MOVE=ICORR(MOVE1+I)
	LOC=Z6+IARROW(MOVE+1)
comment	**
	IF (ORDER(LOC).NE.0) GOTO 200
	AB=RMAP(LOC)
C 
C CHECK IF ARMY CAN ATTACK SOMETHING OVER WATER
C
	GROUND=OMAP(LOC)
	OK='Y'
	IF ((AC.EQ.'t').AND.(GROUND.EQ.'.')) OK='N'
C 
	IF (AB.EQ.'O') PRIOR(1)=MOVE
	IF ((AB.EQ.'T').AND.(OK.EQ.'Y')) PRIOR(3)=MOVE
	IF (AB.EQ.'*') PRIOR(2)=MOVE
	IF (AB.EQ.'A') PRIOR(5)=MOVE
	IF ((AB.EQ.'S').AND.(OK.EQ.'Y')) PRIOR(6)=MOVE
	IF ((IFO.EQ.0).AND.(AB.GE.'A').AND.(AB.LE.'T').AND.(OK.EQ.'Y'))
     1	 PRIOR(7)=MOVE
C 
	IF (GROUND.NE.'+') GOTO 200
	N=0
	IF (EMAP(LOC+IARROW(ICORR(MOVE-2)+1)).EQ.' ') N=1
comment	**
	IF (EMAP(LOC+IARROW(ICORR(MOVE-1)+1)).EQ.' ') N=N+1
comment	**
	IF (EMAP(LOC+IARROW(MOVE+1)).EQ.' ') N=N+1
comment	**
	IF (EMAP(LOC+IARROW(ICORR(MOVE+1)+1)).EQ.' ') N=N+1
comment	**
	IF (EMAP(LOC+IARROW(ICORR(MOVE+2)+1)).EQ.' ') N=N+1
comment	**
C	PRINT 999,N,EXPMAX
C999	FORMAT(' N:',I2,' EXPMAX:',I2)
	IF (N.LE.EXPMAX) GOTO 200
	PRIOR(4)=MOVE
	EXPMAX=N
200	CONTINUE
C	PRINT 998
C998	FORMAT(' XXXXXXXXXXXXXXXX')
C 
C NOW SELECT THE HIGHEST PRIORITY MOVE
C
	DO 300 I=1,7
300	IF (PRIOR(I).NE.0) GOTO 400
	PRIORI=0
	RETURN
400	PRIORI=PRIOR(I)
	RETURN
	END