М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
laisysergant2002
laisysergant2002
17.09.2022 20:02 •  Информатика

задание по phyton Задание: Игра в "Быки и коровы"
Описание задачи:
Вы создаете игру в "Быки и коровы". Это игра, в которой компьютер загадывает четырехзначное число, а игрок пытается угадать его. После каждой попытки компьютер сообщает, сколько быков и коров игрок получил.
Если игрок угадал цифру и ее позицию, это считается "быком". Если игрок угадал цифру, но не ее позицию, это считается "коровой".
Требования к программе:
1. Программа должна генерировать случайное четырехзначное число для каждой новой игры.
2. Игрок должен вводить свою догадку о загаданном числе.
3. Программа должна проверять, что введенное значение является четырехзначным числом.
4. Программа должна сообщать игроку, сколько быков и коров он получил после каждой попытки.
5. Программа должна завершаться, когда игрок угадывает загаданное число.
Дополнительные требования:
1. Программа должна использовать функции для логических операций, таких как проверка на четырёхзначность числа, вычисление быков и коров и т.д.
2. Программа должна предоставлять пользователю возможность начать новую игру или закончить текущую игру.

👇
Ответ:
Dhonsina
Dhonsina
17.09.2022

Відповідь:Привіт! Ось приклад реалізації гри в "Бики і Корови" за вказаними вимогами:

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

Ця програма генерує випадкове чотиризначне число, валідує введення користувача, порівнює числа та виводить кількість "биків" та "корів" після кожної спроби. Вона також надає можливість гравцю грати знову або закінчувати гру.

Будь ласка, зверніть увагу, що цей код є лише прикладом і може бути модифікований або розширений залежно від вашої специфікації та потреб.

4,5(73 оценок)
Открыть все ответы
Ответ:
danikmy12
danikmy12
17.09.2022

---PascalABC.NET 3.6.2 ---

begin

 //Создадим переменную A типа List<integer>, задав в конструкторе ёмкость в 20 элементов;

 var A : List<integer> := New List<integer>(20);  

 A.AddRange(SeqGen(A.Capacity, p -> Random(-10, 10))); //Запишем в наш List последовательность, длина которой равна List<T>.Capacity, и каждый элемент в которой генерируется случайно в диапазоне [-10; 10]

 A.Println; //Распечатаем в консоль содержимое A

end.

Объяснение:

Заместо стандартного паскалевского массива использован класс List<T> библиотеки .NET Framework, являющийся аналогом обычного массива, но имеющий большее число методов для работы с ним.

А вообще, программа может быть написана в 1 строку:

begin

 ArrRandom(20, -10, 10).Println;

end.

4,5(96 оценок)
Ответ:
shornikauvladi
shornikauvladi
17.09.2022

---PascalABC.NET 3.6.2 ---

begin

 //Создадим переменную A типа List<integer>, задав в конструкторе ёмкость в 20 элементов;

 var A : List<integer> := New List<integer>(20);  

 A.AddRange(SeqGen(A.Capacity, p -> Random(-10, 10))); //Запишем в наш List последовательность, длина которой равна List<T>.Capacity, и каждый элемент в которой генерируется случайно в диапазоне [-10; 10]

 A.Println; //Распечатаем в консоль содержимое A

end.

Объяснение:

Заместо стандартного паскалевского массива использован класс List<T> библиотеки .NET Framework, являющийся аналогом обычного массива, но имеющий большее число методов для работы с ним.

А вообще, программа может быть написана в 1 строку:

begin

 ArrRandom(20, -10, 10).Println;

end.

4,4(12 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