2017-07-28 48 views
-4

我想编码一个hang子手游戏,当玩家获得一定数量的剩余生命时打印不同的单词,但我无法弄清楚如何做到这一点。我希望这个概念能够实现。我曾尝试ELIF语句,但不知道除了这个还有什么尝试:我会如何编码具有多个结果的hang子手游戏?

lives_remaining = 14 
guessed_letters = '' 

def play(): 
    word = pick_a_word() 
    while True: 
     guess = get_guess(word) 
     if first_try(guess, word): 
      print('Excellent!') 
      break 
     elif second_try(guess, word): 
      print('Great!') 
      break 
     elif third_try(guess, word): 
      print('Ok!') 
      break 
     elif fourth_try(guess, word): 
      print('Close one!') 
      break 
     elif lives_remaining == 0: 
      print('Nope!') 
      print('The word was: ' + (word)) 
      break 

def first_try(guess, word): 
    if lives_remaining > 12: 

def second_try(guess, word): 
    if lives_remaining > 8: 

def third_try(guess, word): 
    if lives_remaining > 4: 

def fourth_try(guess, word): 
    if lives_remaining > 0: 

def pick_a_word(): 
    return random.choice(words) 

def get_guess(word): 
    print_word_with_blanks(word) 
    print('Lives Remaining: ' + str(lives_remaining)) 
    guess = raw_input(' Guess a letter or whole word?') 
    return guess 

def print_word_with_blanks(word): 
    display_word = '' 
    for letter in word: 
     if guessed_letters.find(letter) > -1: 
      # letter found 
      display_word = display_word + letter 
     else: 
      # letter not found 
      display_word = display_word + '-' 
    print(display_word) 

def process_guess(guess, word): 
    if len(guess) > 1: 
     return whole_word_guess(guess, word) 
    else: 
     return single_letter_guess(guess, word) 


def whole_word_guess(guess, word): 
    global lives_remaining 
    if guess == word: 
     return True 
    else: 
     lives_remaining = lives_remaining - 1 
     return False 

def single_letter_guess(guess, word): 
    global guessed_letters 
    global lives_remaining 
    if word.find(guess) == -1: 
     # letter guess was incorrect 
     lives_remaining = lives_remaining - 1 
    guessed_letters = guessed_letters + guess 
    if all_letters_guessed(word): 
     return True 
    return False 

def all_letters_guessed(word): 
    for letter in word: 
     if guessed_letters.find(letter) == -1: 
      return False 
    return True 

play() 

我只是不知道我怎么可能让这些功能的工作。 任何投入将不胜感激:)

+0

欢迎来到堆栈溢出:)到目前为止,你有什么尝试使它工作?哪部分代码工作不正常?请参阅[问]关于如何正确提问的提示。 SO不是一个编程服务,我们是一个让大家一起学习的社区。因此,求助者应该提供他们已经尝试了什么以及他们具体挣扎的细节,但是要求某人为你编码并不合适。 –

+1

当然!我会编辑我的文章:) – EofTheN

+0

(并且不要让那些低估了你的问题的5个人让你失望';)'这对于人们首先尝试一个问题是非常普遍的。) –

回答