On 03/01/12 21:28, Steven D'Aprano wrote:

I assume you want to display something like this:

Enter your next move: 0:30

where the "0:30" is the time remaining, and is constantly updating. When
it hits zero, the function returns whether the user has typed anything
or not.

Assuming Steven has guessed right then I think you need to use one of the non blocking input mechanisms like kbhit() or getch() or somesuch.

Those methods are notioriously unreliable and OS specific. For example you may need to use curses or the Microsoft runtime module msvcrt.

The general code will look like

Display prompt
while no key hit
    sleep briefly
    update time in prompt
    (using ctrl characters to delete/overwrire previouis entry)
#when key hit
process input.

It is a non trivial problem and the details will depend on whether you use curses or the microsoft route.

It is one of those few cases that is actually much easier to do
in a GUI. GUIs generally make life more complex but in this case updating a label while awaiting user input is almost trivial
(for a GUI).

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to