游戏设置10道随机个位数的乘法题 每题3次作答机会 8秒作答时间 规定要求内正确作答记一分 否则不得分(均在pycharm内测试完毕)
方法1 使用pyinputplus库
import pyinputplus as pyip
import random,time
numberOfQuestions = 10
correctAnswers = 0
for questionNumber in range(1,numberOfQuestions+1):
num1 = random.randint(0,9)
num2 = random.randint(0,9)
prompt = '#%s: %s x %s = '%(questionNumber,num1,num2)
try:
pyip.inputStr(prompt,allowRegexes=['^%s$'%(num1*num2)],blockRegexes=[('.*','Incorrect!')],timeout=8,limit=3)
except pyip.TimeoutException:
print('Out of time!')
except pyip.RetryLimitException:
print('Out of tries!')
else:
print('Correct!')
correctAnswers += 1
time.sleep(1)
print('Score:%s / %s'%(correctAnswers,numberOfQuestions))
方法2 纯手写逻辑
import random,time
numberOfQuestions = 10
correctAnswers = 0
for questionNumber in range(1,numberOfQuestions+1):
num1 = random.randint(0,9)
num2 = random.randint(0,9)
limit=3
limit2=limit
timeout=8
correcta = num1*num2
print('#%s: %s x %s = ' % (questionNumber, num1, num2))
starttime = time.time()
for change in range(limit2):
users = int(input())
if users == correcta:
endtime = time.time()
if endtime - starttime >= 8:
print('Out of time!')
break
else:
print('Correct!')
correctAnswers += 1
break
else:
endtime = time.time()
if endtime - starttime >= 8:
print('Out of time!')
break
else:
limit -= 1
if limit != 0:
print('''Your answer is wrong, please try again!
You have %s more chances!
''' % (limit))
if limit == 0:
print('Out of tries!')
break
print()
print('Scores: %s / %s' % (correctAnswers, numberOfQuestions))