Ejemplo n.º 1
0
 def process_event(self, event):
     if event.type==mesh.CONNECT:
         log.debug("CONNECT")
         self.connected = True
         if mesh.is_initiating():
             self.initiator = True
     elif event.type==mesh.PARTICIPANT_ADD:
         log.debug("PARTICIPANT_ADD")
         # If participant added to the application, not me
         if event.handle <> mesh.my_handle():
             self.friend_connected = True
             self.friend_handle = event.handle                
     elif event.type==mesh.PARTICIPANT_REMOVE:
         log.debug("PARTICIPANT_REMOVE")
         # If friend I am playing with stopped
         if event.handle == self.friend_handle:
             self.friend_connected = False
             self.friend_handle = None
             if self.game<>None:
                 self.game.stop()               
     elif event.type==mesh.MESSAGE_MULTI:
         log.debug("MESSAGE_MULTI")
     elif event.type==mesh.MESSAGE_UNI:
         log.debug("MESSAGE_UNI: " + event.content)
         toks = event.content.split(':')
         if toks[0]<>'startedGame' and self.game==None:
             log.error("Message received without Game opened")
         # startedGame Message
         elif toks[0]=='startedGame':            
             if self.initiator:
                 log.error("startedGame from other not initiator")
             else:
                 # Start game at receiving friend side
                 self.invitation_started = True
                 # Receive sorted cards                    
                 mazo = eval(toks[1])     
                 self.invitation_mazo = mazo
         # openCards Message
         elif toks[0]=='openCards':
             self.game.open_cards(True)
         # attributeSelected Message
         elif toks[0]=='attributeSelected':
             attr = eval(toks[1])                    
             self.game.attribute_selected(attr, True)
         # stop Message
         elif toks[0]=='stop':
             self.game.stop(True)
         # finishShowingCards Message
         elif toks[0]=='finishShowCards':
             insertion_order = eval(toks[1])
             self.game.finish_show_cards(True, insertion_order)
     else:
         return False
     return True                    
Ejemplo n.º 2
0
 def run(self):
     running = True
     while running:
         milliseconds = self.clock.tick(25) # maximum number of frames per second
         
         # Event-management loop with support for pausing after X seconds (20 here)
         events = pausescreen.get_events()
         # Now the main event-processing loop
         if events:
             for event in events:
                 log.debug( "Event: %s", event )
                 if event.type == pygame.QUIT:
                     running = False
                 elif event.type == pygame.KEYDOWN:
                     if event.key == pygame.K_ESCAPE:
                         running = False
                 elif event.type == pygame.MOUSEBUTTONDOWN:
                     if event.button == 1:
                         # Si no estaba jugando, conecto y comienzo
                         if self.estoyConectado and self.hayAmigo and not self.jugando:
                              # inicio juego
                             self.iniciarJuego(True, None)
                 elif event.type==mesh.CONNECT :
                     log.debug("CONNECT")
                     self.estoyConectado = True
                     if mesh.is_initiating():
                         self.miJugador = 1 # Cruz
                     else:
                         self.miJugador = -1 # Circulo
                 elif event.type==mesh.PARTICIPANT_ADD:
                     log.debug("PARTICIPANT_ADD")
                     # Si no soy yo
                     if event.handle <> mesh.my_handle():
                         self.hayAmigo = True
                         self.handleAmigo = event.handle
                         
                         # Si soy el servidor comienzo el primer juego
                         if mesh.is_initiating():
                             self.iniciarJuego(True, None)
                 elif event.type==mesh.PARTICIPANT_REMOVE:
                     log.debug("PARTICIPANT_REMOVE")
                 elif event.type==mesh.MESSAGE_MULTI:
                     log.debug("MESSAGE_MULTI")
                 elif event.type==mesh.MESSAGE_UNI:
                     log.debug("MESSAGE_UNI: " + event.content)
                     toks = event.content.split(':')
                     if toks[0] == 'configJugadores':
                          # inicio juego
                         self.iniciarJuego(False, toks[1] == 'True')
                     elif toks[0] == 'registroJugada':
                         jugada = int(toks[1])
                         self.juego.registroJugada(jugada, self.miJugador)
                         self.miTurno = True
                         self.jugadas += 1
                         self.evaluarJuego()
             			#juego.printResult("Empate")
             			#Fin chequeo de ganador
 
             pygame.display.flip()
             
         # Tomamos acciones
         
         if self.jugando and self.miTurno:
             jugada = self.juego.playMe(self.miJugador)
             self.miTurno = False
             self.jugadas += 1
             mesh.send_to(self.handleAmigo, "registroJugada:" + str(jugada))
             self.evaluarJuego()
