pythonvlc / retos

Juego con retos sencillos de Python para probarte a ti mismo que sabes lo que haces
GNU General Public License v3.0
2 stars 1 forks source link

Ruido de Perlin #8

Open Azunera opened 2 months ago

Azunera commented 2 months ago


# El codigo a continuacion no es original sino es una adaptacion y estudio del algoritmo mejorado del ruido de Perlin
# Me enfoco en usar el algoritmo con solo la libreria de matematica/aleatoridad de numpy.

def generar_tabla_de_permutacion(size=256):
    tabla = np.arange(size, dtype=int)
    np.random.shuffle(tabla)
    return np.concatenate([tabla, tabla])
# Genero una tabla de una permutacion de una lista de indices entre 0 y 255 inclusive, 
# la funcion de esta es dar valores para las gradiantes de los vertices de las celdas de las cuadriculas

tabla_de_permutacion = generar_tabla_de_permutacion()

def lerp(a, b, x):
    return a + x * (b - a)
# Lerp es una funcion de interpolacion linear que intenta suavizar los valores, 
# creando una transicion ms suave

def fade(t):
    return t * t * t * (t * (t * 6 - 15) + 10)

# fade es una funciΓ³n que suaviza la transicion entre los valores x e y con una inteprolacion cubica
# Complementa la interpolacion lineal o lerp, para que el resultado no se vea
# brusco o "cubico"

def grad_original(hash, x, y):
    h = hash & 3

    u = x if h < 2 else y  
    v = y if h < 2 else x

    return (u if h & 1 == 0 else -u) + (v if h & 2 == 0 else -v)
    #

# Esta grad similar a las funciones de lerp y fade son las funciones originales que Ken Perlin utilizo 
# en el algoritmo original, aunque aun mas complicado, utiliza comparaciones y operaciones binarias 
# para conseguir el producto escalar de una manera mas eficiente, sin utilizar multiplicacion.

def grad_simplificada(hash, x, y):
    h = hash & 3
    if h == 0:
        grad_vector = (1.0, 1.0) # arriba a la derecha
    elif h == 1:
        grad_vector = (-1.0, 1.0) # arriba a la izquierda
    elif h == 2:
        grad_vector = (-1.0, -1.0) # abajo a la izquierda
    else:
        grad_vector = (1.0, -1.0) # abajo a la derecha

    # Y calculamos el producto escalar
    producto_escalar = grad_vector[0] * x + grad_vector[1] * y
    return producto_escalar

def perlin(x, y):

    xi = int(x) & 255
    yi = int(y) & 255

    # Determinamos las posiciones x e y como xi e yi como valores enteros en la matriz,
    # el & 255 (maximo numero en 8 bits), asegura que los numeros esten dentro del rango 0-255

    xf = x - int(x)
    yf = y - int(y)

    # Posiciones de x e y relativas a su posicion dentro de su celda en la cuadricula.
    # El resultado final es un valor entre 0 y 0.99...

    u = fade(xf)
    v = fade(yf)
    # 

    aa = tabla_de_permutacion[tabla_de_permutacion[xi] + yi]          # Abajo a la izquierda
    ab = tabla_de_permutacion[tabla_de_permutacion[xi] + yi + 1]      # Abajo a la derecha
    ba = tabla_de_permutacion[tabla_de_permutacion[xi + 1] + yi]      # Arriba a la izquierda
    bb = tabla_de_permutacion[tabla_de_permutacion[xi + 1] + yi + 1]  # Arriba a la derecha

    # Obtenemos de la tabla de permutacion los valores, se hace un acceso doble (se repite permutation_table)
    # para aumentar el nivel de "entropia" o "caos" y que sea aun mas aleatorio posible

    x1 = lerp(grad_simplificada(aa, xf, yf), grad_simplificada(ba, xf - 1, yf), u)
    x2 = lerp(grad_simplificada(ab, xf, yf - 1), grad_simplificada(bb, xf - 1, yf - 1), u)

    return lerp(x1, x2, v)

def generar_ruido_de_perlin(ancho, largo, escala):
    ruido = np.zeros((ancho, largo))
    for i in range(ancho):
        for j in range(largo):
            ruido[i][j] = perlin(i / escala, j / escala)
    return ruido

# Crear la matriz de ruido Perlin
ancho, largo, escala = 50, 50, 10
ruido = generar_ruido_de_perlin(ancho, largo, escala)

# Mapear valores de ruido a emojis
def noise_to_emoji(noise_value):
    if noise_value < -0.1:
        return '🌊'
    elif noise_value < 0.1:
        return 'πŸ–οΈ'
    elif noise_value < 0.5:
        return '🌳'
    else:
        return '⛰️'

mapa_de_emojis = []
for i in range(ancho):
    emoji = ""
    for j in range(largo):
        emoji += noise_to_emoji(ruido[i][j])
    mapa_de_emojis.append(emoji)

# Imprimir la obra de emojis
for emoji in mapa_de_emojis:
    print(emoji)

# https://docs.google.com/presentation/d/1VhjQvxGNvaNiTwyvcd8l2RZDykwxZKnnIKjMfUWbVng/edit?usp=sharing

# 
# # 'Un resultado'
# πŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠ
# πŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠ
# πŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠ
# πŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠ
# πŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠ
# πŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈ
# πŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³
# πŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³
# πŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³
# πŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³
# πŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸ–οΈ
# πŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈ
# πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈπŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈ
# πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈπŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈ
# πŸŒ³β›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈ
# β›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈ
# πŸŒ³β›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈ
# πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈ
# πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈ
# πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈ
# πŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠ
# πŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠ
# πŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠ
# πŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠ
# πŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠ
# πŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠ
# πŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠ
# πŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠ
# πŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠ
# πŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈ
# πŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸ–οΈ
# πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³
# πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³
# πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³
# πŸŒ³πŸŒ³β›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³
# β›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸ–οΈ
# πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈ
# πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈ
# πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈ
# πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈ
# πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸ–οΈ
# πŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³
# πŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³
# πŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈπŸŒ³
# πŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈ
# πŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈ
# πŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈ
# πŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈπŸŒ³
# πŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈβ›°οΈβ›°οΈπŸŒ³πŸŒ³
# πŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸŒ³πŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸ–οΈπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸŒŠπŸ–οΈπŸŒ³πŸŒ³πŸŒ³πŸŒ³β›°οΈβ›°οΈβ›°οΈπŸŒ³πŸŒ³πŸŒ³```
Azunera commented 2 months ago

Voy a llegar tarde a la reuniΓ³n asΓ­ que no la podrΓ© explicar de primera