예제 #1
0
class Display:
    def __init__(self, word, images):
        self.hangman = Hangman(images)
        self.word = Word(word)
        self.letter_buttons = LetterButtons()

    def is_letter_not_in_word(self, ltr):
        if ltr not in self.word.get_word():
            self.hangman.set_hangman_status()

    def mouse_click(self, mouse_x, mouse_y):
        letters = self.letter_buttons.get_letters()
        for letter in letters:
            if letter.get_visible():
                distance = math.sqrt((letter.get_x() - mouse_x)**2 +
                                     (letter.get_y() - mouse_y)**2)
                if distance < RADIUS:
                    self.letter_buttons.if_inside_button(letter)
                    self.is_letter_not_in_word(letter.get_letter())

    def draw_window(self):
        WINDOW.fill(WHITE)
        self.word.draw(self.letter_buttons.get_guessed())
        self.letter_buttons.draw()
        self.hangman.draw()
        pygame.display.update()

    def is_won(self):
        for letter in self.word.get_word():
            if letter not in self.letter_buttons.get_guessed():
                return False
        return True

    def is_lost(self):
        return self.hangman.get_hangman_status() == 6
예제 #2
0
class Sce_Hangman(Scene):
    '''
    classdocs
    '''

    def __init__(self, director, background_hangman):
        '''
        Constructor
        '''
        Scene.__init__(self, director, background_hangman)        
        self.hangman = Hangman()
        self.scene_winner =  Sce_Winner(director, 'winner', HANGMAN_SCENE)
        
        for buttom in self.common_buttoms.itervalues():
            buttom.is_visible = True

    def on_update(self):
        self.time = self.director.time 
        self.update()
        
        if not self.hangman.lose:
            word = ''
            self.is_complete = word.join(self.hangman.exposed) == self.hangman.word
            self.hangman.lose = self.hangman.intent == self.hangman.intents
        else:
            self.hangman.paused = True
                


    def on_event(self, event):
        self.event(event)
        if event.type == pygame.KEYDOWN:            
            if not self.hangman.paused and ((event.unicode.lower() in ("abcdefghijklmnopqrstuvwxyz")) or (event.key == pygame.K_SPACE and ' ' in self.hangman.word)):
                key = event.unicode.lower()
                #print "Tecla: "+key
                if (key in self.hangman.word.lower()) and (key not in self.hangman.typeds):
                    self.hangman.put_char(key)
                else:
                    self.hangman.intent += 1        
                                      

    def on_draw(self, screen):
        self.draw(screen)
        self.hangman.draw(screen)
        
        
예제 #3
0
파일: main.py 프로젝트: ashukid/pygames
def playGame():
   
    # picking word
    print("Picking a word...")
    time.sleep(2)
    word=wordPicker()
    wordlen=len(word) 
    print("Word picked !! Total :{} letters".format(wordlen))
    printBreak()

    # initializing hangman
    man=Hangman()
  
    # main game loop
    guessed_words=["_"]*wordlen 
    while True:
        ch=input("Guess a number : ")
        flag=0
        for i in range(wordlen):
            if(word[i]==ch and guessed_words[i]=="_"):
                guessed_words[i]=ch
                flag=1
                break

        if(flag):
            print("Right Guess !!")
            man.draw()
        else:
            print("Wrong Guess !!")
            dead=man.hang_and_draw()
            if(dead):
                printBreak()
                break
        print(" ".join(guessed_words))
        print("\n")

        if(guessed_words.count("_")==0):
            print("Congrats! YOU WON !!")
            printBreak()
            break