秘密の文字列をダッシュで表示する絞首刑執行人タイプのゲームがあります。
したがって、この場合、秘密の文字列は「+ * 794242」であり、最初は「--------」として表示されます。ここで、takeguess関数は推測された数値を取得し、対応する正しいダッシュをそれに置き換えます。これは最初の推測では機能しますが、その後の推測では部分変数が長くなります(部分的に推測とダッシュが表示されます(例:'--7-4-4-'))。
私はそれを分割して、部分が空白である最初の推測であるかどうかを確認することから始めました。推測するたびに部分的な文字列が長くなる理由がわかりません。あなたは私が何を意味するのかわかるでしょう!また、これを行うためのより良い方法が他にある場合は、この問題を解決した後で知りたいです!ありがとうございました!
secret = '+*794242'
partial = ''
def takeguess(a):
incomp = ('-' * len(secret)) #Dashes
if partial == '': # If just starting (first guess), partial is blank
for i in range(0,len(secret)):
if guess == secret[i]:
global partial
partial = partial + guess
else:
global partial
partial = partial + incomp[i]
return partial
else: # After initial guess, partial won't be blank, this is where I need help
for i in range(0,len(secret)):
if guess == secret[i]:
global partial
partial = partial + guess
else:
global partial
partial = partial + incomp[i]
return partial
while True: #Example while true
guess = raw_input('Enter guess: ')
takeguess(guess)
print partial