一旦玩家有三个错误的问题,我的游戏就会继续而不是停止,一旦错误回答了三个问题,我将添加/更改使程序停止的内容。我在程序中加入了while循环,我做得不好吗?
UITableView
如果回答了3个问题而不是停止,游戏将继续。我的测验中包含20个问题,但我已附上4个问题,因此您可以更好地看到问题。非常感谢您的提前帮助。
答案 0 :(得分:0)
这是有效的完整代码:
from time import sleep
# List that saves questions and answers as in: (question, options, answer)
QUESTIONS = [
("1. What is Brisbanes AFL team called?", " a. Brisbane Tigers \n b. Brisbane Lions \n c. Brisbane Broncos \n d. Brisbane Magpies", "B"),
("2. What sport did Greg Inglis play", " a. rugby league \n b. rugby union \n c. AFL \n d. Soccer", "A"),
("3. Where were the 2018 Commonwealth Games held?", " a. Sunshine Coast \n b. Melbourne \n c. Brsbane\n d. Gold coast", "D"),
("4. How many players in a netball team can shoot?", " a. 1 \n b. 2 \n c. 3\n d. 4", "B")
]
print("Note: you must answer using A, B, C or D")
name = input("What is your name? ")
print(f"Hello {name}. Good Luck.")
def answer_question(question, options, correct_answer):
""" Returns True if the input is correct; False, otherwise"""
print(question)
print(options)
answer = input("> ")
if answer.upper() == correct_answer:
print("Correct!")
return True
print("Incorrect.")
return False
def start_quiz():
"""
Start quiz with full lives.
Returns True when the game is over, if either the user won or it
does not want to keep playing; returns False otherwise.
"""
lives = 3
print(f"You have {lives} lives.")
##is the player ready to start
while True:
play = input("Would you like to start? (Type Y for yes and N for no) ")
if play.upper() == "Y":
sleep (1.0)
print("Starting in...")
sleep (1.0)
print("3")
sleep(1.0)
print("2")
sleep(1.0)
print("1")
break
##3, 2, 1 countdown added wk.4 friday
elif play.upper() == "N":
print (f"Goodbye, {name}!")
return True
print ("That is not an answer.\n")
for question, options, answer in QUESTIONS:
if not answer_question(question, options, answer):
lives=lives-1
if lives == 0:
print("You are out of lives!\nGAME OVER\n")
return False
print(f"{name}, you have answered all questions correctly.\nCONGRATULATIONS!\n")
return True
# Runs the quiz until someone wins or the user is not ready
while True:
result = start_quiz()
if result:
break
我将您的问题和答案保存在列表中,就像您只是遍历列表一样,您不必为每个问题重复代码(带有打印件和生活检查)。
如果您还有其他问题,请不要犹豫!