누구든지 다음 코드에 대한 도움을 줄 수 있습니까? 하나의 사소한 오류를 제외하고는 아무 문제가 없습니다. 기본적으로 코드는 사용자에게 단어를 묻습니다. 단어를 가져온 다음 마스크 처리합니다. 예를 들어, 내가 단어를 입력 가정 해 봅시다 : 축구함수에서 수정할 때 주 변수가 업데이트되지 않습니다.
축구 다음 * * (각 문자 하나 *)로 변환됩니다. 그 후 코드는 사용자에게 시도 할 여러 가지 추측을 요청합니다. 나는 8을 입력한다고 해봅시다.
8을 입력하면 추측 된 문자를 표시하기 위해 마스크 된 문자열을 업데이트 할 때마다 올바른 추측을 8 회 추측하도록 요청됩니다. 문제는 단어가 공개 된 직후 자동으로 프로그램을 끝내기를 원한다는 것입니다. 예를 들어, 축구에서는 중복 문자 (예 : o 및 l)를 입력 할 때마다 두 개의 문자가 표시되고 추측 시도는 건너 뜁니다. 따라서 축구가 완전히 해독 된 후에 코드/프로그램은 여전히 2 가지 추측을 요구합니다. 나는이 두 가지 추가 추측을 원하지 않는다. 나는 프로그램을 즉시 끝내기를 원한다. 그러나 나는 그것을하는 방법을 알아낼 수 없습니다.
나는 masked_secret_word가 == secret_word 경우 최종에서 다음 명령을 설정하려고 :
휴식 그러나 그것은 아무것도하지 않는 것. 완전히 추측 된 단어와 원래 단어를 일치시킨 다음 종료한다고 생각했지만 효과가없는 것 같습니다. 도움을 줄 수있는 사람은 누구입니까? 고맙습니다.
def word_update (secret_word, guessed_letters):
masked_secret_word = ""
for letter_guess in secret_word:
if letter_guess in guessed_letters:
masked_secret_word += letter_guess
else:
masked_secret_word += "*"
print "Secret Word update:" + masked_secret_word
alphabet = map(chr, range(97, 123))
secret_word = raw_input ("Type in the secret word: ").lower()
while secret_word.isalpha() == False:
secret_word = raw_input ("ERROR: Type in the secret word").lower()
masked_secret_word = len(secret_word) * "*"
guesses = raw_input ("How many guesses will you allow?")
while guesses.isdigit() == False or 0 >= int(guesses):
guesses = raw_input ("ERROR: How many guesses will you allow?")
guesses = int(guesses)
while len(secret_word) > guesses:
guesses = raw_input ("ERROR: The number of guesses is smaller than the word")
while guesses.isdigit() == False or 0 >= int(guesses):
guesses = raw_input ("ERROR: How many guesses will you allow?")
guesses = int(guesses)
print "Secret Word = " + masked_secret_word
guessed_letters = []
while guesses != 0:
letter_guess = raw_input ("Guess a letter (a-z)? ")
while letter_guess not in alphabet:
letter_guess = raw_input ("ERROR: Guess a letter (a-z)? ")
if letter_guess in guessed_letters:
print "That letter has already been guessed."
else:
guesses = guesses - 1
guessed_letters.append(letter_guess)
word_update(secret_word, guessed_letters)
질문에 대한 더 나은 제목으로 올 마십시오. –
* * 한 줄을 추가하려고 시도한 곳은 어디입니까? –