-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhangman.py
More file actions
79 lines (68 loc) · 2.18 KB
/
Copy pathhangman.py
File metadata and controls
79 lines (68 loc) · 2.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
def enter_a_term():
guessing_term = input("Enter a term: ")
sentence = guessing_term.split(" ")
is_correct = True
for wd in sentence:
if not wd.isalpha():
is_correct = False
break
if not is_correct:
print("Term you enter can contain only words and spaces")
enter_a_term()
else:
return guessing_term
def get_letters_from_the_term(guessing_term):
return_letters = [ltr for ltr in guessing_term if ltr.isalpha()]
print(set(return_letters))
return set(return_letters)
def convert_a_term(hidden_term, exceptions):
return_string = ""
for char in hidden_term:
if char in exceptions:
return_string += char
elif char.isalpha():
return_string += '_'
else:
return_string += ' '
return return_string
def guess_a_letter():
ltr = input("Enter a letter: ")
if not ltr.isalpha() or len(ltr) > 1:
print("You can enter only one letter!")
guess_a_letter()
else:
return ltr
def number_of_allowed_mistakes():
inp = input("Enter number of allowed mistakes: ")
try:
i = int(inp)
except:
print("Enter a positive, integer number")
number_of_allowed_mistakes()
if i <= 0:
print("Enter a positive, integer number")
number_of_allowed_mistakes()
else:
return i
if __name__ == '__main__':
term = enter_a_term()
term_letters = get_letters_from_the_term(term)
guessed_term = ""
guessed_letters = []
mistakes = 0
allowed_mistakes = number_of_allowed_mistakes()
# print("\tGuess:")
# while not sorted(guessed_letters) == sorted(term_letters):
while not all(ltr in guessed_letters for ltr in term_letters):
if mistakes == allowed_mistakes:
print("You lost!")
break
print("\t" + convert_a_term(term, guessed_letters))
print("\tGuessed letters: " + ','.join(guessed_letters))
print(f"\tNumber of mistakes left: {mistakes}")
letter = guess_a_letter()
guessed_letters.append(letter)
if not letter in term_letters:
mistakes += 1
else:
print("You won!")