Logica en python [Urgente]

Hola, le puse ese nombre al tema, porque estoy necesitando de su ayuda para resolver un problemita de logica en python (evidentemente). Pero debe ser un pavada y sigo sin poder resolverlo.

Voy a intentar describirlo de la mejor manera posible:

  • partido = 1
    cuando: partido == 1, el jugador_1 vs jugador_2
  • partido = 2
    partido == 2, el jugador_3 vs “jugador_4”

^^^ Esto es lo basico ^^^

Esto hay que trasladarlo a una escena llamada torneo, en la cual, quiero que cuando el partido J_1 vs J_2 finalice valla al entretiempo y tocando un boton inicia el segundo partido y juegan J_3 vs J_4.
Siempre al comienzo, fuera de la escena, esta el partido = 1.
En el entretiempo, se va poner partido = 2, y tiene que jugar J3 vs J4

Voy a simplificar mi codigo lo mas que pueda para mostrarlo aqui:

partido = 1

class EscenaTorneo(pilasengine.escenas.Escena):
    
    def iniciar(self):

        self.golesJ1 = []
        self.golesJ2 = []
        self.golesJ3 = []
        self.golesJ4 = []

        if partido == 1:
            self.partido = 1
        elif partido == 2:
            self.partido = 2
        
        self.iniciar_juego2()

    def entretiempo(self):
        pilas.escenas.Normal()

        partido = 2
        
        bt_continuar = pilas.interfaz.Boton("C O N T I N U A R")
        bt_continuar.escala = 2
        bt_continuar. y = -250
        bt_continuar.conectar(pilas.escenas.EscenaTorneo)

    def iniciar_juego2(self):
        #Aca estaban un monton de cosas propias del
        #juego que no se relacionaban en nada con lo
        #que quiero mostrar

    def gol_t(self):

        if self.puntaje.valor < 2:

            if self.partido == 1:
                self.golesJ1.append(1)

            elif self.partido == 2:
                self.golesJ3.append(1)

            pilas.tareas.agregar(1,self.iniciar_juego2)

        elif self.puntaje.valor == 2:

            if self.partido == 1:
                self.golesJ1.append(1)
                
            elif self.partido == 2:
                self.golesJ3.append(1)
                
            print sum(self.golesJ1)
            print sum(self.golesJ2)
            print summ(self.golesJ3)
            print sum(self.golesJ4)
            print "------------"

            pilas.tareas.agregar(2, self.entretiempo)
            
    def gol2_t(self):
        if self.puntaje2.valor < 2:

            if self.partido == 1:
                self.golesJ2.append(1)
            elif self.partido == 2:
                self.golesJ4.append(1)
            
            pilas.tareas.agregar(1,self.iniciar_juego2)

        elif self.puntaje2.valor == 2:

            if self.partido == 1:
                self.golesJ2.append(1)
            elif self.partido == 2:
                self.golesJ4.append(1)

            print sum(self.golesJ1)
            print sum(self.golesJ2)
            print sum(self.golesJ3)
            print sum(self.golesJ4)
            print "------------"

            pilas.tareas.agregar(2, self.entretiempo)

Bueno mi problema es que no detecta que en ENTRETIEMPO, partido ya dejo de ser 1, es 2. No se si hay que poner algun prefijo o si me pueden modificar otra logica. Pero a mi no se me acurre nada.

Muchas gracias,
Matsimus :champagne:

Buenas, @MatsimusTrolling

Disculpa, edité el comentario porque me pareció que te estaba indicando mal. Voy a revisar un poco mejor a ver si encuentro el error.

Un saludo.

Bueno ya revisé :smile:

El error lo tienes en no declarar la variable global “partido”

    def entretiempo(self):
        pilas.escenas.Normal()
		
        global partido
        
        if partido < 4: #los partidos que tenga el torneo
			partido += 1
        else:
			partido = 0 #se reinicia el torneo
			
        bt_continuar = pilas.interfaz.Boton("C O N T I N U A R")
        bt_continuar.escala = 2
        bt_continuar. y = -150
        bt_continuar.conectar(pilas.escenas.EscenaTorneo)

Espero que esto te ayude :wink:

Un saludo.

1 Like