| 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( |
| fn=number_guessing, inputs=input_area, outputs=output_area |
| ) |
| restart_btn.click( |
| fn=restart_game, inputs=None, outputs=output_area |
| ) |
|
|
| demo.launch() |
|
|