试图在Python中创建电视游戏节目“Lingo”。Python-替换字符串上特定位置的所有出现的字符
在游戏中,玩家试图猜测一个五个字母的单词。他们从我随机猜测一个五个字母的单词开始。然后游戏板会亮起来,显示他们猜测的单词与实际单词的匹配程度。
例如,如果真正的单词是“峡谷”,玩家猜测“鹰” - 董事会将显示'e'和'g'是真实的单词,但它们不在正确的关于真正的单词“峡谷”的位置。 (g的值在[0]和[3]索引中,而老鹰则在[2]索引中)。
如果这个词是“开心”,而用户猜到“harpy”,董事会将显示三个字母是真实的字,并且他们被正确定位。 (干草)。
在Python实现中,我强调一个字母是正确的,但是在错误的位置上有一个'〜'。如果它是正确的并且处于正确的位置,我会放一个'!'在它下面。
的重要作用如下:
wordGuess = input("Guess a letter: ")[0:5]
for letter in wordGuess:
if letter in realWord:
if wordGuess.find(letter) == realWord.find(letter)
//不知道如何从这里
办?如果有一个正确的字母出现了多次,用字母之一不正确地匹配realWord中字母的位置 - 我如何检测它?例如,如果真正的单词是“持续”并且有人猜测“黄铜”,那么第一个'黄铜'是正确的字母,但是在不正确的位置,而第二个'是'是正确的字母和正确的位置。
那么实现一个函数的最好方法是什么,它可以检查一个字母是否正确并且位置正确(并用!表示)或者表示它是错误位置的正确字母〜
布尔标志技术有助于找到直接匹配,但它d oes无助于确定“guessWord”中的一个字母是否在IN“realWord”中,但不在正确的位置。同样重要的是要注意,realWord可能不止一次出现一个字母,而不是在guessWord中。 – Parseltongue 2011-05-19 07:01:02
我正在使用此代码来完成你的'zip'方法: “allMatches = [match.start()用于匹配re.finditer(re.escape(wordGuess),realWord)]” 稍微有用,因为它返回每个字母的起始索引,发现 – Parseltongue 2011-05-19 07:01:35
辉煌!非常感谢 – Parseltongue 2011-05-19 07:34:46