2014-01-08 3 views
0

У меня возникла проблема с функцией, которую я создал, она не останавливается, может ли кто-нибудь предложить, что я делаю неправильно?Невозможно остановить функцию в Python

import random 

words = ["monitor", "mouse", "CPU", "keyboard"] 

attempts = [] 

randomWord = random.choice(words) 

noChar = len(randomWord) 

print randomWord , noChar 
print "Hello, Welcome to the game of Hangman. You have to guess the given word. The first word has", noChar, " letters." 

def game():  
    guess = raw_input ("Please choose letter") 
    attempts.append(guess) 
    print (attempts) 

    if guess in randomWord: 
     print "You have guessed the letter" 
    else: 
     print "Please try again" 
    return() 

chance = raw_input ("Have a guess") 

while chance!= randomWord: 
    game() 
+1

Когда вы хотите, чтобы он остановился? –

+0

Какую версию Python вы используете? Я не уверен в 3.x, но я знаю, что в 2.x '' 'return''' - это утверждение (не должно иметь круглых скобок) – wnnmaw

ответ

1

вход, где вы просите предположение должно быть запущено более чем когда-либо внутри game функции или каждый раз, когда она заканчивается.

Вы только просите chance в начале игры. Если игрок не угадает слово, это не вызовет условия победы.

Что-то, как это будет исправить:

def game():  
    guess = input ("Please choose letter") 
    attempts.append(guess) 
    print (attempts) 

    if guess in randomWord: 
     print ("You have guessed the letter") 
    else: 
     print ("Please try again") 


while True: 
    game() 
    chance = input ("Have a guess") 
    if chance == randomWord: 
     print('You win!') 
     break 

бонусного совет: Для того, чтобы напечатать все удачные догадки в порядке, то есть в том порядке, в которой они находятся в скрытом слове, которое вы можете сделать что-то вроде:

выход
def game():  
    guess = input ("Please choose letter") 
    if guess in randomWord: 
     success.append(guess) 
    attempts.append(guess) 
    print (attempts) 
    print(sorted(success, key=randomWord.index)) 
    if guess in randomWord: 
     print ("You have guessed the letter") 
    else: 
     print ("Please try again") 

Would:

Hello, Welcome to the game of Hangman. You have to guess the given word. The first word has 7 letters. 
Please choose letterm 
[] 
['m'] 
You have guessed the letter 
Have a guesst 
Please choose lettert 
[] 
['m', 't'] 
You have guessed the letter 
Have a guess 
Please choose lettero 
[] 
['m', 'o', 't'] 
You have guessed the letter 
Have a guess 

Это позволяет игроку увидеть, что заказать правильный л etters войти.

Смежные вопросы