def available_letters(letters_string, guessed_letter): letters_list = list(letters_string) index_list = find_letter(letters_list, guessed_letter) for index in index_list: del letters_list[index] letters_string = ''.join(letters_list) #print "letters_string within the function", letters_string return letters_string def find_letter(word, guessed_letter): ###Returns a list of index values of where the letter occurs. index = 0 index_list = [] for letter in word: if letter == guessed_letter: index_list = index_list + [index,] index +=1 return index_list ### Use this to determine whether a guess is good or not. If index_list =/ None, then guess is good. But estimate how many lines of code would be run through each time. def update_available_letters(letters_string, guessed_letter): ###Tracks which letters haven't been guessed yet. index = 0 while index < len(letters_string): if letters_string[index] == guessed_letter: letters_list = list(letters_string) del letters_list[index] letters_string = ''.join(letters_list) return letters_string index += 1 return -1 def update_word(word_blanks, guessed_letter, index_list): for index in index_list: word_blanks[index] = guessed_letter ##print word_blanks return word_blanks word = "cheese" print word print "Welcome to the game, Hangman!" print "I'm thinking of a word that is", len(word), "letters long." letters_string = "abcdefghijklmnopqrstuvwxyz" word_blanks = ["_",]*len(word) for guess_number in range(26,1,-1): if guess_number==1: print "You have", guess_number, "guess left." else: print "You have", guess_number, "guesses left." print "Available letters:", letters_string guessed_letter = raw_input ("Please guess a letter:") guessed_letter = guessed_letter.lower() #print guessed_letter index_list = find_letter(word, guessed_letter) #print index_list letters_string = update_available_letters(letters_string, guessed_letter) #updates which letters are available print "letters string:", letters_string if guessed_letter in word: word_blanks = update_word(word_blanks, guessed_letter, index_list) delimiter = ' ' updated_word = delimiter.join(word_blanks) print "Good guess:", updated_word else: print "Oops! That letter is not in my word:", updated_word
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question