COMMON/SIZE/INUM,IMAX,ITRY BYTE A(2),B(8) DIMENSION ICODE(5), IGUESS(5), ICC(5), ICG(5),T(2),IEXAM(3) DATA A/"33,'E'/ DATA IEXAM/411,2561,14483/ CALL WPALL(5,A,2) GO TO 81 1 CALL WPALL(5,A,2) CALL GBOARD CALL TTPOS(1,3,IE) WRITE(5,1000) INUM,IMAX,IEXAM(ITYPE),ITRY 1000 FORMAT(' THIS IS THE GAME OF MASTERMIND.',//, + ' I WILL SELECT A SEQUENCE OF ',I1,' NUMBERS',/, + ' BETWEEN 1 AND ',I1,' (E.G., ',I5,').',/, + ' YOU GET ',I2,' TRIES TO GUESS THE SEQUENCE.',/, + ' AFTER EACH TRY I WILL TELL YOU HOW MANY',/, + ' CORRECT NUMBERS APPEAR IN THE RIGHT ',/, + ' LOCATION (X) AND HOW MANY CORRECT APPEAR',/, + ' IN THE WRONG LOCATION (O)',/, + ' ENTER THE NUMBERS ONE AT A TIME FOLLOWED',/, + ' BY A KEY.',/, + ' A "D" WILL DELETE THE LAST NUMBER.',/, + ' A "C" WILL ALLOW YOU TO CONCEDE TO ME.',/, + ' A "S" AT ANY TIME WILL STOP THE GAME.') CALL TIME(T) DECODE(8,1005,T) IHR,IMIN,ISEC 1005 FORMAT(I2,1X,I2,1X,I2) IT=IHR*(IMIN+ISEC+1)/3 I1=0 I2=0 DO 10 I=1,IT 10 X=RAN(I1,I2) DO 15 I=1,INUM X=RAN(I1,I2) IX=X*IMAX+1. IF(IX.GT.IMAX) IX=IMAX ICODE(I)=IX 15 CONTINUE DO 60 I=1,ITRY NUMX = 0 NUMO = 0 DO 20 J=1,5 ICC(J) = 0 ICG(J) = 0 20 CONTINUE CALL GETGES(I,IGUESS,ICON) IF(ICON.EQ.1) GO TO 65 DO 30 J=1,INUM IF(ICODE(J) .NE. IGUESS(J))GO TO 30 NUMX = NUMX+1 ICC(J) = 1 ICG(J) = 1 30 CONTINUE IF(NUMX .EQ. INUM)GO TO 70 DO 50 J=1,INUM IF(ICC(J) .EQ. 1)GO TO 50 DO 40 K=1,INUM IF(ICG(K) .EQ. 1)GO TO 40 IF(ICODE(J) .NE. IGUESS(K))GO TO 40 NUMO = NUMO+1 ICC(J) = 1 ICG(K) = 1 GO TO 50 40 CONTINUE 50 CONTINUE CALL ANSWER(I,NUMX,NUMO) 60 CONTINUE 65 CALL TTPOS(1,18,IE) WRITE(5,1010) (ICODE(I),I=1,INUM) 1010 FORMAT(' YOU LOSE TURKEY!',/,' THE CORRECT SEQUENCE IS :',5I2) GO TO 80 70 CALL TTPOS(1,18,IE) WRITE(5,1020) 1020 FORMAT(' *** VERY GOOD ***',/,' YOU ARE A WINNER') 80 WRITE(5,1030) 1030 FORMAT(/,' WOULD YOU LIKE TO PLAY AGAIN',/, +'$ANSWER YES OR NO>') CALL RPALL(5,B,1) IF(B(1).NE.1HY) GO TO 90 81 WRITE(5,1040) 1040 FORMAT('$EASY, MEDIUM OR HARD GAME? >') CALL RPALL(5,B,1) ITYPE=1 INUM=3 IMAX=4 ITRY=6 IF(B(1).NE.1HM) GO TO 85 ITYPE=2 INUM=4 IMAX=6 ITRY=8 GO TO 1 85 IF(B(1).NE.1HH) GO TO 1 ITYPE=3 INUM=5 IMAX=8 ITRY=10 GO TO 1 90 CONTINUE END