Я пытаюсь написать функцию для теста Python, которая покажет следующий ключ (озаглавленный «вопрос») в словаре на основе действий пользователя.У меня уже есть функциональность, чтобы проверить правильность ответа, но я изо всех сил пытаюсь показать следующий ключ (вопрос).Я также даю пользователю 3 попытки решить вопрос, поэтому следующий вопрос не может быть отображен, если либо а) на вопрос не будет дан ответ, либо б) у него закончатся догадки.
Я играл с циклами for и while, но все, что я могу сделать, это повторять одно и то же снова и снова.Должен ли я использовать параметр диапазона или что-то еще ??
riddles=[]
with open("data/riddles.json") as riddles_file:
riddles = json.load(riddles_file)
def right_answer(answer, riddle):
return answer == riddle["answer"]
def next_question(riddles):
for riddle in riddles:
#run the first question. If question correct, run the next question.
app = Flask(__name__)
app.secret_key = 'some_secret'
@app.route('/<user>', methods = ['GET', 'POST'])
def quiz(user):
riddle = riddles[0]
#hard coded to show first question
max_guesses = 3
counter = 0
if request.method == "POST":
answer = request.form.get("answer")
while counter < max_guesses:
if right_answer(answer, riddle):
game_status[user] += 1
next_question(riddles)
return render_template("user.html", user=user, score=game_status[user], question=riddle["question"], message = "Correct. Well done!")
else:
counter += 1
guesses_left = max_guesses - counter
print("answer")
return render_template("user.html", user=user, score=game_status[user], question=riddle["question"], message = "This is wrong. Try again. Your remaining guesses are:", guesses = guesses_left, answer = answer)
return render_template("user.html", user=user, score=game_status[user], question=riddle["question"] )