задание по phyton Задание: Игра в "Быки и коровы"
Описание задачи:
Вы создаете игру в "Быки и коровы". Это игра, в которой компьютер загадывает четырехзначное число, а игрок пытается угадать его. После каждой попытки компьютер сообщает, сколько быков и коров игрок получил.
Если игрок угадал цифру и ее позицию, это считается "быком". Если игрок угадал цифру, но не ее позицию, это считается "коровой".
Требования к программе:
1. Программа должна генерировать случайное четырехзначное число для каждой новой игры.
2. Игрок должен вводить свою догадку о загаданном числе.
3. Программа должна проверять, что введенное значение является четырехзначным числом.
4. Программа должна сообщать игроку, сколько быков и коров он получил после каждой попытки.
5. Программа должна завершаться, когда игрок угадывает загаданное число.
Дополнительные требования:
1. Программа должна использовать функции для логических операций, таких как проверка на четырёхзначность числа, вычисление быков и коров и т.д.
2. Программа должна предоставлять пользователю возможность начать новую игру или закончить текущую игру.
Відповідь:Привіт! Ось приклад реалізації гри в "Бики і Корови" за вказаними вимогами:
import random
def generate_number():
"""
Генерує випадкове чотиризначне число.
"""
digits = list(range(10))
random.shuffle(digits)
number = digits[:4]
return number
def validate_input(guess):
"""
Перевіряє, чи введено коректне чотиризначне число.
"""
if len(guess) != 4 or not guess.isdigit():
return False
return True
def count_bulls_and_cows(secret_number, guess):
"""
Порівнює загадане число з введеним і підраховує кількість "биків" і "корів".
"""
bulls = 0
cows = 0
for i in range(4):
if secret_number[i] == int(guess[i]):
bulls += 1
elif int(guess[i]) in secret_number:
cows += 1
return bulls, cows
def play_game():
"""
Запускає гру в "Бики і Корови".
"""
secret_number = generate_number()
attempts = 0
while True:
guess = input("Введіть вашу догадку (чотиризначне число): ")
if not validate_input(guess):
print("Некоректний ввід. Будь ласка, введіть чотиризначне число.")
continue
bulls, cows = count_bulls_and_cows(secret_number, guess)
attempts += 1
print(f"Бики: {bulls}, Корови: {cows}")
if bulls == 4:
print(f"Ви вгадали число '{''.join(map(str, secret_number))}' за {attempts} спроб!")
break
play_again = input("Бажаєте зіграти знову? (так/ні): ")
if play_again.lower() == "так":
play_game()
else:
print("Дякуємо за гру!")
# Запуск гри
play_game()
Ця програма генерує випадкове чотиризначне число, валідує введення користувача, порівнює числа та виводить кількість "биків" та "корів" після кожної спроби. Вона також надає можливість гравцю грати знову або закінчувати гру.
Будь ласка, зверніть увагу, що цей код є лише прикладом і може бути модифікований або розширений залежно від вашої специфікації та потреб.