hangman.py (2117B)
1 """ 2 Simple hangman game 3 Author: William Lindholm 4 """ 5 6 from eng_dict import * 7 8 DICTIONARY_PATH = "dictionary.txt" #path to dictionary 9 10 def main(): 11 dict = eng_dictionary(DICTIONARY_PATH) 12 rand_word = dict.getRandomWord() 13 rand_word = string_to_list(rand_word) 14 greeting() 15 #enter gameloop 16 gameloop(rand_word) 17 18 19 def gameloop(rand_word): 20 guessed_letters = set() 21 running = True 22 tries_left = 8 23 while running and tries_left > 0: 24 print("You have: ", tries_left, " more guesses") 25 26 27 guessed_letter = input("letter: ") 28 if guessed_letter in rand_word: 29 print(guessed_letter, " Is correct") 30 guessed_letters.add(guessed_letter[0]) 31 elif guessed_letter in guessed_letters: 32 print("You have already guessed: ", guessed_letter) 33 guessed_letters.add(guessed_letter[0]) 34 else: 35 tries_left -= 1 36 guessed_letters.add(guessed_letter[0]) 37 38 printProgress(guessed_letters, rand_word) 39 40 #win condition 41 if has_won(guessed_letters, rand_word): 42 print("Congratulations, you have won") 43 return 44 45 print("You lost\nThe correct word was: ") 46 printStream = "" 47 for letter in rand_word: 48 printStream += letter 49 50 print(printStream) 51 52 53 54 55 def greeting(): 56 print("Computer has now generated a random word.\nStart guessing by typing a letter and then pressing enter.\n") 57 58 def printProgress(guessed_letters, rand_word): 59 printStream = "" 60 for i in range(len(rand_word)): 61 printStream += " " 62 if rand_word[i] not in guessed_letters: 63 printStream += "_" 64 else: 65 printStream += rand_word[i] 66 67 print(printStream) 68 69 70 def has_won(guessed_letters, rand_word): 71 for letter in rand_word: 72 if letter not in guessed_letters: 73 return False 74 return True 75 76 77 def string_to_list(string): 78 string_list = [] 79 string_list[:0] = string.rstrip() 80 return string_list 81 82 83 if __name__ == "__main__": 84 main()