Home Python Construct a Hangman Sport for the Command Line in Python – Actual Python

Construct a Hangman Sport for the Command Line in Python – Actual Python

Construct a Hangman Sport for the Command Line in Python – Actual Python


Many individuals study primary language and phrase expertise by taking part in the sport of hangman. First talked about in print within the late nineteenth century and popularized in worldwide media as the sport present Wheel of Fortune, hangman appeals to many individuals. For starting programmers who need a problem or for extra skilled coders in search of a little bit of enjoyable, writing hangman in Python is a rewarding endeavor.

All through this tutorial, you’ll construct the hangman recreation in Python in a sequence of steps. The sport will work as a command-line software. All through the method, you’ll additionally study the fundamentals of constructing pc video games.

On this tutorial, you’ll:

  • Be taught the frequent components of a pc recreation
  • Observe the state of a pc recreation
  • Get and validate the person’s enter
  • Create a text-based person interface (TUI) in your recreation
  • Determine when the recreation is over and who the winner is

To get probably the most from this tutorial, you have to be snug working with Python units and lists. You don’t must have any earlier data about recreation writing.

All of the code that you simply’ll write on this tutorial is obtainable for obtain on the hyperlink beneath:

Demo: Command-Line Hangman Sport in Python

On this tutorial, you’ll write a hangman recreation in your command line utilizing Python. When you’ve run all of the steps to construct the sport, then you definately’ll find yourself with a text-based person interface (TUI) that may work one thing like the next:

All through this tutorial, you’ll run by way of a number of challenges designed that can assist you resolve particular game-related issues. On the finish, you’ll have a hangman recreation that works just like the demo above.

Mission Overview

Step one to constructing an excellent pc recreation is to provide you with an excellent design. So, the design in your hangman recreation ought to start with an excellent description of the sport itself. You additionally must have a common understanding of the frequent components that make up a pc recreation. These two factors are essential so that you can provide you with an excellent design.

Description of the Hangman Sport

Whereas many individuals know the sport effectively, it’s useful to have a proper description of the sport. You need to use this description to resolve programming points later throughout growth. As with many issues in life, the precise description of a hangman recreation may range from individual to individual. Right here’s a potential description of the sport:

  • Sport setup: The sport of hangman is for 2 or extra gamers, comprising a deciding on participant and a number of guessing gamers.
  • Phrase choice: The choosing participant selects a phrase that the guessing gamers will attempt to guess.
    • The chosen phrase is historically represented as a sequence of underscores for every letter within the phrase.
    • The choosing participant additionally attracts a scaffold to carry the hangman illustration.
  • Guessing: The guessing gamers try to guess the phrase by deciding on letters one after the other.
  • Suggestions: The choosing participant signifies whether or not every guessed letter seems within the phrase.
    • If the letter seems, then the choosing participant replaces every underscore with the letter because it seems within the phrase.
    • If the letter doesn’t seem, then the choosing participant writes the letter in an inventory of guessed letters. Then, they draw the following piece of the hanged man. To attract the hanged man, they start with the pinnacle, then the torso, the arms, and the legs for a complete of six elements.
  • Successful circumstances: The choosing participant wins if the hanged man drawing is full after six incorrect guesses, by which case the sport is over. The guessing gamers win in the event that they guess the phrase.
    • If the guess is correct, the sport is over, and the guessing gamers win.
    • If the guess is incorrect, the sport continues.

A recreation in progress is proven beneath. On this recreation, the phrase to be guessed is hangman:

A game of hangman in progress

On this tutorial, to jot down the hangman recreation in Python, you’ll make a number of extra design selections:

  • The sport might be between the pc and one human participant.
  • The pc will act as the choosing participant and can choose the phrase to guess, course of human enter, and deal with all output.
  • The human participant is the guessing participant, hereafter merely known as the participant. When the participant is aware of the phrase, they proceed to guess right letters till the phrase is full.

With this primary understanding of the sport and a few design selections for the pc model, you’ll be able to start creating the sport. First, nonetheless, you’ll want to know the frequent components of pc video games and perceive how they work together to supply the specified end result.

Widespread Components of a Pc Sport

Each recreation, whether or not it’s a pc recreation or not, has a set of components that make it a recreation. With out these components, there’s no recreation:

  • Preliminary setup: You get the sport able to play. This may imply setting the items on a chess board, dealing out playing cards, or rolling cube to see who goes first.
  • Gameplay: When folks consider the sport, that is what they usually consider. The stream of gameplay is managed by a recreation loop, which retains the sport shifting and doesn’t finish till the sport is over. The sport loop ensures the next occurs:
    • The person enter is gathered and processed.
    • The recreation state is up to date based mostly on reactions to the person enter. This may occasionally embrace checking for end-of-game circumstances.
    • Any required output adjustments are made to mirror the brand new recreation state.
    • The sport loop repeats.
  • Sport ending: How the sport ends is determined by the sport itself. Whether or not capturing the enemy king in checkmate, reaching a sure rating in a card recreation, or having your piece cross the road in a board recreation, sure circumstances decide the tip of the sport and the winner.

All video games have a recreation loop. For instance, in a chess recreation, you first set the items on the board and declare the present participant. Then the sport loop begins:

  • The present participant strikes a chunk, updating the sport state.
  • The checkmate situation is checked to find out whether or not the sport is over.
  • The present participant is up to date, and the loop begins once more.

Actual-world video games blur the traces between the person components of a recreation. For instance, strikes in chess replace each the sport state and the sport output. Regardless of this, the important thing components of the sport are all the time current. With them in thoughts, you’ll be able to start writing your first model of hangman in Python.


The challenge that you simply’ll construct on this tutorial would require familiarity with common Python programming. It’s best to have primary data of the next matters:

Nonetheless, in the event you don’t have all this information but, then that’s okay! You may study extra by going forward and giving the challenge a shot. You possibly can all the time cease and assessment the assets linked right here in the event you get caught.

With this brief overview of your hangman challenge and the conditions, you’re all set as much as begin Pythoning and having enjoyable whereas coding.

Step 1: Set Up the Hangman Mission

Your hangman recreation will choose a phrase, deal with person enter, and show all output utilizing a text-based person interface. You want code to deal with every of those duties. Nonetheless, you’ll do the whole lot utilizing built-in and standard-library instruments. You don’t want to put in anything.

For writing the sport, you’ll use a single file referred to as hangman.py. This file will comprise all of the required code to deal with the sport’s operations. So, go forward and create the file in your favourite code editor or IDE.

Subsequent, go forward and create a phrases.txt file. This file will comprise an inventory of phrases from which the sport will choose the goal phrase. Click on the collapsible part beneath to get the content material of this file:

You may as well obtain the whole supply of your hangman recreation, together with the phrases.txt file, by clicking the hyperlink beneath:

With this preliminary setup, you’re prepared to begin writing the code. Your first step might be to code a perform for choosing the phrase to guess in your hangman recreation.

Step 2: Choose a Phrase to Guess

Step one in taking part in hangman is to pick the goal phrase. When a human participant selects a phrase for hangman, they choose one phrase from their very own vocabulary. For the pc to pick a phrase, it must have a vocabulary from which to pick. After all, its vocabulary doesn’t must be as giant as a human’s.

So, how would you choose one phrase out of your thesaurus? Right here’s a potential answer:

On this code snippet, you create the select_word() perform to pick the phrase to guess from the phrases.txt file. You employ a with assertion to open the file and the .readlines() methodology to create an inventory of phrases.

Then, you utilize the random.alternative() perform to decide on a random phrase from the record. Discover that every one the phrases within the file are written in lowercase letters. This element might be essential later when you’ll want to evaluate the letters within the goal phrases with the participant’s enter.

Right here’s how your select_word() works:

Each time you name the perform, you get a random phrase out of your record of phrases. That’s step one in taking part in the hangman recreation.

Making a separate perform to deal with the vocabulary and phrase choice makes it simpler to switch or increase the vocabulary later. It additionally makes your code extra readable for others, or for your self in a number of months.

Step 3: Get and Validate the Participant’s Enter

Now, you want a technique to get the participant’s guesses on the command line. In any case, a recreation isn’t a lot of a recreation if there isn’t a way for the participant to affect the end result.

In your hangman recreation, it’s a must to get the participant’s enter and be sure that it’s legitimate. Keep in mind once you created your record of phrases? All of the phrases had been in lowercase, so it is best to flip the participant’s guesses into lowercase letters as effectively.

Moreover, the participant shouldn’t be capable of guess the identical letter twice. It’d even be good to keep away from numbers, particular characters, and full phrases as effectively.

So that you want a two-part answer. The primary half will collect the participant’s enter, and the second half will validate it. You may get the participant’s enter for the command line utilizing the built-in enter() perform:

That is an instance of an enter validation loop, which you should use to limit the person’s enter. The loop iterates till the participant supplies legitimate knowledge. On this case, meaning a single letter that the participant hasn’t already guessed.

You first set player_input to the participant’s enter in lowercase. Then, you cross the guess to _validate_input() together with the guessed_letters set. Right here’s the code for the _validate_input() helper perform:

The _validate_input() perform performs three impartial checks. It makes positive that:

  1. Precisely one character is entered.
  2. The enter is a lowercase letter between a and z, inclusive.
  3. The enter isn’t a letter that the participant has already guessed.

All of those circumstances have to be true for the perform to return True. If any of these checks is fake, then the perform returns False, and the enter loop restarts. Right here’s how this new code works:

If you name get_player_input() with a set containing beforehand guessed letters, you get a immediate that asks you to enter a letter. For those who enter a non-letter character or a earlier guess, then the perform dismisses it as a result of it’s not legitimate. Then, you get the immediate once more. If you enter a sound letter, you get the letter again.

Now, you may have a technique to get and validate the participant’s enter. It’s time to resolve when to finish the sport!

Step 4: Show the Guessed Letters and Phrase

When you’ve chosen the goal phrase in a real-life recreation of hangman, you’ll want to write an underscore, or clean, for every letter within the phrase. These blanks inform the gamers what number of letters are within the goal phrase. As gamers make guesses, you fill within the blanks with the right letters. You must also hold monitor of incorrect letters, which you write to the aspect.

So, you now have two duties:

  1. Show the letters that the participant has guessed.
  2. Show the right letters of their respective locations within the phrase.

To trace the letters that the participant has guessed, you’ll use a Python set. Utilizing a set means that you can effectively verify if the participant has already guessed a given letter through the use of membership checks with the in operator.

Displaying the guessed letters takes benefit of the .be a part of() methodology of strings:

The .be a part of() methodology builds a single string consisting of the members of the guessed_letters set, separated by a whitespace character. The built-in sorted() perform means that you can type the guessed letters alphabetically.

You employ one other perform to construct the phrase to point out to the participant:

This perform makes use of a for loop to construct the current_letters record. The loop appears at every letter in target_word and determines whether or not the letter exists in guessed_letters. In that case, then your program provides letter to current_letters. If not, then you definately add an underscore (_) to current_letters. Then, you utilize the .be a part of() methodology to construct a displayable phrase, which is able to embrace right letters of their corresponding spots.

Go forward and provides these two features a strive. Do not forget that it is best to use a set of guessed letters and a goal phrase.

Step 5: Draw the Hanged Man

After all, there’s no hangman recreation with out the precise hanged man, is there? You possibly can merely print out the variety of guesses the participant has taken. However if you wish to make the sport appear like hangman, then displaying the hanged man is a good suggestion.

On this tutorial, you’ll construct the hanged man utilizing ASCII characters. Your answer consists of an inventory containing seven completely different strings. The primary string will signify the scaffold, whereas the six remaining elements signify the physique elements of the hanged man:

  1. Head
  2. Torso
  3. Proper arm
  4. Left arm
  5. Proper leg
  6. Left leg

You’ll use uncooked strings to construct the completely different hangman states. A uncooked string requires an r earlier than the opening quote. These strings received’t interpret backslashes () as particular symbols, so you should use them in your illustration. Be aware that you simply’ll use the variety of incorrect guesses as an index to pick which string to print.

Right here’s the code that generates the hanged man:

Through the recreation, you monitor the variety of incorrect guesses that the participant has made, and then you definately cross that into the draw_hanged_man() perform to print the suitable hangman state utilizing ASCII characters.

Right here’s how this perform works in apply:

If you name draw_hanged_man() with an integer index as an argument, you get an ASCII drawing that represents the present stage in your hangman recreation. That appears good, doesn’t it?

Step 6: Determine Out When the Sport Is Over

Video games usually finish attributable to a situation arrange by the participant’s enter. Maybe the participant has lastly reached the aim, or they failed some activity and misplaced the sport.

Your hangman recreation ends when certainly one of two occasions occurs:

  1. The participant makes six incorrect guesses.
  2. The participant guesses the phrase appropriately.

Each of those outcomes stem from the participant’s enter. So, it is smart to verify for them within the recreation loop, which is the place you collect, validate, and course of all participant enter. Encapsulating these checks right into a perform is a good suggestion as effectively.

Since there are two circumstances to verify, you’ll want to cross the game_over() perform all the mandatory data to verify for each. It wants the variety of taken guesses, the present phrase, and the guessed letters:

Checking for the variety of incorrect guesses is simple, however checking if the participant has appropriately guessed the phrase may want a bit of rationalization.

The built-in set() perform turns any iterable right into a set object. As a result of each merchandise in a set is exclusive, this creates a set consisting of the letters that make up target_word. Then, you evaluate this set to letters_guessed utilizing the <= operator, which checks if each merchandise within the left-hand set is a member of the right-hand set. In that case, then the participant has guessed all of the letters.

Now that you’ve got all of the components in place, it’s time to bake the cake!

Step 7: Run the Sport Loop

Up thus far, you’ve assembled the features and code that cowl a lot of the essential elements of your hangman recreation. These elements embrace the next:

  • Choosing a random phrase to guess
  • Gathering and processing the participant’s enter
  • Displaying the phrase with unguessed letters hidden
  • Displaying the hanged man drawing
  • Monitoring the letters guessed and guesses taken
  • Checking if the sport is over

The final activity is to place them collectively into an entire recreation. You’ll want a recreation loop to manage the sport’s evolution. Nonetheless, not the whole lot goes into the loop. Earlier than the loop begins, you’ll want to arrange the sport to play. After the loop is over, you’ll want to finish the sport cleanly.

The preliminary setup contains offering an preliminary recreation state. To find out the preliminary state, you’ll want to choose the phrase to guess, the enter letters, the thriller phrase in its present type, and the variety of incorrect guesses. When you’ve set these variables, then you’ll be able to invite the participant to play:

With the sport arrange, you’ll be able to start the sport loop. Keep in mind, the sport loop doesn’t finish till the participant both guesses the phrase or runs out of guesses.

Each time the loop iterates, there are a number of duties to do:

  • Checking whether or not the sport is over
  • Displaying the hanged man drawing
  • Displaying the guessed phrase or goal phrase
  • Displaying the guessed letters
  • Getting a letter guess from the participant
  • Checking whether or not the enter letter is within the goal phrase
  • Updating the displayed phrase and guessed letters

Right here’s one technique to write the sport loop:

The loop doesn’t finish till the sport is over, so you should use the game_over() perform to manage the loop. Contained in the loop, you begin by displaying the preliminary hangman drawing. Subsequent, you show the goal phrase and, lastly, the guessed letters.

Then, you get and validate the participant’s enter. Within the conditional assertion, you then verify whether or not the participant’s guess is within the goal phrase. If that’s the case, then you definately print successful message. In any other case, you print a failure message and increment the wrong_guesses counter by 1.

Lastly, you add the present guess to guessed_letters and construct an up to date phrase utilizing the build_guessed_word() perform.

When the sport is over and the sport loop finishes, you may have some last duties to deal with:

First, you name draw_hanged_man() to point out the ultimate hanged man drawing. That is obligatory since you solely present the hanged man on the high of the sport loop. Subsequently, the ultimate iteration doesn’t get to replace the drawing.

At this level, the participant both ran out of guesses and misplaced, or guessed the phrase appropriately and received. You possibly can inform by inspecting the ultimate variety of incorrect guesses and printing out the suitable message.

Now, your hangman recreation is prepared for the primary match. Go forward and run the sport out of your command line:

Wow! Your hangman recreation works as anticipated! You’re all set as much as begin utilizing the sport for enjoyable and apply. You possibly can obtain the whole supply for this hangman implementation by clicking the hyperlink beneath:


Constructing the hangman recreation in Python is a good way to develop your programming expertise, study new methods, and introduce your self to the world of pc video games. By writing the sport in your command line in Python, you’ve participated in a number of coding and design challenges, together with taking the person’s enter, processing it, and displaying user-friendly outputs.

On this tutorial, you’ve realized how you can:

  • Construction a pc recreation with completely different components
  • Observe the state of your recreation
  • Get and course of the person’s enter
  • Create a text-based person interface (TUI) in your recreation
  • Decide whether or not the recreation is over and who received

You now have the instruments so as to add to your hangman recreation or go off and conquer different related video games.

Subsequent Steps

Now that you simply’ve completed constructing your hangman recreation, you’ll be able to go a step additional and proceed enhancing the sport. Alternatively, you’ll be able to change gears and leap into different cool tasks. Listed here are some nice subsequent steps so that you can proceed studying Python and constructing tasks:

  • Construct a Wordle Clone With Python and Wealthy: On this step-by-step challenge, you’ll construct your personal Wordle clone with Python. Your recreation will run within the terminal, and also you’ll use Wealthy to make sure your word-guessing app appears good. Learn to construct a command-line software from scratch after which problem your folks to a wordly competitors!
  • Construct a Quiz Utility With Python: On this step-by-step challenge, you’ll construct a Python quiz software for the terminal. Your app will ask you multiple-choice questions that you should use to strengthen your personal data or problem your folks to check theirs.
  • Construct a Cube-Rolling Utility With Python: On this step-by-step challenge, you’ll construct a dice-rolling simulator app with a minimal text-based person interface utilizing Python. The app will simulate the rolling of as much as six cube. Every particular person die could have six sides.
  • Raining Exterior? Construct a Climate CLI App With Python: On this tutorial, you’ll write a properly formatted Python CLI app that shows details about the present climate in any metropolis that you simply present the title for.
  • Construct a Python Listing Tree Generator for the Command Line: On this step-by-step challenge, you’ll create a Python listing tree generator software in your command line. You’ll code the command-line interface with argparse and traverse the file system utilizing pathlib.



Please enter your comment!
Please enter your name here