#python #таймер
У меня есть приложение для игры в камень-ножницы-бумага. Для выбора своей фигуры игроку дается 10 секунд, которые отсчитываются в следующем цикле. Мне нужно прервать цикл когда игрок выбрал фигуру, или если по истечении времени он этого не сделал — засчитать поражение. Как мне отловить ввод? Или может есть вариант лучше? import time global x; for i in range(10, 0, -1): time.sleep(1)
Ответы
Ответ 1
Вы можете использовать select: import sys, select timeout = 10 i, o, e = select.select( [sys.stdin], [], [], timeout) if (i): print("Вы ввели", sys.stdin.readline()) else: print("Вы ничего не ввели") select будет ожидать ввод из sys.stdin, а когда он последует завершит свою работу. После чего мы из stdin и прочитаем то, что туда ввели.Ответ 2
import queue x = queue.Queue(maxsize=1) try: i = x.get(timeout=10) print('выбор', i) except queue.Empty: print('поражение')
Комментариев нет:
Отправить комментарий