Форум сайта python.su
Всем привет !
Задача была такая у нас )
Создайте программу, которая будет играть в игру “Лев и гиена” с пользователем.
Игра работает следующим образом:
Компьютер случайным образом генерирует 4-значное число. Попросите пользователя угадать 4-значное число. Для каждой цифры, которую пользователь угадал правильно в правильном месте, у них есть “лев”. За каждую цифру, которую пользователь угадал правильно, в неправильном месте стоит “гиена”.“Каждый раз, когда пользователь делает предположение, скажите ему, сколько” коров” и “быков” у них есть. Как только пользователь угадает правильный номер, игра окончена.
Следите за количеством догадок, которые пользователь делает на протяжении всей игры, и сообщите пользователю в конце.
Допустим, число, сгенерированное компьютером, равно 1038. Пример взаимодействия может выглядеть так:
Примеер : Welcome to the Cows and Bulls Game!
Enter a number:
>>> 1234
2 cows, 0 bulls
>>> 1256
1 cow, 1 bull
…
>>> 1038
Congratulations! You guessed the number in 5 attempts.
import random def num_checker(guess_num,answer): guess_num=list(str(guess_num)) ans=list(str(answer)) cow=0 bull=0 for a in range(0,4): if guess_num[a]==ans[a]: bull+=1 ans[a]=10 guess_num[a]=20 for a in range(0,4): for b in range (0,4): if guess_num[a]==ans[b]: cow+=1 ans[b]=30 break final=[bull,cow] return final #.................................................. ans=random.randrange(1000,10000) print("this is the program to gues a four digit number") while True: print("just for reference answer is:",ans) num_typed=int(input("please guess a four digit the number?\n ")) reply=num_checker(num_typed,ans) if reply==[4,0]: print("correct") print(reply[0],"bull",reply[1],"cows and the ans is",ans) break else: print(reply[0],"bulls",reply[1],"cows")
import random def num_checker(guess, answer): bulls = sum(guess[i] == answer[i] for i in range(len(answer))) cows = sum(guess[i] in answer and guess[i] != answer[i] for i in range(len(answer))) return bulls, cows def get_valid_random(size): digits = "" while len(digits) < size: digit = random.choice("0123456789") if not digit in digits: digits += digit return digits answer = get_valid_random(4) while True: guess = input("Enter number with four different digits: ") bulls, cows = num_checker(guess, answer) if bulls == 4: print("Correct") break else: print(f"You got {bulls} bulls and {cows} cows")
Отредактировано Vadimqa (Ноя. 21, 2019 18:52:23)
Офлайн