C BAGELS - 3 DIGIT GUESSING GAME C INTEGER A,C,D,Y LOGICAL*1 AS(10),NS(10),NO,YES DIMENSION A(3),B(3) DATA NS/'0','1','2','3','4','5','6','7','8','9'/ DATA NO/'N'/ DATA YES/'Y'/ Y=0 WRITE(5,1000) 1000 FORMAT(' WOULD YOU LIKE THE RULES?') READ(5,1001)AS 1001 FORMAT(10A1) IF(AS(1).EQ.NO)GO TO 1170 1002 FORMAT(' I AM THINKING OF A THREE DIGIT NUMBER.') 1003 FORMAT(' YOU CAN GUESS WHAT NUMBER I HAVE IN MIND AND I WILL') 1004 FORMAT(' TELL YOU:') 1005 FORMAT(' PICO - A CORRECT DIGIT BUT IN THE WRONG PLACE') 1006 FORMAT(' FERMI - ONE DIGIT IS IN THE CORRECT PLACE') 1007 FORMAT(' BAGELS - NO DIGIT IS CORRECT') 1008 FORMAT(' ') WRITE(5,1002) WRITE(5,1003) WRITE(5,1004) WRITE(5,1005) WRITE(5,1006) WRITE(5,1007) WRITE(5,1008) 1170 DO 1 I =1,3 1180 A(I)=INT(RAN(ISEED,JSEED)*10.0) IF(I.EQ.1)GO TO 1 LIM=I-1 DO 2 J=1,LIM IF(A(I).EQ.A(J))GO TO 1180 2 CONTINUE 1 CONTINUE WRITE(5,1009) 1009 FORMAT(' OKAY, I HAVE A NUMBER IN MIND') DO 3 I = 1,20 6 WRITE(5,1008) WRITE(5,1010)I 1010 FORMAT(' GUESS NUMBER ',I2) READ(5,1011)AS 1011 FORMAT(3A1) DO 4 J=1,3 IFLAG=0 DO 5 K=1,10 IF(AS(J).EQ.NS(K))GO TO 4 5 CONTINUE WRITE(5,1012) 1012 FORMAT(' TRY GUESSING A THREE DIGIT NUMBER') GO TO 6 4 B(J)=K-1 IF(B(1).EQ.B(2))GO TO 7 IF(B(2).EQ.B(3))GO TO 7 IF(B(1).EQ.B(3))GO TO 7 GO TO 8 7 WRITE(5,1013) 1013 FORMAT(' OH. I FORGOT TO TELL YOU THAT THE NUMBER I HAVE IN MIND') WRITE(5,1014) 1014 FORMAT(' HAS NO TWO DIGITS THE SAME.') GO TO 6 8 C=0 D=0 DO 9 J = 1,2 IF(A(J).EQ.B(J+1))C=C+1 IF(A(J+1).EQ.B(J))C=C+1 9 CONTINUE IF(A(1).EQ.B(3))C=C+1 IF(A(3).EQ.B(1))C=C+1 DO 10 J=1,3 IF(A(J).EQ.B(J))D=D+1 10 CONTINUE IF(D.EQ.3)GO TO 1700 1015 FORMAT(' BAGELS') 1016 FORMAT(' PICO PICO PICO') 1017 FORMAT(' PICO PICO') 1018 FORMAT(' PICO') 1019 FORMAT(' FERMI') 1020 FORMAT(' FERMI FERMI') 1021 FORMAT('PICO PICO FERMI') 1022 FORMAT('PICO FERMI') IF(C.EQ.0 .AND. D.EQ.0)WRITE(5,1015) IF(C.EQ.1 .AND. D.EQ.0)WRITE(5,1018) IF(C.EQ.2.AND.D.EQ.0)WRITE(5,1017) IF(C.EQ.3.AND.D.EQ.0)WRITE(5,1016) IF(C.EQ.0.AND.D.EQ.1)WRITE(5,1019) IF(C.EQ.0.AND.D.EQ.2)WRITE(5,1020) IF(C.EQ.2.AND.D.EQ.1)WRITE(5,1021) IF(C.EQ.1.AND.D.EQ.1)WRITE(5,1022) 3 CONTINUE 1630 WRITE(5,1023) 1023 FORMAT(' OH WELL.') GO TO 1720 1700 WRITE(5,1024) 1024 FORMAT(' YOU GOT IT') Y=Y+1 1720 WRITE(5,1025) 1025 FORMAT(' AGAIN?') READ(5,1001)AS IF(AS(1).EQ.YES)GO TO 1170 WRITE(5,1026)Y 1026 FORMAT(' A ',I2,' POINT BAGELS BUFF') END