要解决比较玩家输入和计算机输入的Mastermind不成功的问题,可以按照以下步骤进行:
import random
def generate_answer():
answer = []
for _ in range(4):
answer.append(random.randint(0, 9))
return answer
def get_player_input():
player_input = input("请输入4个数字(0-9之间):")
player_input_list = [int(num) for num in player_input]
return player_input_list
def compare_inputs(answer, player_input):
black_hints = 0 # 猜对数字和位置的个数
white_hints = 0 # 猜对数字但位置不对的个数
for i in range(len(answer)):
if player_input[i] == answer[i]:
black_hints += 1
elif player_input[i] in answer:
white_hints += 1
return black_hints, white_hints
def play_game():
answer = generate_answer()
max_attempts = 10
attempts = 0
while attempts < max_attempts:
player_input = get_player_input()
black_hints, white_hints = compare_inputs(answer, player_input)
attempts += 1
print("黑色提示:{},白色提示:{}".format(black_hints, white_hints))
if black_hints == 4:
print("恭喜你猜对了!答案是{}".format(answer))
break
if attempts == max_attempts:
print("很遗憾,你没有猜对。答案是{}".format(answer))
play_game()
这样,游戏就会生成一个随机答案,然后根据玩家的输入进行比较,并给出相应的提示,直到玩家猜对答案或达到最大猜测次数为止。