The following game illustrates the use of lists. It is one way to do the game.
import random def play(self): # List of words to choose from words = [ 'apple', 'banana', 'pig', 'going' ] guesses = [] chances = 7 tries = 0 # Pick a random word word = random.choice(common_nouns) gameword = [ '_' ] * len(word) # This is our game loop. while tries < chances: print("") print("=====") print(" ".join(gameword)) print("") # Ask the player to guess a letter. print("Guesses: " + "".join(guesses)) print("Tries left: ", chances-tries) guess = input("Please guess a letter: ") # Did we already guess this letter? if guess not in guesses: guesses.append(guess) guesses.sort() if guess in word: for i in range(len(word)): if word[i] == guess: gameword[i] = guess else: tries = tries + 1 # Check if the word has been completely guessed if '_' not in gameword: print("Congratulations! You've guessed the word: " + word) break if tries >= chances: print("You've run out of attempts. The word was: " + word)
Initially, you can just use print(gameword) instead of a more complex way of printing the game word. Later you can introduce .join() and explain what it does. Also, after the testing stage you can add more words.
I taught another course to older kids and came up with a more straightforward way:
import random wordlist = [ "Dog", "Cat", "Bird", "Fish", "Elephant", "Tiger", "Lion", "Monkey", "Bear", "Horse", "Cow", "Chicken", "Pig", "Sheep", "Goat", "Duck", "Apple", "Banana", "Orange", "Grape", "Strawberry", "Bread", "Cheese", "Butter", "Milk", "Egg", "Rice", "Pasta", "Meat", "Chicken", "Beef", "Pork", "Fish", "Shrimp", "Salad", "Soup", "Sandwich", "Jacket", "Shirt", "Pants", "Dress", "Skirt", "Shorts", "Hat", "Shoes", "Socks", "Gloves", "Scarf", "Belt", "Coat" ] gameword = random.choice(wordlist) gameword = gameword.lower() guessed = "" badguess = "" playing = True check = "" chances = 7 round = 1 while playing: print("") print(f"Bad guesses: {badguess}") print(f"Guesses remaining: {chances}!") for letter in gameword: if letter in guessed: print(letter, end = ' ') else: print('_', end = ' ') print("") # skip one line guess = input("Choose a letter: ") guess = guess.lower() if guess in gameword: print("Good guess!") guessed = guessed + guess else: print("Bad guess!") badguess = badguess + guess chances = chances - 1 # Check to see if we need to keep guessing playing = False for letter in gameword: if letter not in guessed: playing = True # End the game if we run out of chances if chances <= 0: playing = False
This version began with a wordlist and random.choice. Then we made a guess-check algorithm. Then we replaced the print statement with the one that prints _'s. Then we made the game loop. Then we added checks for chances and completion.