2017-06-17 18 views
1

このゲームは今終わりまで解決しました。しかし、ここでもう1つの問題があります。それはどうやって文字列の繰り返し単語を置き換えることができますか?私を助けてください!ありがとうございました。例えば:私のcustomfileはword: "apple"で、ダッシュで単語を隠すときは: "-----"しかし、ダッシュ文字列で置き換えるとダッシュを1 pに置き換えることができます: "ap-le"どのように私は2pとダッシュを置き換えることができます: "apple"。私の前のこのプログラムの投稿:How do i detect the repeat input in my hangman game (Python)!。ここに私のコードを置き換えることです:Pythonで繰り返し単語を置き換える方法(Hangman Game)!

def getGuessedWord(): 
    pos = word.index(guessword.lower()) 
    print(pos) 
    global words    
    words = words[:pos]+ guessword.lower() +words[pos+1:] 
    print(words) 
    return words 
+0

あなたは 'replace'を使いますか? – Ravi

+0

この質問は[XY問題](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)に苦しんでいるようです。 – timotree

+0

@Ravi原因私は置換を使用しようとしましたが、私は方法置換で位置を検出する方法を知らない。単語replaceはダッシュ文字列の最初の位置に何度も何度も現れます。 – VincentHoang

答えて

0

推測文字をフィルタリングするあなたの全体的な問題への私の解決策は、ある機能の以下のセット:よりコンパクト

guessed_letters = set() 
def guess(letter): 
    global guessed_letters 
    guessed_letters.add(letter) 

def filter_letter(letter): 
    if letter in guessed_letters: 
     return letter 
    else: 
     return '-' 

def filtered(words): 
    for word in words: 
     output = '' 
     for letter in word: 
      output += filter_letter(letter) 
     yield output 

か:

guessed_letters = set() 
def guess(letter): 
    global guessed_letters 
    guessed_letters.add(letter) 

def filter_letter(letter): 
    return letter if letter in guessed_letters else '-' 

def filtered(words): 
    return [''.join(map(filter_letter, word)) for word in words] 

次のようになります。

>>> words = "bubbly water".split() 
>>> guess('a') 
>>> ' '.join(filtered(words)) 
'------ -a---' 
>>> guess('b') 
>>> ' '.join(filtered(words)) 
'b-bb-- -a--- 
+0

ありがとうございます。それは動作しますが、私たちは1つの関数にそれらを組み合わせることができますか?1 defで意味し、それらを単語の文字列に置き換えますか?もう一度、本当にありがとう! – VincentHoang

+0

私の方法では、私はちょうど単語 "リンゴ"の2 pの1 pの1位を定義することができます。あなたにはこれに対する解決策がありますか?ありがとうございました。 – VincentHoang

+0

@VincentHoang私は[この議論のためのチャットルーム](https://chat.stackoverflow.com/rooms/147004/q-44608020-7246614-discussion)を作った。 – timotree

関連する問題