SUBROUTINE CHOOSE(FROZEN) INCLUDE 'TREK.COM/-LI' INCLUDE 'TREK2.COM/-LI' COMMON/SCANBF/KEY,AITEM LOGICAL FROZEN REAL*8 AITEM,REGULR,TRNMNT,FROZN,SHORT,MEDIUM,LONG 1 ,NOVICE,FAIR,GOOD,MRITUS,EXPERT,RHBLNK EQUIVALENCE (AITEM,TNMBER) DATA REGULR,TRNMNT,FROZN/7HREGULAR,8HTOURNAME,6HFROZEN/ DATA SHORT,MEDIUM,LONG/5HSHORT,6HMEDIUM,4HLONG/ DATA NOVICE,FAIR,GOOD,EXPERT/6HNOVICE,4HFAIR,4HGOOD,6HEXPERT/ DATA MRITUS,RHBLNK/8HEMERITUS,1H / TNUMBR = 0. PASSWD = RHBLNK ALLDON=0 GAMWON=0 SEED=SECNDS(0.) CALL RANSET(SEED) IPHWHO=0 5 FROZEN = .FALSE. C--------ASK FOR PARAMETERS OF GAME, PREFERABLY ALL ON ONE LINE CALL PROMPT( +54HWOULD YOU LIKE A REGULAR, TOURNAMENT, OR FROZEN GAME? ,54) CALL SCAN IF(CROP(AITEM,REGULR)) GO TO 9 IF(CROP(AITEM,TRNMNT)) GO TO 100 IF(CROP(AITEM,FROZN)) GO TO 200 GO TO 5 9 SKILL=0 LENGTH=0 10 CALL SCAN IF(KEY .NE. IHALPH) GO TO 20 C--------CHECK FOR DIFFERENT KINDS OF GAMES KSTUF(5)=0 IF(CROP(AITEM,SHORT)) LENGTH=1 IF(CROP(AITEM,MEDIUM)) LENGTH=2 IF(CROP(AITEM,LONG)) LENGTH=4 IF(CROP(AITEM,NOVICE)) SKILL=1 IF(CROP(AITEM,FAIR)) SKILL=2 IF(CROP(AITEM,GOOD)) SKILL=3 IF(CROP(AITEM,EXPERT)) SKILL=4 IF(CROP(AITEM,MRITUS)) SKILL=5 IF(SKILL.EQ.4) KSTUF(5)=1 IF(SKILL.EQ.5) KSTUF(5)=2 IF(LENGTH*SKILL .EQ. 0) GO TO 10 GO TO 30 20 IF(LENGTH .NE. 0) GO TO 25 CALL PROMPT(45HWOULD YOU LIKE A SHORT, MEDIUM OR LONG GAME? ,45) GO TO 10 25 IF(SKILL .NE. 0) GO TO 30 CALL PROMPT(48HARE YOU NOVICE, FAIR, GOOD, EXPERT OR EMERITUS? 1 ,48) GO TO 10 C--------READ IN SECRET PASSWORD 30 CALL SCAN PASSWD=AITEM IF(KEY .NE. IHEOL) GO TO 40 CALL PROMPT(33HPLEASE TYPE IN A SECRET PASSWORD:,33) GO TO 30 40 CONTINUE C--------USE PARAMETERS TO GENERATE INITIAL VALUES OF THINGS DAMFAC=0.50*SKILL RMBASE=3.0*RANF(0)+2.0 INPLAN=5. +6.*RANF(0) NROMRM=(2.+RANF(0))*SKILL NSCREM=SKILL/3 RMTIME=7.0*LENGTH INTIME=RMTIME RATE=(SKILL-2.0*RANF(0)+1.0)*SKILL*0.1 + 0.15 REMKL=2.0*RATE*INTIME INKLNG=REMKL INCOM=SKILL+0.0625*INKLNG*RANF(0) INCOM=MIN0(10,INCOM) REMCOM=INCOM REMRES=(INKLNG+4* INCOM )*INTIME INRESR=REMRES IF(INKLNG.GT.50) RMBASE=RMBASE+1 INBASE=RMBASE RETURN C--------PROCESS A TOURNAMENT REQUEST 100 CALL SCAN CALL RANSET(ABS(TNMBER)) THINGX=-1 C--------GO BACK FOR ANYTHING LEFT OUT IF (KEY.NE.IHEOL) GO TO 9 CALL PROMPT(37HTYPE IN NAME OR NUMBER OF TOURNAMENT: ,37) GO TO 100 C--------PROCESS A REQUEST FOR A FROZEN GAME 200 CALL THAW C--------MAKE SURE WE GOT A GAME OUT OF THAW IF(PASSWD.EQ.0.D0) GO TO 5 FROZEN = .TRUE. C--------DESTROY ANY "THINGS" IN FROZEN GAME. THINGX=0 THINGY=0 DO 210 I=1,10 DO 210 J=1,10 210 IF(QUAD(I,J) .EQ. IHQUST) QUAD(I,J)=IHDOT C--------RESET PLAQUE STATUS ICITE=0 RETURN END