

Task

Obtain a valid   Y   or   N   response from the keyboard.

The keyboard should be flushed, so that any outstanding key-presses are removed, preventing any existing   Y   or   N   key-press from being evaluated.

The response should be obtained as soon as   Y   or   N   are pressed, and there should be no need to press an   enter   key.




procedure main()
    write("Response was ",getResponse("OK? (Y or N): "))
end 
 
procedure getResponse(prompt)
    while kbhit() do getch()   # flush input
    writes(prompt)
    repeat if map(answer := getch()) == ("y"|"n") then break
    return answer
end