[英]wxPython/TextCtrl replacing a character within the first x lines of a string
[英]Replacing character within a string
我正在尝试创建一个刽子手游戏,但是我不确定每次用户选择正确答案时如何更新显示的单词。 我正在将 tkinter 用于按钮和框。
一个例子:
这个词是代码。
用户会看到_ _ _ _
用户猜测D
。
我希望程序将_ _ _ _
更新为_ _ D _
#replacing word
word_spaces = (" ".join(word))
word_miss = word_spaces.replace(word_spaces, " _ " * word_length)
word_list = ([word_spaces])
#Word Box
box = Label(window, text= word_miss, font= ("none", 50), bg= "black", fg= "white")
box.grid(row= 0, column = 1, columnspan= 9)
#Not sure about this part here:
def button_click(letter):
if letter not in word:
print("Not in word")
#Add to letters guess
#Tries -1
elif letter in word:
print("Letter in word")
box.config(text= )
#Add to letters guess
else:
print("Why is this here")
有很多方法可以解决这个问题,但这里是我马上想到的。
做一组猜出的字母:
guessed_letters = set()
当用户猜出一个字母时,将其添加到该集合中:
guessed_letters.add(user_input_letter)
然后,让它使用该集合生成您想要显示的字符串:
work = ""
for i in word:
work += " "
if i in guessed_letters:
work += i
else:
work += "_"
work += " "
box.config(text = work)
集合很好,因为它们可以保持事物并且可以在很少的计算时间内添加、删除和访问它们,但是它们不跟踪它们添加的顺序并且项目只能添加一次(也就是说,它确实不跟踪重复。)如果您想要这些东西,请改用列表:
guessed_letters = []
和
guessed_letters.append(user_input_letter)
或者,你知道,因为它总是字母,你可以只使用一个字符串:
guessed_letters = ""
...
guessed_letters += user_input_letter
还有其他方法可以处理这一切,就像我说的那样,所以如果这不适合您,请告诉我们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.