我正在编写一个子手游戏,无法弄清楚如何解释长度不一的单词,而且我的代码似乎不起作用。
以下是步骤:
isEqual()
if (isEqual(grid[0][0], xORo) &&
isEqual(grid[0][1], xORo) &&
// etc.
答案 0 :(得分:2)
您需要遍历word
的整个长度,而不仅仅是6
个字母:
for i in range (0, len(word)):
不要将a
放在列表中,以获取所需的格式:
a = ['_']*len(word)
print(a) # ['_','_','_','_','_','_']
在循环中,您应该直接访问i
if word[i] == letter:
a[i] = letter
通过将字母列表连成一个字符串来检查游戏是否结束:
print(''.join(['h', 'i']) # 'hi'
if ''.join(a) == word:
如果他们赢了,break
会退出while循环:
print("You won. ")
break
对于样式,在输入提示后添加一个空格:
letter = input('Enter a letter: ')
此外,如果不使用guesses
变量,则将其删除。并且不要print(word)
(一旦完成调试)。
注意:这假设word
是一个字符串,而不是字符串列表。我相信这是一个更好的实现。
答案 1 :(得分:1)
一个工作示例:
word = "dead"
guesses = 0
turns = 11
a = ["_" for i in range(0,len(word))]
print(a)
print (word)
while turns > 0:
letter = input('Enter a letter:')
for i in range (0, len(word)):
if word[i] == letter:
a[i] = letter
print(a)
if "".join(a) == word:
print("You won.")
break
turns -= 1
答案 2 :(得分:0)
我同意@JBallin, 但不是
for i in range (0, len(word)):
您可以使用
for index,ch in enumerate(word):
其中索引是从0到单词的长度,而ch是字符本身