File size: 1,250 Bytes
e6f7cce
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ba80bce
 
 
e6f7cce
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import random as r
import gradio as gr

def generate_number():
    while True:
        num = [r.randint(1, 9)] + [r.randint(0, 9) for _ in range(3)]
        if len(set(num)) == 4:
            return ''.join(map(str, num))

def play_game(guess):
    secret_number = [int(i) for i in generated_number]
    guessed_number = [int(i) for i in guess]

    if len(set(guess)) != 4 or guess[0] == '0':
        return "Invalid input. Please enter a 4-digit number with non-repeating digits and the first digit not being 0."

    cow = sum(g == s for g, s in zip(guessed_number, secret_number))
    bull = sum(g in secret_number and g != s for g, s in zip(guessed_number, secret_number))

    if cow == 4:
        return "Congratulations! You won the game."
    else:
        return f"Bulls: {bull}\nCows: {cow}"

# Generate the secret number
generated_number = generate_number()

# Interface setup
input_text = gr.inputs.Textbox(label="Enter your guess (4-digit number)")
output_text = gr.outputs.Textbox()

iface = gr.Interface(fn=play_game, inputs=input_text, outputs=output_text, title="Bulls and Cows Game", layout="vertical",
                     description="Welcome to the Bulls and Cows game! Try to guess the secret 4-digit number.")

iface.launch()