2014-09-21 4 views
-2

저는 간단한 행맨 게임을 만들고 있으며 약 5,000 단어로 컴퓨터에 단어 목록을 얻었습니다. 그 단어 중에서 목록을 작성한 다음 무작위로 사용했습니다 게임에서 무작위로 하나를 선택하는 기능이지만, '-'는 단어를 추측하려고 할 때 '단어로 된 문자 :'명령을 사용하여 문자를 계산하고 올바른 양을 인쇄합니다 의 '-'.'for word in char :'Python에서 작동하지 않습니다.

import time 
import random 

List = open("nouns.txt").readlines() 

name = input("What is your name? ") 

print ("Hello, ", name, "Time to play hangman!") 

time.sleep(1) 

print ("Start guessing...") 
time.sleep(0.5) 

Word = random.choice(List) 

guesses = '' 
turns = 20 

while turns > 0:   

    failed = 0 

    for char in Word:  

     if char in guesses:  

      print (char) 

     else: 

      print ("_")  

      failed += 1  

    if failed == 0:   
     print ("\nYou won") 

     break    

    guess = input("guess a character:") 

    guesses += guess      

    if guess not in Word: 

     turns -= 1   

     print ("Wrong")  

     print ("You have", + turns, "more guesses") 

     print ("The word was ", Word) 

     if turns == 0:   

      print ("You Loose") 
+1

다양한 장소 및 텍스트 편집기에서 디버거를 사용하여 문제를 발견 할 수 있습니다. – simonzack

+2

방금 ​​코드를 보았을 때 제대로 작동하는 것으로 보입니다. 이'time.sleep()'것들은 텍스트 인터페이스에서 실제로 성가시다. 그런데, 나는 그것들을 제거 할 것이다. –

+0

어쩌면 단어를 '스트립'해야합니까? – khelwood

답변

0

여기에서 이유는 파일에서 행을 읽고 각 행의 끝에 '개행'('\ n') 문자가 있기 때문입니다. 캐릭터를 반복 할 때이 캐릭터를 마지막 캐릭터로 사용합니다.

당신은 그것을 없애 스트립() 메소드를 사용할 수 있습니다 말씀 = random.choice (목록) .strip()

그리고 나는() 메소드 여기에 대신 입력) (raw_input을 사용한다고 생각합니다 , 또는 파이썬 3.x로 작업한다면 괜찮을 것입니다.

+0

감사! 그 일을하고, 파이썬 3에서 일하고 있으므로 raw_input 대신에 입력을 사용한다. –