Hangman Game in Python

Hangman is a word game in which computer will randomly select a word from the dictionary and player has to guess it correctly in given number of turns. The word to be guessed is represented by row of stars. If the guessed letter is present is word, script will automatically be placed to correct places.

Rules to guess the word :

  1. Input single letter in one turn.
  2. Don’t use repeated letters.
  3. Turns will be decremented after every guess.

This is the text file used inside the code words.txt, which contains 50,000 English words.

Module needed :

import random

Below is the implementation :

# Python program to implement Hangman game
# Importing random module
import random
# Function to randomly select
# a word from dictionary
def get_word():
    # Path to the text file
    with open('/Users/Admin/Desktop/words.txt', 'r') as f:
        # Reads each word after splitting
        words1 = f.read().splitlines()
    # Returns any random word    
    return random.choice(words1)
myword = get_word()
# Function prints row of
# stars in place of words
for i in myword:
    print("*", end = " ")
# Calculating length of word
l = len(myword)
print(" Word has %d letters" %l)
# Check if entered letter is correct
def check(myword, your_word, guess1):
    status = ''
    matches = 0
    for letter in myword:
        if letter in your_word:
            status += letter
            status += '*'
        if letter == guess1:
            matches += 1
    if matches > 1:
        print(matches, guess1)
    elif matches == 1:
    return status
# Main Game function
def game():
    guess = 0
    guessed = False
    your_word = []
    turns = len(myword) + 1
    turns1 = turns
    print("Total turns: ", turns)
    while guess < turns1:
        guess1 = input("Enter your guess: ")
        # Decrementing turn
        # after every guess
        turns -= 1
        # Print turns left
        print("Turns left", turns)
        # If letter is already guessed
        if guess1 in your_word:
            print("You already guessed")
        elif len(guess1) == 1:
            # Appending the letters
            # on their place
            result = check(myword, your_word, guess1)
            if result == myword:
                guessed = True
                print("You won " + name)
            print("Invalid entry")
        guess += 1
    if guess == turns1:
        print("Word is:")
# Driver Code

Output :

* * * * * 
Word has 5 letters
Total turns:  11

Enter your guess: a
Turns left 10

Enter your guess: i
Turns left 9

Enter your guess: s
Turns left 8

Enter your guess: r
Turns left 7

Enter your guess: h
Turns left 6

Enter your guess: e
Turns left 5

Enter your guess: o
Turns left 4

Enter your guess: u
Turns left 3

Enter your guess: t
Turns left 2

Enter your guess: n
Turns left 1

Enter your guess: l
Turns left 0

Word is:

This article is attributed to GeeksforGeeks.org

You Might Also Like

leave a comment



load comments

Subscribe to Our Newsletter