Ejemplo n.º 3
0
    def run(self):
        running = True
        while running:
            milliseconds = self.clock.tick(25) # maximum number of frames per second
            
            # Procesamos los eventos pendientes
            # Estos eventos son los que se disparan mientras el oponente esta haciendo su jugada
            events = pygame.event.get() 
            if events:
                for event in events:
                    log.debug("Event: %s", event)
                    if event.type == pygame.QUIT:
                        running = False
                    elif event.type == pygame.KEYDOWN:
                        if event.key == pygame.K_ESCAPE:
                            running = False
                    elif event.type == pygame.MOUSEBUTTONDOWN:
                        if event.button == 1:
                            # Si no estaba jugando, conecto y comienzo
                            if self.estoyConectado and self.hayAmigo and not self.jugando:
                                 # inicio juego
                                self.iniciarJuego(True, None)
                    elif event.type==mesh.CONNECT :
                        log.debug("CONNECT")
                        self.estoyConectado = True
                        if mesh.is_initiating():
                            #self.miJugador = 1 # Cruz
                            self.miJugador = self.juego.X
                        else:
                            #self.miJugador = -1 # Circulo
                            self.miJugador = self.juego.O
                    elif event.type==mesh.PARTICIPANT_ADD:
                        log.debug("PARTICIPANT_ADD")
                        # Si no soy yo
                        if event.handle <> mesh.my_handle():
                            self.hayAmigo = True
                            self.handleAmigo = event.handle
                            
                            # Si soy el servidor comienzo el primer juego
                            if mesh.is_initiating():
                                self.iniciarJuego(True, None)
                    elif event.type==mesh.PARTICIPANT_REMOVE:
                        log.debug("PARTICIPANT_REMOVE")
                    elif event.type==mesh.MESSAGE_MULTI:
                        log.debug("MESSAGE_MULTI")
                    elif event.type==mesh.MESSAGE_UNI:
                        log.debug("MESSAGE_UNI: " + event.content)
                        toks = event.content.split(':')
                        if toks[0] == 'configJugadores':
                             # inicio juego
                            self.iniciarJuego(False, toks[1] == 'True')
                        elif toks[0] == 'registroJugada':
                            jugada = int(toks[1])
                            self.juego.registroJugada(jugada, self.miJugador)
                            self.miTurno = True
                            self.jugadas += 1
                            self.evaluarJuego()
                            #juego.printText("Empate")
                            #Fin chequeo de ganador

                pygame.display.flip()
                
            # Tomamos acciones
                
            if self.jugando and self.miTurno:
                jugada = self.juego.playMe(self.miJugador)
                self.miTurno = False
                self.jugadas += 1
                mesh.send_to(self.handleAmigo, "registroJugada:" + str(jugada))
                self.evaluarJuego()
Ejemplo n.º 4
0
    def run(self):
        running = True
        while running:
            milliseconds = self.clock.tick(25) # maximum number of frames per second
            
            # Procesamos los eventos pendientes
            # Estos eventos son los que se disparan mientras el oponente esta haciendo su jugada
            events = pygame.event.get() 
            if events:
                for event in events:
#                    log.debug("Event: %s", event)
                    if event.type == pygame.QUIT:
                        running = False
                    elif event.type == pygame.KEYDOWN:
                        if event.key == pygame.K_ESCAPE:
                            running = False
                        elif self.jugando:
                            if event.key == pygame.K_r:                   
                                log.debug("PRESIONO Roca")            
                                self.juego.registroJugada(self.juego.Roca, self.juego.Yo)
                                mesh.send_to(self.handleAmigo, "registroJugada:" + str(self.juego.Roca))
                                self.evaluarJuego()
                            elif event.key == pygame.K_p:                   
                                log.debug("PRESIONO Papel")            
                                self.juego.registroJugada(self.juego.Papel, self.juego.Yo)
                                mesh.send_to(self.handleAmigo, "registroJugada:" + str(self.juego.Papel))
                                self.evaluarJuego()
                            elif event.key == pygame.K_t:                   
                                log.debug("PRESIONO tijera")            
                                self.juego.registroJugada(self.juego.Tijera, self.juego.Yo)
                                mesh.send_to(self.handleAmigo, "registroJugada:" + str(self.juego.Tijera))
                                self.evaluarJuego()
                    elif event.type == pygame.MOUSEBUTTONDOWN:
                        if event.button == 1:
                            # Si no estaba jugando, conecto y comienzo
                            if self.estoyConectado and self.hayAmigo and not self.jugando:
                                 # inicio juego
                                self.iniciarJuego(True)
                    elif event.type==mesh.CONNECT :
                        log.debug("CONNECT")
                        self.estoyConectado = True
                    elif event.type==mesh.PARTICIPANT_ADD:
                        log.debug("PARTICIPANT_ADD")
                        # Si no soy yo
                        if event.handle <> mesh.my_handle():
                            self.hayAmigo = True
                            self.handleAmigo = event.handle
                            
                            # Si soy el servidor comienzo el primer juego
                            if mesh.is_initiating():
                                self.iniciarJuego(True)
                    elif event.type==mesh.PARTICIPANT_REMOVE:
                        log.debug("PARTICIPANT_REMOVE")
                    elif event.type==mesh.MESSAGE_MULTI:
                        log.debug("MESSAGE_MULTI")
                    elif event.type==mesh.MESSAGE_UNI:
                        log.debug("MESSAGE_UNI: " + event.content)
                        toks = event.content.split(':')
                        if toks[0] == 'comenzarJuego':
                             # inicio juego
                            self.iniciarJuego(False)
                        elif toks[0] == 'registroJugada':
                            jugada = int(toks[1])
                            self.juego.registroJugada(jugada, self.juego.Oponente)
                            self.evaluarJuego()
                            #juego.printText("Empate")
                            #Fin chequeo de ganador
                    elif event.type==self.timereventid:
                        pygame.time.set_timer(self.timereventid, 0)
                        self.evaluarJuegoFin()
                        

                pygame.display.flip()