¿cómo hacer que se repita el nivel de un juego con "for" o "while" o con "def reiniciar"?

me salta error de sintaxis en la parte del código que hago al “globo verdadero” con los if no se el motivo por favor ayuda que me falta poco para terminar el juego. acá les mando el código gracias!
Si borramos la parte del código de “globo verdadero” se ejecuta el juego hasta las colisiones falsas, en caso verdadero no lo puedo hacer andar hasta que arregle eso:

# coding: utf-8
import pilasengine

pilas = pilasengine.iniciar()

class PantallaBienvenida(pilasengine.escenas.Escena):

    def iniciar(self):
        self.fondo = self.pilas.fondos.Volley()
        
        #defino puntaje
        puntaje = pilas.actores.Puntaje(color='negro')
        puntaje.x = -300
        puntaje.y = 220
        crear_una_nueva_pregunta()
        pilas.eventos.pulsa_tecla_escape.conectar(self.regresar)

    def ejecutar(self):
        pass
        
    def regresar(self, evento):
        pilas.escenas.PantallaMenu()

class PantallaMenu(pilasengine.escenas.Escena):
    
    def iniciar(self):
        pilas.fondos.Selva()
        pilas.actores.Menu(
        [
            ('iniciar juego', iniciar_juego),
            ('salir', salir_del_juego),
        ])


def iniciar_juego():
  
    pilas.escenas.PantallaBienvenida()

                             
def crear_una_nueva_pregunta():
   #defino palabra al azar
    lista_palabras=["leche", "union", "gramatica", "institucion", "arroz", "libros", "heladera", "tambien", "pantalla", "cuchara", "madera", "aceite", "espejo", "plastico", "vitina", "rojo", "tipica", "cuaderno", "fuente", "practica"]
    posicion=pilas.azar(0, len(lista_palabras)-1)
    evalua=lista_palabras[posicion]
    pregunta=pilas.actores.Texto(u"Defina según la asentuación: " + evalua, y=150, x=0)
    #defino los globos
    globo1=pilas.actores.Actor(x=-150, y=0)
    globo1.imagen="globo.png"
    globo1.escala=1
    globo1.esverdadera= False
        
    globo2=pilas.actores.Actor(x=0, y=0)
    globo2.imagen="globo.png"
    globo2.escala=1
    globo2.esverdadera= False
        
    globo3=pilas.actores.Actor(x=150, y=0)
    globo3.imagen="globo3.png"
    globo3.escala=1
    globo3.esverdadera= False
    #defino respuestas
    rta_1=pilas.actores.Texto("aguda", x=-150, y=0)
    rta_1.color = pilas.colores.Color(0, 0, 0)
    rta_1.aprender(pilas.habilidades.PuedeExplotarConHumo)
    rta_2=pilas.actores.Texto("grave", x=0, y=0)
    rta_2.color = pilas.colores.Color(0, 0, 0)
    rta_2.aprender(pilas.habilidades.PuedeExplotarConHumo)
    rta_3=pilas.actores.Texto("esdrujula", x=150, y=0)
    rta_3.color = pilas.colores.Color(0, 0, 0)
    rta_3.aprender(pilas.habilidades.PuedeExplotarConHumo)
    #globo verdadero
    list_resp_ver=["grave", "aguda", "esdrujula", "aguda", "aguda", "grave", "grave", "aguda", "grave", "grave", "grave", "aguda", "grave", "esdrujula", "grave", "grave", "esdrujula", "grave", "grave", "esdrujula"]    
    globos_posibles=[globo1,globo2,globo3]
    textos_posibles=[rta_1,rta_2,rta_3]
    if list_resp_ver[posicion]=textos_posibles[0]:
        respuesta_verdadera = globos_posibles[0]
        respuesta_verdadera.esverdadera = True
        texto_de_respuestaok = textos_posibles[0]
    elif list_resp_ver[posicion]=textos_posibles[1]:
        respuesta_verdadera = globos_posibles[1]
        respuesta_verdadera.esverdadera = True
        texto_de_respuestaok = textos_posibles[1]
    elif list_resp_ver[posicion]= textos_posibles[2]:
        respuesta_verdadera = globos_posibles[2]
        respuesta_verdadera.esverdadera = True
        texto_de_respuestaok = textos_posibles[2]
    #defino pingu
    pingu = pilas.actores.Pingu()
    pingu.y=-195
    pingu.aprender(pilas.habilidades.LimitadoABordesDePantalla)
    
    #colisiones
    globos= [globo1,globo2,globo3]
    pilas.colisiones.agregar(pingu,globos,respuesta)
    

