<commit_before>"""
    Hacer un fractal de segmentos subdivididos en triángulos
"""
import turtle

screen = turtle.Screen()
turtobj = turtle.Turtle()
turtobj.speed(0)
turtobj.hideturtle()


def pinta_segmento(tortuga, punto1, punto2):
    """ Pintamos el segmento con su respectivo triángulo

        Tortuga = Objeto de Turtle
        Punto# = Tupla(x, y, heading)

        Devuelve una lista de tuplas con los nuevos puntos"""
    tortuga.up()
    tortuga.setpos(punto1)
    tortuga.setheading(tortuga.towards(punto2))
    distancia = tortuga.distance(punto2) / 3

    ret = []

    tortuga.down()
    ret.append(tortuga.pos())
    tortuga.fd(distancia)
    ret.append(tortuga.pos())
    tortuga.left(60)
    tortuga.fd(distancia)
    ret.append(tortuga.pos())
    tortuga.right(120)
    tortuga.fd(distancia)
    ret.append(tortuga.pos())
    tortuga.left(60)
    tortuga.fd(distancia)
    ret.append(tortuga.pos())

    return ret


def main_function(repeticiones):
    """ Pinta el fractal hasta el subnivel 'repeticiones' """
    lista_puntos = [(-350, -350), (-350, 350), (350, 350), (350, -350), (-350, -350)]
    for i in range(repeticiones):
        turtobj.clear()
        segmentos = lista_puntos[:]
        lista_puntos = []
        print("Lista de segmentos en la repeticion", i, end=":\n")
        print(segmentos, end="\n")
        for l in range(0, len(segmentos) - 1):
            segmentitos = pinta_segmento(turtobj, segmentos[l], segmentos[l + 1])
            if lista_puntos:
                segmentitos.pop(0)
            for segmentito in segmentitos:
                lista_puntos.append(segmentito)


# repeticiones = int(input("Cuantos triangulitos quieres en el fractal?\n"))
repeticiones = 10
main_function(repeticiones)

turtle.done()<commit_msg>Ejercicio8 - Fractal Optimized "pinta_segmento"<commit_after>"""
    Hacer un fractal de segmentos subdivididos en triángulos
"""
import turtle

screen = turtle.Screen()
turtobj = turtle.Turtle()
turtobj.speed(2)
turtobj.hideturtle()


def pinta_segmento(tortuga, punto1, punto2):
    """ Pintamos el segmento con su respectivo triángulo

        Tortuga = Objeto de Turtle
        Punto# = Tupla(x, y, heading)

        Devuelve una lista de tuplas con los nuevos puntos"""
    tortuga.up()
    tortuga.setpos(punto1)
    tortuga.setheading(tortuga.towards(punto2))
    distancia = tortuga.distance(punto2) / 3

    ret = []

    tortuga.down()
    for i in range(1, 5):
        ret.append(tortuga.pos())
        tortuga.fd(distancia)
        if i % 2:
            tortuga.left(60)
        elif i == 2:
            tortuga.right(120)
    ret.append(tortuga.pos())
    tortuga.up()

    """tortuga.down()
    ret.append(tortuga.pos())
    tortuga.fd(distancia)
    ret.append(tortuga.pos())
    tortuga.left(60)
    tortuga.fd(distancia)
    ret.append(tortuga.pos())
    tortuga.right(120)
    tortuga.fd(distancia)
    ret.append(tortuga.pos())
    tortuga.left(60)
    tortuga.fd(distancia)
    ret.append(tortuga.pos())"""

    return ret


def main_function(repeticiones):
    """ Pinta el fractal hasta el subnivel 'repeticiones' """
    lista_puntos = [(-300, 0), (300, 0)]
    for i in range(repeticiones):
        turtobj.clear()
        segmentos = lista_puntos[:]
        lista_puntos = []
        print("Lista de segmentos en la repeticion", i, end=":\n")
        print(segmentos, end="\n")
        for l in range(0, len(segmentos) - 1):
            segmentitos = pinta_segmento(turtobj, segmentos[l], segmentos[l + 1])
            if lista_puntos:
                segmentitos.pop(0)
            for segmentito in segmentitos:
                lista_puntos.append(segmentito)


# repeticiones = int(input("Cuantos triangulitos quieres en el fractal?\n"))
repeticiones = 10
main_function(repeticiones)

turtle.done()
{'fraction_non_alphanumeric': 0.12628255722178375, 'fraction_numerical': 0.02315180215732702, 'mean_word_length': 2.836528758829465, 'pattern_counts': {'":': 2, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1058394', 'n_tokens_mistral': 1459, 'n_tokens_neox': 1377, 'n_words': 284}