Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialMaciej Walczak
5,042 PointsProgram does not print a good guess.
Hello all, i have a working code of the letter game, however when i guess a right letter it always prints "_____". I tried to compare it to teachers one, and i can't find whats wrong with it.
import random
words = [
"bmw",
"mercedes",
"volkswagen",
"opel",
"maybach",
"porsche",
"jaguar",
"rolls",
"maseratti",
"ferrari",
"lexus",
"toyota",
"lada",
"seat",
"ford",
"skoda"
]
# make a list of words
# draw spaces
# take guess
# draw guesses letters and strikes
# print ou win/lose
while True:
start = input("Press enter/return to start, or press Q to quit: ")
if start.lower() == "q":
break
# pick a random word
secret_word = random.choice(words)
bad_guesses = []
good_guesses = []
while len(bad_guesses) < 7 and len(good_guesses) != len(list(secret_word)):
for letter in secret_word:
if letter in good_guesses:
print(letter, end="")
else:
print("_", end="")
print("")
print("Strikes: {}/7.".format(len(bad_guesses)))
print("")
guess = input("Guess a letter: ").lower()
if len(guess) != 1:
print("You can only guess a single letter.")
continue
elif guess in bad_guesses or guess in good_guesses:
print("You've already guesses that letter")
continue
elif not guess.isalpha():
print("You can only guess letters")
continue
if guess in good_guesses:
good_guesses.append(guess)
if len(good_guesses) == len(list(secret_word)):
print("You win! The secret word was {}.".format(secret_word))
break
else:
bad_guesses.append(guess)
else:
print("You didnt guess it! My secret word was {}.".format(secret_word))
1 Answer
Steven Parker
231,269 PointsWhere you have:
if guess in good_guesses:
You probably meant to put:
if guess in secret_word:
And you might want to change guesses to guessed in "You've already guesses that letter".
Maciej Walczak
5,042 PointsMaciej Walczak
5,042 PointsThanks a lot. That did the trick