def ask_question_gui(current_mode, question_label, choice_buttons_container, entry_container, answer_entry, submit_button, score_label, feedback_label, score, choice_buttons, choice_buttons_frame, entry_frame, options_frame):
    character, correct_reading = get_random_character(hiragana)

    def check_answer(option=None):
        user_input = (option if option else answer_entry.get()).strip()
        is_correct = user_input == correct_reading
        feedback_label.config(text="Correct!" if is_correct else f"Wrong! The correct reading is: '{correct_reading}'.", fg='green' if is_correct else 'red')
        nonlocal score
        score = update_score(score, is_correct, score_label)
        ask_question_gui(score, question_label, choice_buttons_frame, entry_frame, options_frame, feedback_label, submit_button)

    # Configure UI elements based on mode
    if current_mode.get() == 'multiple_choice':
        options = generate_options(correct_reading, hiragana, num_options=4)
        for button, option in zip(choice_buttons, options):
            button.config(text=option, command=lambda opt=option: check_answer(option=opt))
            button.pack(side=tk.LEFT)
        choice_buttons_frame.pack()
        entry_frame.pack_forget()
        submit_button.pack_forget()
    else:
        answer_entry.delete(0, tk.END)
        answer_entry.pack(side=tk.LEFT)
        submit_button.pack(side=tk.LEFT)
        submit_button.config(command=check_answer)
        entry_frame.pack()
        choice_buttons_frame.pack_forget()

    question_label.config(text=f"What is the reading for: {character}")

def set_mode(current_mode, question_label, mode_container, entry_container, choice_buttons_container, answer_entry, submit_button, score_label, feedback_label, score):
    # Clear the UI of both modes
    entry_container.pack_forget()
    for button in choice_buttons_container.winfo_children():
        button.pack_forget()
    
    # Clear answer field and feedback label
    answer_entry.delete(0, tk.END)
    feedback_label.config(text="")
    
    # Configure UI for the selected mode
    if current_mode.get() == 'multiple_choice':
        mode_container.config(text="Mode: Multiple Choice")
        choice_buttons_container.pack()
        submit_button.pack_forget()
    elif current_mode.get() == 'text_entry':
        mode_container.config(text="Mode: Text Entry")
        entry_container.pack()
        submit_button.pack(side=tk.RIGHT)

    # Start a new question
    ask_question_gui(current_mode, question_label, choice_buttons_container, entry_container, answer_entry, submit_button, score_label, feedback_label, score)

def main():
    root = tk.Tk()
    root.title("Hiragana Quiz")

    current_mode = tk.StringVar(value='multiple_choice')  # Initialize mode variable
    score = {'correct': 0, 'wrong': 0}  # Initial score
    
    # Define UI Elements here, including question_label, score_label, feedback_label, etc.

    # Mode label
    mode_label = tk.Label(root, text="", font=("Arial", 14))
    mode_label.pack()
    
    mode_frame = tk.Frame(root)
    mode_frame.pack()

    question_label = tk.Label(root, font=("Arial", 24))
    question_label.pack()

    choice_buttons_frame = tk.Frame(root)
    choice_buttons = [tk.Button(choice_buttons_frame, width=8) for _ in range(4)]  # Assuming 4 buttons for 4 options
    
    entry_frame = tk.Frame(root)
    answer_entry = tk.Entry(entry_frame)
    submit_button = tk.Button(entry_frame, text="Check Answer")
    
    feedback_label = tk.Label(root, font=("Arial", 14))
    feedback_label.pack()
    
    score_label = tk.Label(root, font=("Arial", 16))
    display_score(score_label, score)  # Set initial score display
    score_label.pack()

    # Add RadioButtons to mode_frame to switch between modes, with each RadioButton’s
    # command set to a lambda that calls set_mode with appropriate arguments
    for mode in ['multiple_choice', 'text_entry']:
        tk.Radiobutton(mode_frame, text=mode.replace("_", " ").capitalize(),
                       variable=current_mode, value=mode,
                       command=lambda m=mode: set_mode(
                           current_mode, question_label, mode_label, entry_frame,
                           choice_buttons_frame, answer_entry, submit_button,
                           score_label, feedback_label, score)).pack(side=tk.LEFT)

    # Start the quiz in the initial mode using set_mode
    set_mode(current_mode, question_label, mode_label, entry_frame,
             choice_buttons_frame, answer_entry, submit_button, score_label, feedback_label, score)

    root.mainloop()

main()


Doesn't work saying this:    
ask_question_gui(current_mode, question_label, choice_buttons_container, entry_container, answer_entry, submit_button, score_label, feedback_label, score)
TypeError: ask_question_gui() missing 4 required positional arguments: 'choice_buttons', 'choice_buttons_frame', 'entry_frame', and 'options_frame'

Can you help?