mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-21 19:42:24 +01:00
7f479b91f4
Signed-off-by: bedlam <dave@slackbuilds.org> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
117 lines
2.7 KiB
QBasic
117 lines
2.7 KiB
QBasic
1 RANDOMIZE
|
|
5 PRINT TAB(33);"BAGELS"
|
|
10 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
|
|
12 PRINT TAB(10);"ECMA-55 PORT BY. B. WATSON, URCHLAY AT SLACKWARE.UK"
|
|
14 PRINT
|
|
16 PRINT
|
|
20 REM *** BAGELS NUMBER GUESSING GAME
|
|
22 REM *** ORIGINAL SOURCE UNKNOWN BUT SUSPECTED TO BE
|
|
25 REM *** LAWRENCE HALL OF SCIENCE, U.C. BERKELEY
|
|
29 REM A = ACTUAL ANSWER, G = USER'S GUESS
|
|
30 DIM A(3),G(3)
|
|
40 LET Y=0
|
|
50 PRINT
|
|
55 PRINT
|
|
60 PRINT
|
|
70 PRINT "WOULD YOU LIKE THE RULES (1=YES, 0=NO)";
|
|
80 INPUT N
|
|
90 IF N=0 THEN 150
|
|
100 PRINT
|
|
105 PRINT "I AM THINKING OF A THREE-DIGIT NUMBER. TRY TO GUESS"
|
|
110 PRINT "MY NUMBER AND I WILL GIVE YOU CLUES AS FOLLOWS:"
|
|
120 PRINT " PICO - ONE DIGIT CORRECT BUT IN THE WRONG POSITION"
|
|
130 PRINT " FERMI - ONE DIGIT CORRECT AND IN THE RIGHT POSITION"
|
|
140 PRINT " BAGELS - NO DIGITS CORRECT"
|
|
150 FOR I=1 TO 3
|
|
160 LET A(I)=INT(10*RND)
|
|
165 IF I-1=0 THEN 200
|
|
170 FOR J=1 TO I-1
|
|
180 IF A(I)=A(J) THEN 160
|
|
190 NEXT J
|
|
200 NEXT I
|
|
210 PRINT
|
|
215 PRINT "O.K. I HAVE A NUMBER IN MIND."
|
|
220 FOR I=1 TO 20
|
|
230 PRINT "GUESS #";I,
|
|
240 INPUT N
|
|
243 IF N>=1000 THEN 247
|
|
245 IF N<0 THEN 247
|
|
246 GOTO 250
|
|
247 GOSUB 630
|
|
248 GOTO 230
|
|
250 LET G(1)=INT(N/100)
|
|
260 LET G(2)=INT((N-G(1)*100)/10)
|
|
270 LET G(3)=N-(G(1)*100+G(2)*10)
|
|
290 REM UNCOMMENT NEXT LINE FOR DEBUGGING
|
|
300 REM GOSUB 800
|
|
320 LET F=0
|
|
322 IF G(1)<>G(2) THEN 330
|
|
325 LET F=1
|
|
330 IF G(2)<>G(3) THEN 340
|
|
335 LET F=1
|
|
340 IF G(3)<>G(1) THEN 345
|
|
342 LET F=1
|
|
345 IF F=0 THEN 350
|
|
347 GOSUB 650
|
|
349 GOTO 230
|
|
350 LET C=0
|
|
355 LET D=0
|
|
360 FOR J=1 TO 2
|
|
370 IF A(J)<>G(J+1) THEN 390
|
|
380 LET C=C+1
|
|
390 IF A(J+1)<>G(J) THEN 410
|
|
400 LET C=C+1
|
|
410 NEXT J
|
|
420 IF A(1)<>G(3) THEN 440
|
|
430 LET C=C+1
|
|
440 IF A(3)<>G(1) THEN 460
|
|
450 LET C=C+1
|
|
460 FOR J=1 TO 3
|
|
470 IF A(J)<>G(J) THEN 490
|
|
480 LET D=D+1
|
|
490 NEXT J
|
|
500 IF D=3 THEN 680
|
|
505 IF C=0 THEN 545
|
|
520 FOR J=1 TO C
|
|
530 PRINT "PICO ";
|
|
540 NEXT J
|
|
545 IF D=0 THEN 580
|
|
550 FOR J=1 TO D
|
|
560 PRINT "FERMI ";
|
|
570 NEXT J
|
|
580 IF C+D<>0 THEN 600
|
|
590 PRINT "BAGELS";
|
|
600 PRINT
|
|
605 NEXT I
|
|
610 PRINT "OH WELL."
|
|
612 PRINT "THAT'S TWENTY GUESSES. MY NUMBER WAS";100*A(1)+10*A(2)+A(3)
|
|
614 LET N=100*A(1)+10*A(2)+A(3)
|
|
615 IF N>=100 THEN 620
|
|
617 PRINT "0";
|
|
618 IF N>=10 THEN 620
|
|
619 PRINT "0";
|
|
620 PRINT N
|
|
622 GOTO 700
|
|
630 PRINT "TRY GUESSING A THREE-DIGIT NUMBER."
|
|
635 RETURN
|
|
650 PRINT "OH, I FORGOT TO TELL YOU THAT THE NUMBER I HAVE IN MIND"
|
|
660 PRINT "HAS NO TWO DIGITS THE SAME."
|
|
670 RETURN
|
|
680 PRINT "YOU GOT IT!!!"
|
|
685 PRINT
|
|
690 LET Y=Y+1
|
|
700 PRINT "PLAY AGAIN (1=YES, 0=NO)";
|
|
710 INPUT N
|
|
720 IF N<>0 THEN 150
|
|
730 IF Y=0 THEN 750
|
|
740 PRINT
|
|
745 PRINT "A";Y;"POINT BAGELS BUFF!!"
|
|
750 PRINT "HOPE YOU HAD FUN. BYE."
|
|
760 GOTO 999
|
|
799 REM CHEAT/DEBUG MODE. UNCOMMENT LINE 300 TO ACTIVATE THIS CODE
|
|
800 PRINT "GUESS","ANSWER"
|
|
805 FOR X=1 TO 3
|
|
810 PRINT G(X),A(X)
|
|
820 NEXT X
|
|
830 RETURN
|
|
999 END
|