Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions cows-and-bulls-game/cows_and_bulls.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import random

def generate_secret_number(length=4):
"""Generates a secret number with the given length."""
return ''.join(str(random.randint(0, 9)) for _ in range(length))

def get_guess():
"""Prompts the player to make a guess."""
return input("Enter your guess: ")

def calculate_cows_and_bulls(secret, guess):
"""Calculates the number of cows and bulls for the guess."""
cows = sum(s == g for s, g in zip(secret, guess))
bulls = sum(s != g and g in secret for s, g in zip(secret, guess))
return cows, bulls

def play_game():
"""Main function to play the game."""
secret_number = generate_secret_number()
attempts = 0

while True:
guess = get_guess()
if guess == secret_number:
print(f"Congratulations! You guessed the number in {attempts} attempts.")
break
else:
cows, bulls = calculate_cows_and_bulls(secret_number, guess)
print(f"{cows} Cows, {bulls} Bulls")
attempts += 1

if __name__ == "__main__":
play_game()
print("Script completed successfully, no errors.")