python

您所在的位置:网站首页 python里面的列表 python

python

2022-12-28 05:07| 来源: 网络整理| 查看: 265

比较Python中的主列表 时间:2019-07-07 03:42:58

标签: python python-3.x

我正在尝试用python制作Mastermind游戏。其背后的想法是计算机会在1到6之间生成一个4位数代码。然后您将有很多猜测要弄清楚。如果在正确的位置获得正确的数字,您将得到x;在错误的位置获得正确的数字,您将得到o;如果没有正确的信息,您将不会获得任何收益。我现在拥有的代码大部分都可以使用,但是有一个问题。假设代码为[4,4,4,3],而猜测为[4,3,3,2],则输出将为[x,o,o,,](应为[x,o,, ,],它会读取3次两次)

import random length_of_password = (range(4)) number_of_guesses = (range(8)) code = [] # Generates random code for random_letter in length_of_password: code += str((random.randint(1, 6))) print(code) # Here just for testing # Takes guesses and compares them to the code for guesses in number_of_guesses: indicator = "" guess = list(input("Guess: ")) if guess == code: print("Congratulations, you won!") break for letter in length_of_password: if guess[letter] == code[letter]: print("x") elif guess[letter] in code: print("o") else: pass print(indicator)

此外,我尝试返回排序的指标,以便所有x都排在第一位,o排在第二位(这样他们就不知道哪个数字在正确的位置)奖励积分。

谢谢!

1 个答案:

答案 0 :(得分:0)

code=['4','4','4','3'] for guess in range(8): result=[] guess=list(input("Enter guess\n")) if guess==code: print('success') break code_copy=code.copy() for i in range(4): if guess[i]==code[i]: result.append('X') elif guess[i] in code_copy: result.append('O') for j in range(4): if code_copy[j]==guess[i]: code_copy[j]='7' break else: result.append('') print(result)

不是最巧妙的解决方案,但我尝试制作的是原始“代码”的副本,然后在管理“ 数字错误点”条件的If子句中,更改首先在副本中找到该数字到7。我选择7是因为您提到代码的数字在1-6范围内。

请注意,在第一个if条件中,我们必须对照原始代码而不是副本进行检查。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3