, Hangman was a extremely enjoyable sport in our residence. We’d seize a pen and paper and take turns selecting phrases for the opposite to guess. Right now, it’s utilized in classroom settings to assist children observe their spellings, perceive strategic determination making by selecting vowels first, and brainstorm doable phrases from hints.
On this article, we’ll undergo the Hangman Recreation by implementing it in Python. It is a beginner-friendly challenge the place we’ll study the fundamentals of the Python language, equivalent to defining variables, generally used features, loops, and conditional statements.
Understanding the Venture
First, we’ll perceive the sport and get into the depths of how our code ought to work.
In a typical 2-player Hangman Recreation, Participant 1 chooses a phrase, hiding it from Participant 2, and generates blanks comparable to the variety of letters within the phrase he selected for guessing. Participant 2 has to guess the phrase by guessing one letter at a time. Participant 2 has an outlined variety of lives at the start, and with every fallacious guess of letters, they lose a life (to the purpose the place the person is hanged). With every proper guess, the lives stay the identical as earlier than. If Participant 2 loses all their lives with out guessing the phrase, the sport is over, they usually lose. In the event that they handle to guess the phrase, they win the sport. That is the define of the sport in its conventional sense.
On this challenge, the pc shall be Participant 1, producing the phrase to guess, whereas we, the person, shall be Participant 2. Allow us to implement the above utilizing a flowchart for higher comprehension.

Drawing a flowchart and defining every step helps in turning our thought course of into code, so its all the time a great observe to attract one. Now allow us to begin with coding the issue!
Step 1: Checklist of Phrases and the Random Module
Step one on this challenge is for the pc to decide on a random phrase that the person must guess. For this objective, we’ll want each a listing of phrases from which the pc picks one phrase to be guessed, and a Python operate known as random, which is able to randomly select that phrase from the given checklist.
To generate the checklist, I googled the 100 most typical nouns used within the English language and located a checklist. I used these phrases and created a Python checklist with it for use on this challenge.
Because the identify suggests, a Python Checklist is a datatype that shops in itself a set of things. An inventory of colours shall be outlined in Python as colours = ["red", "yellow", "green", "blue", "pink"]
. You possibly can take a look at the Checklist syntax and extra data from the Python official web page on Checklist.
word_list = [
"time",
"year",
"people",
"way",
"day",
"man",
"thing",
...
]
You possibly can entry the challenge information from my GitHub repository. hangman_words.py
is the Python file that comprises the checklist of phrases from which the pc will randomly select a phrase for the sport.
Now, as soon as our checklist is created, we want the pc to decide on a random phrase from the given checklist of phrases word_list
. Python has a module particularly for this objective known as “random”. We are going to import the module and use it to permit the pc to randomly select a phrase word_to_guess
from the checklist words_list
. You possibly can print the word_to_guess
whereas coding the challenge to reinforce understanding, and remark it out when enjoying with the pc!
import random
word_to_guess = random.alternative(word_list)
print(word_to_guess)
For extra data on the random.alternative()
operate, click on right here.
Step 2: Producing Blanks
The subsequent step is to generate blanks equal to the variety of letters within the word_to_guess
in order that the person will get an thought of the variety of letters within the phrase he has to guess. For this, we’ll outline a variable known as blanks
which is able to act as a container for the unguessed letters of the phrase. It should comprise the variety of “_” equal to the variety of letters within the word_to_guess
.
To calculate the variety of letters within the word_to_guess
that has been randomly picked by the pc from the words_list
, we’ll use the Python operate len()
that calculates the size of a string. Extra data on this in-built operate could be accessed by this hyperlink.
blanks = ""
word_length = len(word_to_guess)
As we now know the variety of letters in word_to_guess
, we’ll use this quantity so as to add an equal variety of “_” within the variable blanks
. For this objective, we’ll use the for
loop, a Python performance that permits us to iterate over objects in a sequence, in our case, the string that’s saved within the variable word_to_guess
. Click on right here to study extra about for
loop and its syntax.
for i in vary(word_length):
blanks = blanks + " _"
print("Phrase to guess: " + blanks)
The above block of code will iterate over the variety of letters within the word_to_guess
string and generate a clean for every letter. It should print out as many _ because the variety of letters, every clean as a placeholder for the letter of the phrase to guess. So for the phrase “time”, the output printed on the display shall be :
Phrase to guess: _ _ _ _
Step 3: Prompting the Consumer to Guess a Letter
Now the sport truly begins! The pc has picked a phrase, generated clean placeholders for the letters in that phrase. Now comes the time for the person to start out guessing the phrase by guessing one letter at a time.
To ask the person for a letter, we’ll use the enter
operate in Python and retailer it within the variable guess
:
guess = enter("Guess a letter").decrease()
Click on right here to study extra in regards to the Python built-in operate enter()
.
Step 4: Test if the Letter is within the Phrase
As soon as the person has guessed a letter, we’ll examine whether or not the person has guessed it proper and examine whether it is within the word_to_guess
.
To do that, we’ll use a for
loop. Furthermore, we may also create one other variable, your_word
, which is able to replace with the guessed letters and an empty checklist known as,letters_guessed
which is able to retailer the letters guessed appropriately by the person (this shall be helpful as we’ll see later).
So, for instance, if the pc has picked the phrase “cheesecake”, as the sport progresses and the person has guessed the letters “c”, “e”, and “a”, that is what each your_word
and letters_guessed
would appear like:
your_word = c_ee_eca_e
letters_guessed = [“c”, “e”, “a”]
letters_guessed = []
your_word = ""
for letter in word_to_guess:
if letter == guess:
your_word = your_word + letter
letters_guessed.append(guess)
elif letter in letters_guessed:
your_word = your_word + letter
else:
your_word = your_word + "_"
So principally what the above loop does is that it iterates by the word_to_guess
one letter at a time, and checks:
- If the letter guessed by the person
guess
is within theword_to_guess
, the code will replace the variableyour_word
so as to add the letter guessed at its applicable location. We have to perceive that in Python, strings are the truth is a sequence of characters, and lots of checklist features are relevant to strings as nicely. Furthermore, we may also add this letter guessed appropriately to the checklistletters_guessed
. - If the letter that the person has guessed,
guess
, is within theletters_guessed
, which implies the person has already recommended this letter earlier than, then we received’t want so as to add this to theletters_guessed
, however simply have so as to add the letter within theyour_word
at its applicable location. - Else, if the letter guessed by the person is just not within the
word_to_guess
, and due to this fact won’t be within theletters_guessed
, we’ll easy generate blanks in locations.
If the code above appears a bit overwhelming, be happy to simply run the above for loop whereas defining the variables and printing every of the variables: word_to_guess
, guess
, guessed_letters
, and your_word
and printing the variables the place they’re modified.

