Нужно создать код в Python. Даю много баллов. Программа загадывает рандомное число от 1 до 10, а так же должен быть цикл, который даёт 3 попытки, а еще по истечению 60 секунд, он завершает работу, и выводит что время вышло. Примерно так должно всё выглядеть:

Я загадал число от 1 до 10! У вас попыток: 3 [Запсукается таймер]
>>5
Меньше. Попробуйте ещё раз! У вас попыток: 2
>>3
Больше. Попробуйте ещё раз! У вас попыток: 1
[Проходит 60 секунд]
Время вышло :( Вы проиграли.​


Аноним: короче всё бы ничего, но тут есть одна проблема - а это либо параллелить процессы двух циклов, что очень муторная тема, либо ждать input() - второе я бы попробовал поискать под таким запросом: How to calculate timeout while python is waiting for input?
Аноним: Автор если ты ответишь то я попробую сделать
Аноним: Возможно понадобиться Python2
Аноним: Походу последний шанс библиотека signal
Аноним: В потоки, процессы и очереди - лезть на долго

Ответы

Ответ дал: trueberry17
2

Ответ: Уже поздно думаю ( да и ответили уже ) , но всё же мне скучно было, так что пх.. Если что-то будет непонятно - пиши, объясню что знаю

Python Code:

from random import randint

from time import time

answer = randint(1, 10)

attempts = 3

start_time = time()

print(f'Я загадал число от 1 до 10. Попробуй отгадать!\nНа всё это у вас 60 секунд и 3 попытки, действуйте!')

while start_time >= time() - 60 and attempts > 0:

   print(f'У вас попыток: {attempts}.')

   attempts -= 1

   user_input = input('>> ')

   if user_input.isdigit():

       if int(user_input) == answer:

           break

       else:

           print('Увы. Не повезло =(')

   else:

       print('Ошибка! Вы ввели не число.')

if user_input.isdigit():

   if int(user_input) == answer:

       print('Бинго! Вы угадали. Поздравляю!')

   elif attempts == 0 and int(user_input) != answer:

       print('У вас закончились попытки - вы проиграли.')

   else:

       print('У вас закончилось время - вы проиграли.')

else:

   print('Судьба решила подсказать вам что нужно вводить числа.. - вы проиграли.')

Приложения:

Аноним: "start_time >= time() - 60" - не плохая идея, лучше и не придумаешь
Аноним: Но правда он не прирвёт input()
p15: Прога должна еще больше или меньше говорить. Если захотите исправить - на свой ответ жалуетесь и дадут отредактировать по просьбе.
trueberry17: М-да, я слишком много ошибок делаю.. Извините
trueberry17: Отредактировать не могу, т.к. кнопки для жалобы не вижу, но тут надо просто вставить:
print('Меньше' if answer < int(user_input) else 'Больше')
после строки с print('Увы. Не повезло =(')
Вас заинтересует