只有字母" t"会匹配。我无法收到任何其他信件。
如果我进入" t"在第一次尝试时,然后故意让接下来的4个字母错误,它将在7个回合之后结束。然而,如果我先输入任何其他字母,它将在4次错误转弯后结束,就像应该这样。
我的问题......
如何让它与self.word
索引中的其他字母匹配?
如果我输入" t"为什么它不遵守我在main方法中使用while循环设置的条件。在我的第一次尝试,并在此后得到其他所有字母错误?
class Hang():
def __init__(self):
self.turns = 0
self.word = ['t', 'h', 'i', 's']
self.empty = ["__", "__", "__", "__"]
self.wrong = []
def main(self):
while self.turns < 4:
for i in self.word:
choice = raw_input("Enter a letter a-z: ")
if choice == i:
index = self.word.index(i)
self.empty.pop(index)
self.empty.insert(index, i)
print self.empty
else:
print "Wrong"
self.wrong.append(choice)
print self.wrong
print self.empty
self.turns += 1
char1 = Hang()
char1.main()
答案 0 :(得分:0)
在刽子手的游戏中,您可以按任意顺序猜出短语中的任何字符。但是你使用for循环按顺序遍历每个角色,只有当玩家按顺序正确猜出角色时它才是正确的
试试这个
while self.turns < 4:
choice = raw_input("Enter a letter a-z: ")
# optional, if user enters more than a single letter
if len(choice) > 1:
print "invalid choice"
continue # loop again from start
index = self.word.index(choice)
if index != -1:
# -1 indicates character in not int the string
# so this block is only executed if character is
# in the string
self.empty[index] = choice # no need to pop, you can simply change the value of the list at a given index
else:
print "wrong"
self.turns += 1
print self.empty