Step 5: Creating the Whereas Loop that runs till the Recreation is Over
Allow us to refer again to the flowchart we created to assist us perceive the challenge. With a purpose to code this challenge, we want to remember the next factors:
- The person has an outlined variety of lives at the start
- For every letter guessed fallacious, the lives are diminished by 1
- If the person runs out of lives, the person loses and the sport is over
- If the person has lives left, the pc will ask the person to guess one other letter
- For every letter guessed proper, the lives stay unchanged, and a clean is changed by a letter within the placeholder
blanks
- If the variable
your_word
is all stuffed, the person wins the sport, and the sport is over - If the variable
has clean areas left, then the pc will once more ask the person to guess the subsequent letteryour_word
- If the variable
Since now we have created the for
loop beforehand that caters to the guessed letter, now’s the time to include the concept of lives, and cut back it when the person has guessed a letter fallacious.
Allow us to outline the variety of lives for the person with the variable number_of_lives
. The person has 6 probabilities to recommend the fallacious letter in guessing the phrase.
number_of_lives = 6
Now, contemplating the factors talked about above, we additionally want a variable or a situation that tells us to cease asking the person to guess when the sport is over. Allow us to code it with the assistance of a Boolean variable.
Merely stating, a Boolean is a datatype in Python that shops both True or False. We are going to use this Boolean variable to proceed the sport whereas it’s False and vice versa. Initially, whereas the sport begins, this variable shall be False
, which means the sport is just not over.
game_over = False
Now we’ll introduce a whereas
loop with the situation that it’s going to run so long as the sport is just not over, and we’ll embody the circumstances talked about above on this whereas loop. Try extra in regards to the whereas
loop from the Python official documentation right here.
whereas not sport over:
print("nYou have ", number_of_lives, " lives remaining!")
guess = enter("Guess a letter: ").decrease()
your_word = ""
for letter in word_to_guess:
if letter == guess:
your_word = your_word + letter
letters_guessed.append(guess)
elif letter in letters_guessed:
your_word = your_word + letter
else:
your_word = your_word + "_"
print("Phrase to guess: ", your_word)
Within the above piece of code, now we have added the enter assertion in addition to the print assertion, which is able to output the letters guessed to date based on their place within the word_to_guess
.
Step 6: Dealing with Conditions
The final step is to deal with completely different circumstances. What occurs if the letter the person has guessed has already been recommended by the person, or the letter is just not within the phrase? Additionally, what if all of the letters have been guessed and there are not any extra blanks in your_word
? This might imply that the person has guessed the phrase and thus received.
We are going to add this example within the code with he following strains:
if guess in letters_guessed:
print(f"nYou've already guessed {guess}")
if "_" not in your_word:
game_over = True
print("nYou have guessed the phrase! YOU WIN!")

Furthermore, if the letter guessed by the person is just not within the word_to_guess
, the person’s guess is inaccurate, then their lives shall be diminished by 1, and we’ll inform the person that their guessed letter is just not within the phrase. If decreasing the lives by a fallacious guess finishes all of the person’s lives, then our boolean variable game_over
shall be set as True
, and the sport will finish, with the person shedding the sport.
if guess not in word_to_guess:
number_of_lives -= 1
print(f"nYou guessed {guess}, that is not within the phrase. You lose a life.")
if number_of_lives == 0:
game_over = True
print(f"nIT WAS {word_to_guess}! YOU LOSE!")
Bear in mind so as to add the above blocks of code contained in the whereas
loop that runs till the sport is just not over. A whole code together with invaluable feedback could be accessed by this GitHub repository for a greater understanding.
Conclusion
The above coding challenge was achieved with the fundamentals of the Python language. We got here throughout some built-in features, like print()
, and enter()
, we used the random
module to generate random phrases to guess and used for
and whereas
loops in varied iterations based on want. We additionally went by the conditional if
, elif
and else
statements. These are all the fundamental instruments that each newbie should know earlier than they soar into complicated coding. We might even have outlined and known as features on this program, however this was meant to be a beginner-friendly introduction to the Python language. If you’re a professional in Python, be happy to share varied different methods we might have approached this challenge!