-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathQUADGT.HPB
105 lines (105 loc) · 3.03 KB
/
QUADGT.HPB
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
10 DIM A$[5],D$[10]
20 D$="0123456789"
30 DEF FNA(X)=INT(10*RND(1))
40 PRINT "DO YOU WANT TO SEE THE INSTRUCTIONS";
50 INPUT A$
60 IF A$[1,1]="Y" THEN 100
70 IF A$[1,1]="N" THEN 280
80 PRINT "I SAID. ";
90 GOTO 40
100 PRINT "THIS GAME IS PLAYED AS FOLLOWS:"
110 PRINT
120 PRINT "I WILL CHOOSE A 4 DIGIT NUMBER. NO TWO DIGITS WILL BE THE SAME."
130 PRINT "YOUR JOB WILL BE TO FIGURE OUT WHAT DIGITS I PICKED."
140 PRINT
150 PRINT "MAKE YOUR GUESS BY ENTERING A 4 DIGIT NUMBER. I WILL"
160 PRINT "RESPOND WITH A 2 DIGIT NUMBER. MY RESPONSE INDICATES TWO"
170 PRINT "THINGS. FIRST, I TELL YOU HOW MANY DIGITS YOU GUESSED ARE"
180 PRINT "IN THE NUMBER I CHOSE. SECOND, I TELL YOU HOW MANY DIGITS"
190 PRINT" ARE PLACED IN THE CORRECT POSITION WITHIN THE CHOSEN"
200 PRINT "NUMBER."
210 PRINT
220 PRINT "FOR EXAMPLE. IF YOU GUESS 1463 AND I RESPOND WITH"
230 PRINT "31 THEN YOU GOT 3 OF THE DIGITS WHICH APPEAR IN THE"
240 PRINT "ANSWER BUT ONLY ONE DIGIT IS IN THE CORRECT POSITION."
250 PRINT "THUS, THE NUMBER I CHOSE COULD POSSIBLY BE 0346."
260 PRINT
270 PRINT "THE EXPERIENCED PLAYER WILL AVERAGE 5 OR 6 GUESSES PER GAME."
280 PRINT "ENTER YOU FIRST 4 DIGIT GUESS."
290 A[1]=FNA(1)
300 FOR I=2 TO 4
310 A[I]=FNA(1)
320 FOR J=1 TO I-1
330 IF A[I]=A[J] THEN 310
340 NEXT J
350 NEXT I
360 L=0
370 ENTER 255,I,A$
380 IF I#-265 THEN 410
390 PRINT LIN(1),"THINK A LITTLE FASTER, PLEASE."
400 GOTO 370
410 IF LEN(A$0=4 THEN 440
420 PRINT LIN(1),"ENTER EXACTLY 4 DIGITS"
430 GOTO 370
440 FOR I=1 TO 4
450 FOR J=0 TO 9
460 IF A$[I,I]#D$[J+1,J+1] THEN 490
470 N[I]=J
480 GOTO 530
490 NEXT J
500 PRINT USING 510;LIN(1),A$[I,I]
510 IMAGEA,X,"IS AN ILLEGAL CHARACTER. TRY AGAIN"
520 GOTO 370
530 NEXT I
540 FOR I=1 TO 3
550 FOR J=I+1 TO 4
560 IF A$[I,I]#A$[J,J] THEN 600
570 PRINT USING 580;LIN(1),A$[I,I]
580 IMAGEA,X,"APPEARS MORE THAN ONCE. TRY AGAIN"
590 GOTO 370
600 NEXT J
610 NEXT I
620 M1=M2=0
630 FOR I=1 TO 4
640 FOR J=1 TO 4
650 IF N[I]#A[J] THEN 700
660 M1=M1+1
670 IF I#J THEN 700
660 M2=M2+1
670 IF I#J THEN 710
680 M2=M2+1
690 GOTO 710
700 NEXT J
710 NEXT I
720 PRINT USING "D,D";SPA(5),M1,M2
730 L=L+1
740 IF M2#4 THEN 800
750 PRINT USING 760;L
750 IMAGE #, "YOU GOT IT IN", 2D," GUESSES. PLAY ANOTHER GAME";
760 INPUT A$
770 INPUT A$
780 IF A$[I,I]="Y" THEN 280
790 STOP
800 IF L=19 THEN 1000
810 IF L#12 AND L#15 AND L#18 THEN 370
820 ENTER 2,I,A$
830 IF I=-256 THEN 410
840 PRINT
850 IF L=15 THEN 910
860 IF L=18 THEN 950
870 PRINT "YOU ARE OBVIOUSLY A BEGINNER. HERE'S A HINT."
880 PRINT USING 890;A[1]
890 IMAGE"THE FIRST DIGIT IS A ",D
900 GOTO 370
910 PRINT "I'M BEGINNGIN TO LOSE MY PATIENCE."
920 PRINT USING 930;A[1],A[2]
930 IMAGE"THE FIRST TWO DIGITS ARE ",D,D/"IF YOU CAN'T GET IT NOW, GIVE IT UP."
940 GOTO 370
950 PRINT "HERE'S AN IDEA. I'LL PRINT IT OUT."
950 PRINT "SEE IF YOU CAN TYPE IT BACK IN: ";
970 PRINT USING 980;A[1],A[2],A[3],A[4]
980 IMAGE D,D,D,D
890 GOTO 370
1000 PRINT "I QUOTE. GO PLAY SOME OTHER GAME. BETTER YET, LOG OFF."
1010 STOP
1020 END