-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBAGELS.HPB
More file actions
80 lines (80 loc) · 2.18 KB
/
BAGELS.HPB
File metadata and controls
80 lines (80 loc) · 2.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
10 REM **** HP TIME-SHARED BASIC PROGRAM LIBRARY *********************
20 REM
30 REM BAGLES: 3 DIGIT NUMBER GUESSING
40 REM
50 REM 36360 (A801) REV A -- 11/71
60 REM
70 REM **** CONTRIBUTED PROGRAM **************************************
1000 REM **PICO-FERMI-BAGELS NUMBER GUESS GAME** D.RESEK, P. ROWE
1010 REM COPYRIGHT 1971 BY THE REGENTS OF THE UNIV. OF CALIF.
1020 REM PRODUCED AT THE LAWRENCE HALL OF SCIENCE, BERKELEY
1030 DIM A$[10],N$[10],A[3],B[3]
1040 N$="0123456789"
1050 Y=0
1060 T=255
1070 PRINT "WOULD YOU LIKE THE RULES";
1080 INPUT A$
1090 IF A$[1,1]="N" THEN 1150
1100 PRINT "I AM THINKING OF A THREE DIGIT NUMBER. YOU CAN GUESS WHAT"
1110 PRINT "NUMBER I HAVE IN MIND AND I WILL TELL YOU:"
1120 PRINT "PICO - ONE DIGIT IS IN THE WRONG PLACE"
1130 PRINT "FERMI - ONE DIGIT IS IN THE CORRECT PLACE"
1140 PRINT "BAGELS - NO DIGIT IS CORRECT"
1150 FOR I=1 TO 3
1160 A[I]=INT(10*RND(0))
1170 FOR J=1 TO I-1
1180 IF A[I]=A[J] THEN 1160
1190 NEXT J
1200 NEXT I
1210 PRINT "OKAY, I HAVE A NUMBER IN MIND."
1220 FOR I=1 TO 20
1230 PRINT "GUESS #"I":";
1240 ENTER T,C,A$
1250 IF LEN(A$)#3 THEN 1630 '# is HP's version of <>
1260 FOR J=1 TO 3
1270 FOR C=1 TO 10
1280 IF A$[J,J]=N$[C,C] THEN 1320
1290 NEXT C
1300 PRINT TAB(22)"WHAT?";
1310 GOTO 1230
1320 B[J]=C-1
1330 NEXT J
1340 IF B[1]=B[2] OR B[2]=B[3] OR B[1]=B[3] THEN 1650
1350 C=D=0
1360 FOR J=1 TO 2
1370 IF A[J]#B[J+1] THEN 1390
1380 C=C+1
1390 IF A[J+1]#B[J] THEN 1410
1400 C=C+1
1410 NEXT J
1420 IF A[1]#B[3] THEN 1440
1430 C=C+1
1440 IF A[3]#B[1] THEN 1460
1450 C=C+1
1460 FOR J=1 TO 3
1470 IF A[J]#[BJ] THEN 1490
1480 D=D+1
1490 NEXT J
1500 IF D=3 THEN 1680
1510 PRINT TAB(22);
1520 FOR J=1 TO C
1530 PRINT "PICO ";
1540 NEXT J
1550 FOR J=1 TO D
1560 PRINT "FERMI ";
1570 NEXT J
1580 IF C+D THEN 1600 'this is a trick in HPBASIC, it is 'true' if C+D<>0
1590 PRINT "BAGELS";
1600 NEXT I
1610 PRINT "OH WELL"
1620 GOTO 1700
1630 PRINT "TRY GUESSING A THREE DIGIT NUMBER."
1640 GOTO 1230
1680 PRINT "YOU GOT IT"
1690 Y=Y+1
1700 PRINT "AGAIN";
1710 INPUT A$
1720 IF A$[1,1]="Y" THEN 1150
1730 IF Y=0 THEN 1750
1740 PRINT "A "Y"-POINT BAGELS BUFF"
1750 END