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

hola me falta agregarle 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. les mando el código correcto. Desde ya muchas gracias. Ayuda por favor!

# 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()