ASK

Syntax ASK ([#wind,] question$)
Location BTool

ASK is a function which prints the question$ (plus a question mark (?) if this was not found at the end of the string), enables the text cursor and reads the keyboard. If the next key pressed is <Y> (for Yes), <J> (for Ja) or <N> (for No or Nein) then ASK will disable the cursor, echo the key next to the prompt and return 1 if either <Y> or <J> was pressed, or 0 if <N> was pressed. If any other key is pressed, ASK will BEEP and try again.

Example

In early computer days, this was a classical game which needed a hundred lines on a (modern at the time) programmable pocket calculator:

100 CLS: x1 = 0: x2 = 100
110 PRINT "I am going to find out a number"
120 PRINT "from"!x1!"to"!x2!"which only you know."\\
130 REPeat find_out
140   PRINT x1;"..";x2
150   x = (x2+x1) DIV 2
160   ok = ASK("Is it "&x)
170   IF ok THEN EXIT find_out
180   IF x1 = x2 THEN PRINT "You are cheating.": STOP
190   large = ASK(x&" too large")
200   IF large THEN x2 = x-1: ELSE x1 = x+1
210 END REPeat find_out
220 PRINT "Yippee, I found it."

NOTE

ASK is set up for ‘yes’ and ‘no’ in English and ‘ja’ and ‘nein’ in German. For other languages where ‘yes’ is not usually connected with <Y>, eg. ‘oui’ in French or ‘si’ in Spanish, you will need to write your own routine.

CROSS-REFERENCE

CUR, REPLY.