2014-09-21 2 views
-2

Я делаю простую игру палача, и у меня есть список слов на моем компьютере с около 5000 слов, я составил список из этих слов, затем использовал случайный чтобы выбрать один случайным образом для игры, но он печатает одно слишком много из них: «-», пытаясь угадать слово, я использовал команду «для символа в слове:», чтобы подсчитать символы и напечатать нужную сумму of '-'.'для символа в слове:' не работает в 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

Причина здесь в том, что вы читаете строки из файла и каждая строка имеет «новую строку» («\ п») символы в конце. Когда вы перебираете символы, вы получаете это как последний символ.

Вы можете использовать полосу() метод, чтобы избавиться от него: Слово = random.choice (Список) .strip()

И я думаю, вы должны использовать raw_input() вместо ввода() методы здесь , или, может быть, вы работаете с python 3.x, тогда все будет хорошо.

+0

Спасибо! Это сработало, и я работаю на python 3, поэтому я использую input вместо raw_input –

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