Advertisement

Hangman error

Started by November 07, 2014 06:10 PM
2 comments, last by unbird 10 years, 2 months ago

hi all,

i was reading someone's code i want to make like this project but when i run it i get error !! can you tell me what should i do ?!


class Hangman():
        def __init__(self):
                print "Welcome to 'Hangman', are you ready to die?"
                print "(1)Yes, for I am already dead.\n(2)No, get me outta here!"
                user_choice_1 = raw_input("->")
               
                if user_choice_1 == '1':
                        print "Loading nooses, murderers, rapists, thiefs, lunatics..."
                        self.start_game()
                elif user_choice_1 == '2':
                        print "Bye bye now..."
                        exit()
                else:
                        print "I'm sorry, I'm hard of hearing, could you repeat that?"
                        self.__init__()
 
        def start_game(self):
                print "A crowd begins to gather, they can't wait to see some real"
                print "justice. There's just one thing, you aren't a real criminal."
                print "No, no. You're the wrong time, wrong place type. You may think"
                print "you're dead, but it's not like that at all. Yes, yes. You've"
                print "got a chance to live. All you've gotta do is guess the right"
                print "words and you can live to see another day. But don't get so"
                print "happy yet. If you make 6 wrong guess, YOU'RE TOAST! VAMANOS!"
                self.core_game()
 
        def core_game(self):
                guesses = 0
                letters_used = ""
                the_word = "pizza"
                progress = ["?", "?", "?", "?", "?"]
               
                while guesses < 6:
                        guess = raw_input("Guess a letter ->")
 
                        if guess in the_word and not in letters_used:
                                print "As it turns out, your guess was RIGHT!"
                                letters_used += "," + guess
                                self.hangman_graphic(guesses)
                                print "Progress: " + self.progress_updater(guess, the_word, progress)
                                print "Letter used: " + letters_used
                        elif guess not in the_word and not in letters_used:
                                guesses += 1
                                print "Things aren't looking so good, that guess was WRONG!"
                                print "Oh man, that crowd is getting happy, I thought you"
                                print "wanted to make them mad?"
                                letters_used += "," + guess
                                self.hangman_graphic(guesses)
                                print "Progress: " + "".join(progress)
                                print "Letter used: " + letters_used
                        else:
                                print "That's the wrong letter, you wanna be out here all day?"
                                print "Try again!"
 
 
 
        def hangman_graphic(self, guesses):
                if guesses == 0:
                        print "________      "
                        print "|      |      "
                        print "|             "
                        print "|             "
                        print "|             "
                        print "|             "
                elif guesses == 1:
                        print "________      "
                        print "|      |      "
                        print "|      0      "
                        print "|             "
                        print "|             "
                        print "|             "
                elif guesses == 2:
                        print "________      "
                        print "|      |      "
                        print "|      0      "
                        print "|     /       "
                        print "|             "
                        print "|             "
                elif guesses == 3:
                        print "________      "
                        print "|      |      "
                        print "|      0      "
                        print "|     /|      "
                        print "|             "
                        print "|             "
                elif guesses == 4:
                        print "________      "
                        print "|      |      "
                        print "|      0      "
                        print "|     /|\    "
                        print "|             "
                        print "|             "
                elif guesses == 5:
                        print "________      "
                        print "|      |      "
                        print "|      0      "
                        print "|     /|\    "
                        print "|     /       "
                        print "|             "
                else:
                        print "________      "
                        print "|      |      "
                        print "|      0      "
                        print "|     /|\    "
                        print "|     / \    "
                        print "|             "
                        print "The noose tightens around your neck, and you feel the"
                        print "sudden urge to urinate."
                        print "GAME OVER!"
                        self.__init__()
 
        def progress_updater(self, guess, the_word, progress):
                i = 0
                while i < len(the_word):
                        if guess == the_word[i]:
                                progress[i] = guess
                                i += 1
                        else:
                                i += 1
 
                return "".join(progress)
 
game = Hangman()

Untitledh.png

Thanks all

Copy the error message or describe what's not working, it's harder to help only with the code.

Advertisement
Please read and follow this advice.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

in and not in are so-called binary operators (see here: Python Membership Operators), meaning you need operands on the left and right.

The error is slightly misleading, because it marks the in (the sequency and not can actually be legal, in another context, that is). This should work (you need to repeat guess):


if guess in the_word and guess not in letters_used:

When unsure about operators it helps to group with parenthesis. It also increases readbility:


if (guess in the_word) and (guess not in letters_used):

This topic is closed to new replies.

Advertisement