私はハングマンゲームを作っていて、リストに問題がありました。ユーザー入力がリスト内の文字のいずれかと一致する場合、そのリスト内の文字の場所が見つけられ、空白のリストのその位置に追加されます。ただし、重複する文字を含む「テレビ」などの単語は機能しません。代わりに、 "tel_vis_on"が表示されます。申し訳ありませんが、これがあいまいな投稿であれば、私はその用語を知らないのです。その部分においてHangman Game - リストに重複文字があります
2
A
答えて
4
def guess():
letter = input ("Please enter a letter:")
if letter in word:
print ("Correct!")
letterPlace = word.index(letter)
answer[letterPlace] = letter
print (*answer)
else:
print ("Wrong!")
if answer == word :
print ("You guessed it! Well Done!")
#end here
else:
guess()
from random import choice
objects = ["computer","television"]
word = choice(objects)
word = (list(word))
wordcount = len(word)
answer = ["_"]*wordcount
print (*answer)
guess()
:
if letter in word:
print ("Correct!")
letterPlace = word.index(letter)
answer[letterPlace] = letter
word.index(letter)
は、文字の第発生の指標を返します。
したがって、最初のアンダースコアのみを文字で置き換えます。
if letter in word:
print ("Correct!")
for letterPlace in (idx for idx,l in enumerate(word) if l==letter):
answer[letterPlace] = letter
コードループを、それが手紙を見つけた場合、ジェネレータ式は、アンダースコアを置き換えるために、インデックスが得られます。その代わりに行います。
0
ここで問題となるのは、最初の文字のみを置き換えることです。あなたがしたい場合
def guess():
letter = input ("Please enter a letter:")
if letter in word:
print ("Correct!")
letterPlace = [m.start() for m in re.finditer(letter, word)]
for index in letterPlace:
answer[index] = letter
1
あなたはこれを試すことができます:すべての回出てくる交換するためには、このようなre
関数を使用します。あまりにも複雑すぎるものを望まないなら、わかりやすい。
def findOccurences(s, ch):
return [i for i, letter in enumerate(s) if letter == ch]
def guess():
letter = input ("Please enter a letter:")
if letter in word:
print ("Correct!")
letterPlace = findOccurences(word,letter)
for i in letterPlace:
answer[i] = letter
print (*answer)
else:
print ("Wrong!")
if answer == word :
print ("You guessed it! Well Done!")
#end here
else:
guess()
from random import choice
objects = ["computer","television"]
word = choice(objects)
word = (list(word))
wordcount = len(word)
answer = ["_"]*wordcount
print (*answer)
guess()
いいゲームがあります。
関連する問題
- 1. Python hangman game、doesnt work
- 2. Java HangMan Game
- 3. CSC 101 Java Hangman Game
- 4. C++ Hangman Game
- 5. java - hangman gameコンパイルエラー
- 6. Java Hangman Game
- 7. Java hangman game repaint()not working
- 8. 文字列の重複文字
- 9. std :: vectorに重複があります
- 10. コントローラに重複コードがあります
- 11. 重複キーの更新に構文エラーがあります
- 12. リストにないと、まだ重複している要素があります
- 13. c#オブジェクトのリストに重複のないランダムな文字列
- 14. 文字列の重複する文字を置き換える方法 - Javascript
- 15. Python Hangman game - リスト内の同じ値の複数のインスタンスを置き換える方法は?
- 16. Python - Hangmanのゲームのグラフィックを表示する必要があります
- 17. リストから重複した文字列を削除する
- 18. 複数の列にSQL重複値があります
- 19. 複数の文字リストを順番に繰り返します。
- 20. Mysql:重複した列の一部に重複の更新があります。
- 21. 複数の部分文字列が重複して見つかりました
- 22. 正規表現find()は真ではありません。文字列の重複文字を検出する
- 23. 文字列内に重複する文字を削除する
- 24. "Hangman"ゲーム。代わりに文字で、刻印が表示され、 "tresc_diva"
- 25. Java重複クラスエラー - 繰り返しクラスがありません
- 26. Python Hangman Game:空白を推測された文字と置き換える方法
- 27. PHP配列の重複:すべての文字列キーに数値キーがあります
- 28. 文字列に重複文字を表示する
- 29. Delphiには二重引用符文字列関数がありますか?
- 30. Angular ngRepeat:重複エラー(重複するキーはありません)
'letterPlace = word.index(letter)'は、その単語の_first_出現のインデックスを返します。重複している場合は使用できません。 –