def respuesta(pingu, globo):
    if globo.esverdadera:
        pingu.decir("MUY BIEN")

        # Genera una estrella para mostrar que contesto
        # bien
        estrella = pilas.actores.Estrella()
        estrella.x = globo.x
        estrella.y = globo.y
        estrella.escala = 0.2
        estrella.escala = [2, 1] * 2

        # aumenta el puntaje
        puntaje.aumentar()
               
    else:
        pingu.decir("CUALQUIERA")
        pilas.camara.vibrar()
        globo.eliminar()
        
        

def salir_del_juego():
    print("Tengo que salir...")
    pilas.terminar()
    

pilas.escenas.vincular(PantallaMenu)
pilas.escenas.vincular(PantallaBienvenida)

pilas.escenas.PantallaMenu()
pilas.ejecutar()

Hola @leandroluna04, el error está en la linea 78.

En python cuando buscamos comparar una variable con un valor dentro de un IF se usan dos signos igual:

En este caso el código debería ser algo así:

    if list_resp_ver[posicion] == textos_posibles[0]:
        respuesta_verdadera = globos_posibles[0]
        respuesta_verdadera.esverdadera = True
        texto_de_respuestaok = textos_posibles[0]
    elif list_resp_ver[posicion] == textos_posibles[1]:
        respuesta_verdadera = globos_posibles[1]
        respuesta_verdadera.esverdadera = True
        texto_de_respuestaok = textos_posibles[1]
    elif list_resp_ver[posicion] == textos_posibles[2]:
        respuesta_verdadera = globos_posibles[2]
        respuesta_verdadera.esverdadera = True
        texto_de_respuestaok = textos_posibles[2]

hola @hugoruscitti gracias por responder, si había probado hacer y en vez del error de sintaxis me desaparece el pingu de la escena … pero si borro la parte del código de “globo verdadero” vuelve a aparecer normal. ¿Por que sera?

No entiendo @leandroluna04 :frowning: ¿que sería la parte de “globo verdadero”?

hola @hugoruscitti disculpa que te moleste, pero ese error ya lo solucione y pude hacer andar el juego perfectamente, pero lo que me falta agregarle es que finalice cuando cumpla cierta cantidad de vueltas se que se puede hacer con un for o while pero nose donde ubicarlos para que no me hagan bucles infinitos y se tilde. te mando el código correcto. Desde ya muchas gracias.

# coding: utf-8
import pilasengine

pilas = pilasengine.iniciar()
puntaje = pilas.actores.Puntaje(color='negro')
puntaje.x = -300
puntaje.y = 220
mi_mensaje=pilas.actores.Texto("Presione Esc para volver al menu", y=-210)
mi_mensaje.color=pilas.colores.Color(0,0,0)
def aumentar():
    puntaje=puntaje+15
def reiniciar():
    # Obtiene todos los actores de la pantalla.
    actores = pilas.actores.listar_actores()

    # Elimina todos los actores excepto el fondo y el puntaje
    for actor in actores:
        if actor not in [puntaje, pilas.escena.fondo]:
            actor.eliminar()

    # Genera una pregunta nueva
    crear_una_nueva_pregunta()
class PantallaBienvenida(pilasengine.escenas.Escena):

    def iniciar(self):
        self.fondo = self.pilas.fondos.Volley()
        puntaje = pilas.actores.Puntaje(color='negro')
        puntaje.x = -300
        puntaje.y = 220
    
        crear_una_nueva_pregunta()
        pilas.eventos.pulsa_tecla_escape.conectar(self.regresar)

    def ejecutar(self):
        pass
        
    def regresar(self, evento):
        pilas.escenas.PantallaMenu()

class PantallaMenu(pilasengine.escenas.Escena):
    
    def iniciar(self):
        pilas.fondos.Selva()
        pilas.actores.Menu(
        [
            ('iniciar juego', iniciar_juego),
            ('salir', salir_del_juego),
        ])

def iniciar_juego():
    print("Tengo que iniciar el Juego")
    pilas.escenas.PantallaBienvenida()

