10  REM ***  HP TIME-SHARED BASIC PROGRAM LIBRARY  *********************
11  REM
12  REM         TWQUES:  MATHEMATICAL GAME OF TWENTY QUESTIONS
13  REM
14  REM         36130 (A801) REV A -- 7/71
15  REM
16  REM ***  CONTRIBUTED PROGRAM  **************************************
17  REM
100  Z=100
110  REM PROGRAM TO CHALLENGE STUDENTS TO GAME OF 20 QUESTIONS
120  REM AUTHOR: TIM AARONSON       DATE:2/25/71
130  DIM X$[8],R$[3]
140  T=30
150  A=1
160  B=Z
170  PRINT "    TWENTY QUESTIONS"
180  PRINT 
190  PRINT "I'M THINKING OF A NUMBER"
200  PRINT "BETWEEN "A"AND "B
210  PRINT "TRY TO GUESS MY NUMBER!!!!!!!"
220  PRINT 
230  PRINT "YOU MAY ASK ME IF MY NUMBER IS"
240  PRINT "GREATER OR LESS THAN OR EQUAL TO SOME NUMBER"
250  PRINT 
260  PRINT "TYPE IN > OR< OR = AND YOUR GUESS"
270  PRINT 
280  PRINT "FOR EXAMPLE, IF YOU THINK THAT "
290  PRINT "MY NUMBER IS GREATER THAN 73, YOU WOULD"
300  PRINT "TYPE  >73  (THEN HIT THE RETURN KEY)"
310  PRINT 
320  PRINT " UP, UP, AND AWAY..........."
330  PRINT 
340  R=INT((B-A)*RND(1)+A)
350  N=20
360  N=N-1
370  PRINT "YOUR GUESS"
380  X$[1,1]="*"
390  ENTER T,C,X$
400  GOSUB 670
410  PRINT TAB(L)"  ";
420  IF X$[1,1]="=" THEN 480
430  IF X$[1,1]="<" THEN 510
440  IF X$[1,1]=">" THEN 530
450  PRINT "YOU MUST USE '>', '<', OR '=' FOLLOWED BY YOUR GUESS"
460  PRINT 
470  GOTO 390
480  IF X#R THEN 570
490  PRINT "!!!!!!!  YOU GOT IT  !!!!!!!"
500  GOTO 620
510  IF X>R THEN 550
520  GOTO 570
530  IF X<R THEN 550
540  GOTO 570
550  PRINT "YES... YOU NOW HAVE "N"QUESTIONS LEFT"
560  GOTO 580
570  PRINT "NO...  YOU NOW HAVE "N"QUESTIONS LEFT"
580  IF N#0 THEN 360
590  PRINT "SORRY, BUT YOU DIDN'T BEAT THE MACHINE THIS TIME"
600  PRINT "MY NUMBER...? OH IT WAS "INT(R)
610  PRINT 
620  PRINT "DO YOU WANT ANOTHER TRY";
630  INPUT R$
640  IF R$[1,1]="Y" THEN 310
650  PRINT "SO LONG, AND THANKS FOR THE GAME"
660  GOTO 790
670  REM SUBPROGRAM TO CONVERT STRING TO NUMBER
680  DIM A$[10]
690  A$="0123456789"
700  X=0
710  L=LEN(X$)
720  FOR Y=2 TO L
730  FOR Z=1 TO 10
740  IF X$[Y,Y]=A$[Z,Z] THEN 760
750  NEXT Z
760  X=(Z-1)+X*10
770  NEXT Y
780  RETURN 
790  END 
