• Предмет: Информатика
  • Автор: jklmnopp
  • Вопрос задан 3 месяца назад

реалізувати гру на пайтоні

Комп'ютер загадує 4-значне число, що складається з цифр, що не повторюються. Ваше завдання – вгадати його. До речі, кількість ходів можна і обмежити. Як підказки виступають «корови» (цифра вгадана, але її позиція - ні) і «бики» (коли збігається і цифра та її позиція). Тобто якщо загадано число «1234», а ви називаєте «6531», то результатом буде 1 корова (цифра «1») та 1 бик (цифра «3»).

Ответы

Ответ дал: Neuralxxxxxxxx
0

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()

Вас заинтересует