10 REM BAGEL.ECB 15 PRINT "&K": REM ...BAGELS...Last Mod. 03-14-81 R.E.H. 20 PRINT TAB(10);"*********************" 30 PRINT TAB(10);"*** B A G E L S ***" 40 PRINT TAB(10);"*********************" 50 PRINT 60 REM **** HP TIME-SHARED BASIC PROGRAM LIBRARY **** 70 REM ...BAGELS: 3 DIGIT NUMBER GUESSING 80 REM 36360 (A801) REV A -- 11/71 90 REM **** CONTRIBUTED PROGRAM ********************* 100 REM ...COPYRIGHT 1971 BY THE REGENTS OF THE UNIV. CALIF. 110 REM ...PRODUCED AT THE LAWRENCE HALL OF SCIENCE, BERKELEY 120 DIM A(3),B(3),N$(10) 130 LET N$="0123456789" 140 PRINT "WOULD YOU LIKE THE RULES ---=>"; 150 INPUT (1,0)A$: LET A$=A$+"N" 160 IF A$(1,1)="N" THEN 270 170 IF A$(1,1)="n" THEN 270 180 PRINT 190 PRINT 200 PRINT " I AM THINKING OF A THREE DIGIT NUMBER." 210 PRINT " YOU CAN GUESS WHAT NUMBER" 220 PRINT " I HAVE IN MIND AND I WILL TELL YOU:" 230 PRINT 240 PRINT "PICO - A CORRECT DIGIT BUT IN THE WRONG PLACE" 250 PRINT "FERMI - ONE DIGIT IS IN THE CORRECT PLACE" 260 PRINT "BAGELS - NO DIGIT IS CORRECT" 270 FOR I=1 TO 3 280 LET A(I)=INT(10*RND(0)) 290 LET J=1 300 IF I=J THEN 330 310 IF A(I)=A(J) THEN 280 320 LET J=J+1: IF J3 THEN GOSUB 750:GOTO 390 410 FOR J=1 TO 3 420 REM ...Convert the ASCII character to a number 430 LET B(J)=ASC(A$(J,J))-48 440 NEXT J 450 IF B(1)=B(2) OR B(2)=B(3) OR B(1)=B(3) THEN GOSUB 790 460 LET C=0: LET D=0 470 FOR J=1 TO 2 480 IF A(J)<>B(J+1) THEN 500 490 LET C=C+1 500 IF A(J+1)<>B(J) THEN 520 510 LET C=C+1 520 NEXT J 530 IF A(1)<>B(3) THEN 550 540 LET C=C+1 550 IF A(3)<>B(1) THEN 570 560 LET C=C+1 570 FOR J=1 TO 3 580 IF A(J)<>B(J) THEN 600 590 LET D=D+1 600 NEXT 610 IF D=3 THEN 840 620 PRINT " "; 630 FOR J=1 TO C 640 PRINT "PICO "; 650 NEXT J 660 FOR J=1 TO D 670 PRINT "FERMI "; 680 NEXT J 690 IF C+D<>0 THEN 710 700 PRINT "BAGELS"; 710 PRINT 720 NEXT I 730 PRINT "OH WELL" 740 GOTO 860 750 PRINT 760 PRINT "TRY GUESSING A THREE DIGIT NUMBER." 770 PRINT 780 RETURN 790 PRINT 800 PRINT "OH. I FORGOT TO TELL YOU THAT THE NUMBER I" 810 PRINT " HAVE IN MIND HAS NO TWO DIGITS THE SAME." 820 PRINT 830 RETURN 840 PRINT 850 PRINT "YOU GOT IT!!!" 860 PRINT 870 PRINT "PLAY AGAIN? ---=>"; 880 INPUT (1,0)A$: LET A$=A$+"Y" 890 IF A$(1,1)="Y" THEN 270 900 IF A$(1,1)="y" THEN 270 910 END