試圖在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