2016-11-14 21 views
0

私の計算科学では、私はPythonでハングマンゲームを作成するように求められました。しかし、ゲームを作成する際に、自分のコードに何かを指定しないというエラーメッセージが表示されています。Python Hangman code

Traceback (most recent call last): 
File "Z:\Documents\hangman.py", line 40, in <module> 
generated_word = random.choice(random) 
File "Q:\Pywpygam.001\Python3.2.3\lib\random.py", line 249, in choice 
i = self._randbelow(len(seq)) 
TypeError: object of type 'module' has no len() 

私はコードに何も間違いがないとわかりました。何が間違っているのかを指定していません。ここに私のコードは次のとおりです。私が何をしようとしています何

import time 
print('Lets play hangman') 
print(""" 
     _______ 
     | | 
     | O 
     | | 
     | \- -/ 
     | | 
     | /\\ 
     |/ \\ 
    ____|____ 
    \n""") 

print(""" 
you get 7 lives to guess the letters in the word. if you guess 
incorrectly more of the hangman will appear and you lose a life. when you have 
used your 7 lives, the man will have hung and you will have lost. If you guess a 
correct letter, it will be show and if you guess the word without using the 7 
turns, you win! 
\n""") 

easy_words = ['string', 'loop', 'python', 'print', 'run'] 
medium_words = ['module', 'input', 'logic', 'output'] 
hard_words = ['graphics window', 'variable', 'iteration', 'modules'] 
random_words = ['string', 'loop', 'python', 'print', 'run', 'graphics window', 'variable', 'iteration', 'modules', 'module', 'input', 'logic', 'output '] 
time.sleep(2) 
print ("What level would you like to play at? Easy, Medium or Hard or Random?") 
level_of_difficulty = input() 
time.sleep(2) 
print ("The program is now generating your word...") 
if level_of_difficulty == 'Easy': 
    generated_word = random.choice(easy_words) 
elif level_of_difficulty == 'Medium': 
    generated_word = random.choice(medium_words) 
elif level_of_difficulty == 'Hard': 
    generated_word = random.choice(hard_words) 
elif level_of_difficulty == 'Random': 
    generated_word = random.choice(random_words) 
else: 
    generated_word = random.choice(random_words) 
guessed = '' 

lives = 7 


while lives > 0: 

    missed = 0 
    print() 
    for letter in generated_word: 
     if letter in guessed: 
      print (letter,end=' ') 
     else: 
      print ('_',end=' ') 
      missed = missed + 1 
    if missed == 0: 
     print ('\n\nYou win!') 
     quit() 
     break 
    guess=input("please guess a letter:") 

    guessed = guessed + guess 
     if guess not in generated_word: 

      print ('\n that letter is not in this word, your lives have been decreased by 1.') 
     print ('please try another letter.') 
     lives = lives - 1 
     missed = missed + 1 

     print('your new lives value is') 

     print(lives) 

     if lives < 7: 
      print(''' _______ 
    | | ''') 
      if lives < 6: 
       print(' | O ') 
      if lives < 5:    
       print(' | | ') 
      if lives < 4: 
       print(' | \- -/ ') 
      if lives < 3: 
       print(' | | ') 
      if lives < 2: 
       print(' | /\\ ') 
      if lives < 1: 
       print(' |/ \\ ') 
      if lives == 0: 
      print('___|___  ') 

      print('GAME OVER! You have run out of lives and lost the game') 
      print('the secret word was') 
      print(generated_word) 
      quit() 

は、生成された単語が_とウィンドウに表示されるようにそれを作る、と文字が正しく推測されたときに、適切である_は、文字で満たされています。 アイデアをいただければ幸いです!

+5

あなたは 'random.choice(random_words)'を意味すると仮定します。 – polku

+0

私はそれを見ていませんでした – Lucas

+0

私はそんなにばかです、私は撃たれるべきです。ありがとう、polku – Lucas

答えて

0

私はこれらの行が間違っていると思う:

generated_word = random.choice(random) 

あなたは、パラメータとして「ランダム」モジュールを渡しています。私は変数 "random_words"を渡す必要がありますと思いますか?

+0

実際にはiveを修正してもまだ動作しませんか? – Lucas

0

私は、私が間違って何をしたか

generated_word = random.choice(random) 

を指摘ビットに感謝を参照してください、私はまた

while lives > 0: 

    missed = 0 
    print() 
    for letter in generated_word: 
     if letter in guessed: 

に私はスペルミスを犯していることがわかりました。 ありがとうございました!