Amazing-Python-Scripts
66 строк · 2.0 Кб
1import random
2from words import words
3from hangman_visual import lives_visual_dict
4import string
5
6
7def get_valid_word(words):
8# Randomly choose a word for the given list
9word = random.choice(words)
10while '-' in word or ' ' in word:
11word = random.choice(words)
12
13# Return the word in uppercase
14return word.upper()
15
16
17def hangman():
18word = get_valid_word(words)
19# Alphabets in the word
20word_letters = set(word)
21alphabet = set(string.ascii_uppercase)
22# Letters guessed by the user
23used_letters = set()
24
25lives = 7
26
27# Get user input
28while len(word_letters) > 0 and lives > 0:
29print('You have', lives, 'lives left, and you have used these letters: ', ' '.join(
30used_letters)) # Join the used letters from the list
31
32# Display what current word is for each guess
33word_list = [
34letter if letter in used_letters else '-' for letter in word]
35print(lives_visual_dict[lives])
36print('Current word: ', ' '.join(word_list))
37
38# Add the letter entered to the list
39user_letter = input('Guess a letter: ').upper()
40if user_letter in alphabet - used_letters:
41used_letters.add(user_letter)
42if user_letter in word_letters:
43word_letters.remove(user_letter)
44print('')
45
46else:
47# Decrease number of lives by 1
48lives = lives - 1
49print('\nYour letter,', user_letter, 'is not in the word.')
50
51elif user_letter in used_letters:
52print('\nYou have already used this letter. Guess another letter.')
53
54else:
55print('\nInvalid letter. Enter a valid letter.')
56
57# When number of lives is 0 or if the word is guessed
58if lives == 0:
59print(lives_visual_dict[lives])
60print('You died, sorry. The word was', word)
61else:
62print('YAY! You guessed the word correctly', word, '!!')
63
64
65if __name__ == '__main__':
66hangman()
67