def riddle_game(user_name, riddle_profile_name, data):
    questions = helper.read_json(
        helper.questions(user_name, riddle_profile_name))
    profile = helper.read_json(helper.profile(user_name, riddle_profile_name))

    # Format both user as well as correct answer
    user_answer = string_format(data["data"])
    correct_answer = string_format(questions["questions"][0]["answer"])

    if user_answer == correct_answer:
        profile["game"][0]["right_answers"] += 1
        profile["game"][0]["remaining_questions"] -= 1
        profile["game"][0]["result"] = "Correct"
        questions["questions"].pop(0)
        if len(questions["questions"]) > 0:
            profile["game"][0]["question"] = pick_question(questions)
        else:
            profile = end_game(user_name, riddle_profile_name, profile)
        helper.write_to_json(helper.questions(
            user_name, riddle_profile_name), "w", questions)
        helper.write_to_json(helper.profile(
            user_name, riddle_profile_name), "w", profile)
        return profile
    else:
        profile["game"][0]["result"] = "Wrong"
        profile["game"][0]["wrong_answers"] += 1
        if profile["game"][0]["tries"] > 0 and profile["game"][0]["mods"] == "limited":
            profile["game"][0]["tries"] -= 1
            if profile["game"][0]["tries"] == 0:
                profile = end_game(user_name, riddle_profile_name, profile)

        helper.write_to_json(helper.profile(
            user_name, riddle_profile_name), "w", profile)
        return profile
def skip_question(user_name, riddle_profile_name):
    questions = helper.read_json(
        helper.questions(user_name, riddle_profile_name))
    profile = helper.read_json(
        helper.profile(user_name, riddle_profile_name))
    if len(questions["questions"]) == 1:
        return profile
    skipped_question = questions["questions"].pop(0)
    questions["questions"].append(skipped_question)

    profile["game"][0]["question"] = pick_question(questions)
    profile["game"][0]["skipped_questions"] += 1
    helper.write_to_json(helper.profile(
        user_name, riddle_profile_name), "w", profile)
    helper.write_to_json(helper.questions(
        user_name, riddle_profile_name), "w", questions)
    return profile
def delete_question(user_name, riddle_profile_name):
    questions = helper.read_json(
        helper.questions(user_name, riddle_profile_name))
    profile = helper.read_json(helper.profile(user_name, riddle_profile_name))
    profile["game"][0]["deleted_questions"] += 1
    questions["questions"].pop(0)
    profile["game"][0]["remaining_questions"] = len(questions["questions"])

    if len(questions["questions"]) > 0:
        profile["game"][0]["question"] = pick_question(questions)
    else:
        profile = end_game(user_name, riddle_profile_name, profile)

    helper.write_to_json(helper.profile(
            user_name, riddle_profile_name), "w", profile)
    helper.write_to_json(helper.questions(
        user_name, riddle_profile_name), "w", questions)
    return profile
def parse_answer(user_name, riddle_profile):
    # Main POST request for riddle-game
    if request.method == "POST":
        post_data = request.get_json(force=True)
        if post_data["id"] == "answer":
            data = riddle.riddle_game(user_name, riddle_profile, post_data)
            return jsonify(data)
        elif post_data["id"] == "skip_question":
            data = riddle.skip_question(user_name, riddle_profile)
            return jsonify(data)
        else:
            data = riddle.delete_question(user_name, riddle_profile)
            return jsonify(data)
    data = helper.read_json(helper.profile(user_name, riddle_profile))
    return jsonify(data)
def create_riddle_game(data):
    user_name = data["riddle_game_data"]["id"]
    riddle_profile_name = data["riddle_game_data"]["riddle_profile_name"]
    game_profile = create_game_profile(data, user_name, riddle_profile_name)
    questions = create_questions_file(
        game_profile, user_name, riddle_profile_name)
    game_profile["game"][0]["questions_in_total"] = len(
        questions["questions"])
    game_profile["game"][0]["remaining_questions"] = game_profile["game"][0]["questions_in_total"]
    # Write data
    helper.write_to_txt(f"data/riddle-game/all-players.txt",
                        "a", f"{riddle_profile_name}" + '\n')
    helper.write_to_txt(f"data/profiles/{user_name}/riddle_game/riddle_profiles.txt",
                        "a", f"{riddle_profile_name}" + '\n')
    helper.write_to_json(helper.profile(
        user_name, riddle_profile_name), "w", game_profile)
    helper.write_to_json(helper.questions(
        user_name, riddle_profile_name), "w", questions)
    return jsonify(game_profile)
def get_results(user_name, riddle_profile):
    if 'user' in session:
        if user_name == session['user']['user_name']:
            riddle_profiles = helper.read_txt(
                f"data/profiles/{user_name}/riddle_game/riddle_profiles.txt")
            profile = helper.read_json(
                helper.profile(user_name, riddle_profile))
            profile = profile["game"][0]
            if profile["mods"] == "limited":
                return render_template("riddle-game.html",
                                       user_name=user_name,
                                       riddle_profiles=riddle_profiles,
                                       riddle_profile=riddle_profile,
                                       tries=int(profile["tries"]),
                                       page_title="Riddle Game")
            else:
                # Render riddle-game template by default
                return render_template("riddle-game.html",
                                       user_name=user_name,
                                       riddle_profiles=riddle_profiles,
                                       riddle_profile=riddle_profile,
                                       tries=int(0),
                                       page_title="Riddle Game")
    return redirect(url_for('index'))