SUBROUTINE SCORPI C C THIS SUBROUTINE CONTROLS THE ACTIONS OF A SCORPION. THE SCORPION C MOVES ACROSS THE SCREEN AND POISONS THOSE MUSHROOMS HE CONTACTS. C IMPLICIT INTEGER(A - Z) PARAMETER MAXCNT = 24 C SCREEN BOUNDARIES PARAMETER LMAR = 2, RMAR = 30, TMAR = 2, BMAR = 23, GMAR = 18 C DIRECTIONALS PARAMETER HALT = 0, UP = 1, DOWN = 2, LEFT = 4, RIGHT = 8 PARAMETER UPL = 10, UPR = 9, DOWNL = 12, DOWNR = 11 C DISPLAYABLE CHARACTERS PARAMETER GUNCHR="166, CBODY="140, MSHCHR="146, BULCHR="170 PARAMETER SPICHR="173, FLECHR="175, SCOCHR="142, PSNCHR="052 PARAMETER CLHEAD="074, CRHEAD="076, CDHEAD="126 PARAMETER SHFIN="17, SHFOUT="16, SPACE="40 C QIO FUNCTION CODES PARAMETER IOATA="1410, IOWVB="11000, SFSMC="2440 C INTEGER*4SCORE, FRESCO, TIMER, SEED, FLETIM, SPITIM, SCOTIM, CNTTI *M DIMENSION PRL(6), CX(MAXCNT, 12), CY(MAXCNT, 12) DIMENSION CLEN(MAXCNT), CDIR(MAXCNT), CRISE(MAXCNT), CBOT(MAXCNT) BYTE CNTBRD(BMAR, RMAR), MSHBRD(BMAR, RMAR), PSNBRD(BMAR, RMAR) COMMON/DIRCOM/DIRCOD, FIRCOD COMMON/CNTCOM/PRL, SCORE, TIMER, SEED, CX, CY, CLEN, CDIR, CRISE, *CBOT, GUNX, GUNY, FRESCO, CNTBRD, MSHBRD, PSNBRD, BULACT, BULX, BU *LY, FLETIM, FLEACT, FLEX, FLEY, SPITIM, SPIACT, SPIX, SPIY, SPILR, * SCOTIM, SCOACT, SCOX, SCOY, SCODIR, GUNCNT, CNTTIM, BOARD, CNTWAV C C VT100 DISPLAY CONTROL PARAMETER DEFINITIONS C CCURSOR POSITION REPORT CCURSOR UP CCURSOR DOWN CCURSOR FORWARD CCURSOR BACK CDOUBLE WIDTH LINE PARAMETER CUP = 1, CUU = 2, CUD = 3, CUF = 4, CUB = 5, DECDWL = 6, * DECDHL = 7, DECRC = 8, DECSC = 9, DECSWL = 10, ED = 11, EL = 12, *SGR = 13, NEL = 14, SCS = 15, SM = 16, RM = 17, ANSI = 18, CPP=19 IF (.NOT.(MSHBRD(SCOX, SCOY) .GT. 0)) GOTO 2000 CMUSHROOM IS HERE CPOISON IT. PSNBRD(SCOX, SCOY) = 1 CALL UVT100(CPP, SCOX, SCOY, PSNCHR) GOTO 2010 2000 CONTINUE CALL UVT100(CPP, SCOX, SCOY, SPACE) 2010 CONTINUE IF (.NOT.(SCODIR .EQ. LEFT)) GOTO 2020 CMOVE SCORPION ONE SQUARE CLEFT OR RIGHT, DEPENDING SCOY = SCOY - 1 CON HIS DIRECTION OF TRAVEL GOTO 2030 2020 CONTINUE SCOY = SCOY + 1 2030 CONTINUE IF (.NOT.(SCOY .LT. LMAR.OR.SCOY .GT. RMAR)) GOTO 2040 CIF OFF SIDE OF BOARD, IT CIS THE END OF SCORPION. SCOACT = 0 CNEXT SCORPION IN 200 CYCLES SCOTIM = TIMER + 200 RETURN 2040 CONTINUE CDISPLAY SCORPION ON SCREEN CALL UVT100(CPP, SCOX, SCOY, SCOCHR) RETURN END