import random import gradio as gr TARGET_NUMBER = 0 CURRENT_ATTEMPTS = 0 def reset_game_logic(): global TARGET_NUMBER, CURRENT_ATTEMPTS TARGET_NUMBER = random.randint(1, 100) CURRENT_ATTEMPTS = 0 def restart_game(): reset_game_logic() return "Game restarted! I've picked a new number" def number_guessing(guess_number): global CURRENT_ATTEMPTS guess = guess_number CURRENT_ATTEMPTS += 1 if guess.isdigit(): if int(guess) > 100: return "Please enter number below 100" if int(guess) < 0: return "Please enter number greater than 0" if int(guess) == TARGET_NUMBER: reset_game_logic() return "Congratulations! You guess it correct" if int(guess) < TARGET_NUMBER: return f"Attempt:{CURRENT_ATTEMPTS} Your guess is too low \nEnter your next guess: " return f"Attempt:{CURRENT_ATTEMPTS} Your guess is too high \nEnter your next guess: " return "Enter Integer only" reset_game_logic() with gr.Blocks(title="Day01 Number Guessing Game") as demo: gr.Markdown("## Number Guessing Game") gr.Markdown("### Guess a number between 1 and 100!") with gr.Row(): input_area = gr.Textbox(label="Enter your guess") output_area = gr.Textbox(label="Result") with gr.Row(): submit_btn = gr.Button("Submit", variant="primary") restart_btn = gr.Button("Restart", variant="stop") submit_btn.click( # pylint: disable=no-member fn=number_guessing, inputs=input_area, outputs=output_area ) restart_btn.click( # pylint: disable=no-member fn=restart_game, inputs=None, outputs=output_area ) demo.launch()