wordlist = [] import string #Loads all words, and returns those with numLetters letters. def loadWords(numLetters, filename): something = open(filename, "r") data = something.readlines() something.close() newWords = [] for word in data: word= word.lower() newWord = "" #Strip all non-letters, including whitespace for letter in word: if letter in string.letters: newWord = newWord + letter newWords.append(newWord) # Only include words longer than 2 letters and # shorter than 10 letters... newList = [] for word in newWords: if len(word) == numLetters: newList.append(word) return(newList) def pickNumWords(): wl_str = raw_input("How many letters?") try: numLetters = int(wl_str) if numLetters < 3 or numLetters > 10: print "Pick a number between 3 and 10! Try again!" num = pickNumWords() return(num) except: print "that wasn't a valid number! Try again!" num = pickNumWords() return(num) #Everything is OK return numLetters def hangman(): global wordlist numLetters = pickNumWords() guesses = numLetters * 3 print "You have", guesses, "guesses left" wordlist = loadWords(numLetters, "6of12.txt") print "DEMO: We have", len(wordlist), "words!" while guesses > 0: letter = raw_input("Enter your letter guess:") newList = filter( lambda w: letter[0] not in w, wordlist) print "DEMO: newList has", len(newList), "words left" if len(newList) > 0: wordlist = newList guesses = guesses -1 print "Sorry, the word *I* was thinking of, doesn't have any letters", letter[0], " in it!" print "You have ", guesses, "guesses left" else: #We have to reveil a letter! pass print "So sorry! You lost. The word I was thinking of was:" print wordlist[0] hangman()