реалізувати гру на пайтоні
Комп'ютер загадує 4-значне число, що складається з цифр, що не повторюються. Ваше завдання – вгадати його. До речі, кількість ходів можна і обмежити. Як підказки виступають «корови» (цифра вгадана, але її позиція - ні) і «бики» (коли збігається і цифра та її позиція). Тобто якщо загадано число «1234», а ви називаєте «6531», то результатом буде 1 корова (цифра «1») та 1 бик (цифра «3»).
Ответы
import random
def generate_number():
""" Generate a 4-digit number with unique digits. """
digits = random.sample(range(10), 4)
return ''.join(map(str, digits))
def count_bulls_cows(number, guess):
""" Count how many bulls and cows are in the guess. """
bulls = sum([a == b for a, b in zip(number, guess)])
cows = sum([a in number for a in guess]) - bulls
return bulls, cows
def game():
number = generate_number()
attempts = 10
print("Добро пожаловать в игру 'Быки и Коровы'!")
print("Попробуйте угадать 4-значное число с уникальными цифрами.")
print(f"У вас есть {attempts} попыток.\n")
while attempts > 0:
guess = input("Введите вашу догадку: ")
if not guess.isdigit() or len(guess) != 4 or len(set(guess)) != 4:
print("Некорректный ввод. Пожалуйста, введите 4-значное число с различными цифрами.")
continue
bulls, cows = count_bulls_cows(number, guess)
print(f"{bulls} быков, {cows} коров.")
if bulls == 4:
print(f"Поздравляем! Вы угадали число {number}.")
break
attempts -= 1
if attempts > 0:
print(f"Осталось попыток: {attempts}")
else:
print(f"Игра окончена. Загаданное число было: {number}.")
game()