2016-09-23 11 views
0

私は、学校での自由時間に、ハングマンプログラムをPythonのエントリーレベルのプロジェクトとして作成しています。私が何をしたいか文字列の文字列の格納場所

これまでのところ私は、入力された単語の大きさにボードを印刷した、と推測が正しいかどうかは、作業スコアで、決定することができます。今私は正しい推測をして、実際の手紙にstr(ボード)の正しいアンダースコアを変更する必要があります。これを行うために、私は、正解であれば、推測されたキャラクターの位置を把握し、ボード上のそのポジションを正しい文字に変更するだけでした。言い訳に申し訳ありません!ここに私のコードです。

print("Welcome to Tyler's Hangman game!!!! Player one, input a word for player two to guess, lowercase!\n") 

playAgain = True 
guessing = True 
#assure game starts in the True state 

while playAgain == True: 

    word = str(raw_input()) 
    wordLength = int(len(word)) 
    board = "_ " * wordLength 
    lives = 9 
    #initialize/reset variables on a new play 

    while guessing == True: 

     print("\n" * 15) 
     print("Now its player two's turn to make a guess! You have 9 lives! Only one letter at a time, lowercase!\n") 
     print(board + "Lives: " + str(lives) + "\n") 
     #print board + lives 

     guess = str(raw_input()) 

     if guess in word: 
      print("Correct!") 
      word.index(guess) 

     else: 
      print("Wrong.") 
      score -= 1 
      #check guess and change board 

単語で推測すると始まる文は、私にとって紛らわしいものです。ありがとう!!

スニペット私は私はあなたの本当の問題に対する別の解決策を提案するつもりです

 if guess in word: 
      print("Correct!") 
      word.index(guess) 
+0

あなたには何が混乱していますか?あなたは期待どおりに行動していないことを説明できますか? – idjaw

+0

'もしguess in word'が文字列' word'の部分文字列 'guess'をチェックします。 trueの場合は、 'correct'を表示し、最初に 'guess'というインデックスが表示されます。もちろん、print(word.index(推測))を行う方がはるかにクリーンです。 –

+0

ああ、私はインデックスが何をしたのか分からなかったと思います。インデックスを印刷するのは嫌いですが、文字が現れる位置を確認したいのですが、後でプログラムでこれらの整数を使用したいのです –

答えて

1

と困惑しています。文字列を変更することは、Pythonではあまり慣用的ではなく、エラーが発生しやすくなります。代わりに私のアプローチは、どの文字が推測されているかを把握し、それからボードの状態と実際の答えを計算することです。

answer = 'hello world' 
guessed = ['a', 'e', 'm', 'r'] 
def compute_board(answer, guessed): 
    return ''.join(c if c == ' ' or c in guessed else '_' for c in answer) 
compute_board(answer, guessed) # gives _e___ __r__ 

今、あなたは簡単にあなたが簡単に自分の推測がリストに既にあるかどうかをチェックすることにより、繰り返しの推測を確認することができ、guessedリストの長さから推測の数を取得することができますし、あなただけで簡単に推測を追加することができますそれらをリストの最後に追加します。

+1

これはもっとコンパクトで便利な方法です。応答。私が言ったように、私は言語に慣れておらず、正直なところコーディングをしています。だから、私は長くて不必要なコードをコンパイルする方法を常に探しています。 –

関連する問題