Python: игра «Корова и бык»Python

Программы на Python
Ответить
Anonymous
 Python: игра «Корова и бык»

Сообщение Anonymous »

*В. Случайным образом сгенерируйте 4-значное число. Попросите пользователя угадать четырехзначное число. На каждую цифру, которую пользователь правильно угадал в правильном месте, у него приходится «корова». Для каждой цифры, которую пользователь угадал, число в неправильном месте — это «бык».

Каждый раз, когда пользователь загадывает, сообщайте ему, сколько у него «коров» и «быков». Как только пользователь угадает правильное число, игра заканчивается. Следите за количеством предположений, которые пользователь делает на протяжении всей игры, и сообщайте об этом пользователю в конце.*

**Проблема в том, что я создал программу, но она может генерировать любое четырехзначное число, и именно тогда возникает проблема. Например:

Сгенерированное число — 3568.

Пользователь вводит: 3266

Затем пользователь получает 2 коровы и 2 быка.

Но у пользователя нет возможности узнать, какие цифры в набранном им числе являются правильными.

Мне нужна функция, которая может сообщать пользователю числа, которые он угадал правильно.
В этом примере программа должна сообщить пользователю, что 3 и 6 являются правильными в следующих местах.**

import random

def compare_number(number, user_guess):
cowbull = [0, 0]
for i in range(len(number)):
if number == user_guess:
cowbull[1] += 1
else:
cowbull[0] += 1
return cowbull

if __name__ == "__main__":
playing = True
number = str(random.randint(1000, 10000))
guesses = 0

print("Let's Play A Game Of Cows And Bulls!")
print("I Will Generate A 4 Digit Number, And You Have To Guess The Numbers One Digit At A Time.")
print("For Every Number I The Wrong Place, You Get A Bull. For Every Number In The Right Place,
You Get A Cow.")
print("The Game Will End When You Get 4 Bulls.")
print("Type Exit At Any Prompt To Exit!")

while playing:
user_guess = input("Give Me The Best You Got!: ")
if user_guess.lower() == "exit":
break
cowbull_count = compare_number(number, user_guess)
guesses += 1
print(f"You Have {cowbull_count[1]} Cows, And {cowbull_count[0]} Bulls.")

if cowbull_count[1] == 4:
playing = False
print(f"You Win The Game After {guesses} Guess(es)!. The Number Was {number}.")
break
else:
print(f"Your Guess Isn't Quite Right, Tyr Again!.")


Подробнее здесь: https://stackoverflow.com/questions/615 ... -bull-game
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»