def crear_una_nueva_pregunta():
    puntaje = pilas.actores.Puntaje(color='negro')
    puntaje.x = -300
    puntaje.y = 220
    mi_mensaje=pilas.actores.Texto("Presione Esc para volver al menu", y=-210)
    mi_mensaje.color=pilas.colores.Color(0,0,0)
         #defino palabra al azar
    lista_palabras=["leche", "union", "gramatica", "institucion", "arroz", "libros", "heladera", "tambien", "pantalla", "cuchara", "madera", "aceite", "espejo", "plastico", "vitina", "rojo", "tipica", "cuaderno", "fuente", "practica"]
    posicion=pilas.azar(0, len(lista_palabras)-1)
    evalua=lista_palabras[posicion]
    pregunta=pilas.actores.Texto(u"Defina según la asentuación: " + evalua, y=150, x=0)
        #defino los globos
    globo1=pilas.actores.Actor(x=-150, y=0)
    globo1.imagen="globo.png"
    globo1.escala=1
    globo1.esverdadera= False
            
    globo2=pilas.actores.Actor(x=0, y=0)
    globo2.imagen="globo.png"
    globo2.escala=1
    globo2.esverdadera= False
            
    globo3=pilas.actores.Actor(x=150, y=0)
    globo3.imagen="globo3.png"
    globo3.escala=1
    globo3.esverdadera= False
        #defino respuestas
    rta_1=pilas.actores.Texto("aguda", x=-150, y=0)
    rta_1.color = pilas.colores.Color(0, 0, 0)
    rta_1.aprender(pilas.habilidades.PuedeExplotarConHumo)
    rta_2=pilas.actores.Texto("grave", x=0, y=0)
    rta_2.color = pilas.colores.Color(0, 0, 0)
    rta_2.aprender(pilas.habilidades.PuedeExplotarConHumo)
    rta_3=pilas.actores.Texto("esdrujula", x=150, y=0)
    rta_3.color = pilas.colores.Color(0, 0, 0)
    rta_3.aprender(pilas.habilidades.PuedeExplotarConHumo)
        #defino pingu
    pingu = pilas.actores.Pingu()
    pingu.y=-195
    pingu.aprender(pilas.habilidades.LimitadoABordesDePantalla)
         #colisiones
    globos= [globo1,globo2,globo3]
    pilas.colisiones.agregar(pingu,globos,respuesta)
        #globo verdadero
    list_resp_ver=["grave", "aguda", "esdrujula", "aguda", "aguda", "grave", "grave", "aguda", "grave", "grave", "grave", "aguda", "grave", "esdrujula", "grave", "grave", "esdrujula", "grave", "grave", "esdrujula"]    
    globos_posibles=[globo1,globo2,globo3]
    textos_posibles=["aguda", "grave", "esdrujula"]
    if list_resp_ver[posicion]==textos_posibles[0]:
        respuesta_verdadera = globos_posibles[0]
        respuesta_verdadera.esverdadera = True
        texto_de_respuestaok = textos_posibles[0]
    elif list_resp_ver[posicion]==textos_posibles[1]:
        respuesta_verdadera = globos_posibles[1]
        respuesta_verdadera.esverdadera = True
        texto_de_respuestaok = textos_posibles[1]
    elif list_resp_ver[posicion]== textos_posibles[2]:
        respuesta_verdadera = globos_posibles[2]
        respuesta_verdadera.esverdadera = True    
        texto_de_respuestaok = textos_posibles[2]
def aumentar():
    puntaje=puntaje+15    
def respuesta(pingu, globo):
    if globo.esverdadera:
        pingu.decir("MUY BIEN")

        # Genera una estrella para mostrar que contesto
        # bien
        estrella = pilas.actores.Estrella()
        estrella.x = globo.x
        estrella.y = globo.y
        estrella.escala = 0.2
        estrella.escala = [2, 1] * 2
       
       # aumenta el contador del for
            
        # aumenta el puntaje
        puntaje.aumentar(10)
         # Reinicia el juego.
        pilas.tareas.una_vez(2, reiniciar)       
    else:
        pingu.decir("CUALQUIERA")    
        pilas.camara.vibrar()
        globo.eliminar()
            
      
       
def salir_del_juego():
    print("Tengo que salir...")
    pilas.terminar()
    

pilas.escenas.vincular(PantallaMenu)
pilas.escenas.vincular(PantallaBienvenida)

pilas.escenas.PantallaMenu()
pilas.ejecutar()