我的目标:
在Lingo的游戏中,有一个隐藏的单词,长五个字符。该 游戏的目的是通过猜测来找到这个词,并作为回报 收到两种线索:1)完全正确的字符, 关于身份和位置,以及2)角色 确实存在于这个词中,但却被置于错误之中 位置。编写一个可以玩Lingo的程序。使用方块 括号在1)和普通的意义上标记正确的字符 括号用于在2)
的意义上标记正确的字符
当前代码:
def lingo():
import random
words = ['pizza', 'motor', 'scary', 'motel', 'grill', 'steak', 'japan', 'prism', 'table']
word = random.choice(words)
print word
while True:
guess = raw_input("> ")
guess = list(guess.lower())
word = list(word)
for x in guess:
if x in word:
if x == word[word.index(x)]:
guess[guess.index(x)] = "[" + x + "]"
else:
guess[guess.index(x)] = "(" + x + ")"
print guess
lingo()
截至目前,如果单词共用一个共同的字母,则将该字母放在方括号中,无论它是否共享相同的位置。
示例:
正确:
- Word:Table
- 我的猜测:Cater
- 输出:C[a](t)(e)r
不正确的:
- Word:Japan
- 我的猜测:Ajpan
(注意a和j之间的切换,我是故意这样做的)。
- 输出:[A][j][p][a][n]
(应为(a)(j)[p][a][n]
)
答案 0 :(得分:6)
您的错误就在这一行:
if x == word[word.index(x)]:
始终为真,因为word[word.index(x)]
与x
相同。尝试将其更改为:
if x == word[guess.index(x)]:
答案 1 :(得分:3)
if x == word[word.index(x)]:
应为if x == word[guess.index(x)]: