Hangman Challenge¶
This challenge consists in creating the hangman game from Python code.
First, we’ll make the different hangman drawings with text strings.
In the drawings
list we will place the text strings that represent
the hangman drawings.
We will solve the challenge progressively.
Create two variables, one called “correct” and the other “incorrect”. Both should be assigned to an empty string.
Do you remember the lesson on APIs? Let’s apply what we learned from that lesson.
To play hangman we need words to guess. In this case we will retrieve those words from the University Domains API.
These words will be world cities.
Use the requests
library to access the University Domains API. The url is the following
http://universities.hipolabs.com/search
Develop the choose
function that will randomly choose a city within the cities of the
cities
list. This city will be returned by the function. It should be noted that the name of each city
is given in English.
Let’s define another function to print the hangman.
The print_hangman
function prints the corresponding hangman drawing according to
the number of correct and incorrect letters so far. It takes a single parameter
p_aleatoria
which represents the word to guess.
It’s time to create the main function of our program, which asks the user for a letter to guess.
Develop the guess
function. It receives a string as a parameter (letters
) with all the letters already
tested (correct + incorrect). It returns a lowercase letter that has not been tested before.
If the user enters more than one letter or another special character, a message should be printed
alerting the user of their error. For example: "Invalid character"
This function will have a loop that will make sure that all the data is coherent and will only pass
to the main program the lowercase letter that has not been already tested. Save what the user enters in the
variable x
. Note: The function will be run once and will ask for a letter to verify if the unit tests pass.
Let’s make it possible for the user to decide whether or not they want to play again.
Develop the play_again
function that asks the user if they want to play again. The answer should be s or n (S/N).
Regardless of whether the user enters the response in uppercase or lowercase, the program should transform it to lowercase.
The function returns True
or False
depending on the response. Note: The function will be run twice to check if it passes the unit tests.
In the console, you will see instructions on what to enter for each test.
Now develop the win
function. It takes two parameters: p_aleatoria
, which represents the word to be guessed, and letras_adivinadas
. It should return True
if all the letters of p_aleatoria
are in the letras_adivinadas
string. Otherwise, it returns False.
You have already defined all the necessary functions and variables for the program. If you have made it this far, you should have completed everything and passed all the unit tests. If so, you can run the following program to test your game. You have 5 minutes to play.