From f95ea0561218f44db66f9e4f97fee99e4b2f27ac Mon Sep 17 00:00:00 2001 From: Callum Richardson <richardsonc7@cardiff.ac.uk> Date: Tue, 25 Oct 2022 15:16:58 +0100 Subject: [PATCH] hangman file --- Group_game/hangman.py | 82 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 Group_game/hangman.py diff --git a/Group_game/hangman.py b/Group_game/hangman.py new file mode 100644 index 0000000..27033d5 --- /dev/null +++ b/Group_game/hangman.py @@ -0,0 +1,82 @@ +Python 3.10.8 (tags/v3.10.8:aaaf517, Oct 11 2022, 16:50:30) [MSC v.1933 64 bit (AMD64)] on win32 +Type "help", "copyright", "credits" or "license()" for more information. +>>> +... from collections import Counter +... +... word = "closet" +... +... def hangman(word): +... print('Guess the word! HINT: you may find this thing in your bedroom') +... print("You will have 15 chances to guess the word. ") +... +... for i in word: +... # For printing the empty spaces for letters of the word +... print('_', end = ' ') +... print() +... +... playing = True +... # list for storing the letters guessed by the player +... letterGuessed = '' +... chances = 15 +... correct = 0 +... flag = 0 +... try: +... while (chances != 0) and flag == 0: #flag is updated when the word is correctly guessed +... print() +... print("you have "+str(chances)+" guesses left!") +... chances -= 1 +... +... try: +... guess = str(input('Enter a letter to guess: ')) +... except: +... print('Enter only a letter!') +... continue +... +... # Validation of the guess +... if not guess.isalpha(): +... print('Enter only a LETTER') +... continue + elif len(guess) > 1: + print('Enter only a SINGLE letter') + continue + elif guess in letterGuessed: + print('You have already guessed that letter') + continue + + + # If letter is guessed correctly + if guess in word: + k = word.count(guess) #k stores the number of times the guessed letter occurs in the word + for _ in range(k): + letterGuessed += guess # The guess letter is added as many times as it occurs + + # Print the word + for char in word: + if char in letterGuessed and (Counter(letterGuessed) != Counter(word)): + print(char, end = ' ') + correct += 1 + # If user has guessed all the letters + elif (Counter(letterGuessed) == Counter(word)): # Once the correct word is guessed fully, + # the game ends, even if chances remain + print("The word is: ", end=' ') + print(word) + flag = 1 + print('Congratulations, You won!') + break # To break out of the for loop + break # To break out of the while loop + else: + print('_', end = ' ') + + + + # If user has used all of his chances + if chances <= 0 and (Counter(letterGuessed) != Counter(word)): + print() + print('You lost! Try again..') + print('The word was {}'.format(word)) + + except KeyboardInterrupt: + print() + print('Bye! Try again.') + exit() + -- GitLab