Безумная минута. Как заставить цикл выйти по истечении срока?Python

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Безумная минута. Как заставить цикл выйти по истечении срока?

Сообщение Гость »

Код работает хорошо... если я его завершу, но нет, если нет. Мне нужно, чтобы цикл завершился, когда истечет время, и я не ответил на все вопросы, как в стандартном тесте.

Код: Выделить всё

The Mad Minute
[A] Randomly generate a bunch of different math questions
[B] User cannot continue a question until the correct answer has been made
[C] User have 60 seconds to solve 10 math problems
[D] Add 1 second to the final time for every wrong answer

import random
import time

OPERATORS = ["+", "-", "*"]
MIN_OPERAND = 3
MAX_OPERAND = 9
TOTAL_PROBLEMS = 5

def generateProblem():
left = random.randint(MIN_OPERAND, MAX_OPERAND)
right = random.randint(MIN_OPERAND, MAX_OPERAND)
operator = random.choice(OPERATORS)

expression = f"{left} {operator} {right}"
answer = eval(expression)
return expression, answer

incorrectAnswer = 0
input("Press enter to start!")
print("---------------------")

startTime = time.time()
loop = 0

while time.time() - startTime < 60 and loop < TOTAL_PROBLEMS:
for i in range(TOTAL_PROBLEMS):
expression, answer = generateProblem()
while True:
userInput = input("Problem #" + str(i + 1) + ": " + expression + " = ")
if userInput == str(answer):
loop += 1
break
incorrectAnswer += 1
print("Time's up!")
# Add any incorrect answer penalization to the total time
endTime = time.time()
totalTime = endTime - startTime
totalTime = "{:.2f}".format(totalTime)

finalTime = float(totalTime) + incorrectAnswer
print("---------------------")

print("You completed The Mad Minute in", totalTime, "seconds with", incorrectAnswer, "incorrect answers! Your final time is", finalTime)

Я временно установил 5 вопросов за 5 секунд, потому что отвечать на 30 из 60 только для тестирования утомительно. Я также установил таймер на 5, чтобы гарантировать завершение цикла, если я просто стою возле первого вопроса, однако это ничего не делает. Я добавил переменную цикла, надеясь, что она выполнит условие в цикле while для выхода, но меня выгнали за то, что я медленно отвечал на вопросы.

Подробнее здесь: https://stackoverflow.com/questions/781 ... en-reached
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»