7
self.max_tries_dict = {1:10,2:5,3:3}
8
self.words = [word.strip() for word in open("/usr/share/dict/words").readlines()]
12
self.difficulty = self.difficulty_menu()
13
self.max_tries = self.max_tries_dict[self.difficulty]
15
while not stop_playing:
16
stop_playing = self.enter_game()
20
hang_word = self.get_random_word()
21
tries = self.max_tries
25
print "".join(hang_word.pattern)
26
letter = raw_input("? ")
27
if letter in tried_letters:
28
print "you already tried", letter
31
tried_letters.append(letter)
33
if letter and letter in hang_word.word:
35
hang_word.fill(letter)
36
if hang_word.filled() :
38
print "".join(hang_word.pattern)
42
print "tries left",tries," | ".join(tried_letters)
43
if not hang_word.filled():
46
return raw_input("play again ? ") == "n"
48
def welcome_screen(self):
57
def difficulty_menu(self):
61
Choose your difficulty :
69
level = sys.stdin.readline().strip()
70
if level.isdigit() and 0 < int(level) < 4:
74
print "wrong entry. Please choose one of 1, 2, or 3."
77
def get_random_word(self):
80
return HangWord(random.choice(self.words).lower())
87
print "good bye ! looser..."
92
def __init__(self,word):
94
self.pattern = list("-"*len(self.word))
95
self.pattern_dict = {}
96
for index,letter in enumerate(word) :
97
self.pattern_dict[letter] = self.pattern_dict.get(letter,[]) + [index]
99
def fill(self,letter):
100
for index in self.pattern_dict[letter]:
101
self.pattern[index] = letter
104
return self.word == "".join(self.pattern)
106
if __name__ == "__main__":