hola

Python
def count_neighbors(x: number, y: number):
    global vecino

    vecino = 0

    # Arriba izquierda
    if x > 0 and y > 0:
        vecino += mundo.get_pixel(x - 1, y - 1)

    # Arriba
    if y > 0:
        vecino += mundo.get_pixel(x, y - 1)

    # Arriba derecha
    if x < mundo_ancho - 1 and y > 0:
        vecino += mundo.get_pixel(x + 1, y - 1)

    # Izquierda
    if x > 0:
        vecino += mundo.get_pixel(x - 1, y)

    # Derecha
    if x < mundo_ancho - 1:
        vecino += mundo.get_pixel(x + 1, y)

    # Abajo izquierda
    if x > 0 and y < mundo_alto - 1:
        vecino += mundo.get_pixel(x - 1, y + 1)

    # Abajo
    if y < mundo_alto - 1:
        vecino += mundo.get_pixel(x, y + 1)

    # Abajo derecha
    if x < mundo_ancho - 1 and y < mundo_alto - 1:
        vecino += mundo.get_pixel(x + 1, y + 1)

    return vecino


# ==========================================
# VARIABLES
# ==========================================

vecino = 0
viva = 0
vecinos2 = 0

mundo: Image = None
proximo_mundo: Image = None

mundo_ancho = scene.screen_width()
mundo_alto = scene.screen_height()

mundo = image.create(mundo_ancho, mundo_alto)

scene.set_background_image(mundo)

velocidad = 100


# ==========================================
# LIMPIAR PANTALLA
# ==========================================

x = 0

while x < mundo_ancho:

    y = 0

    while y < mundo_alto:

        mundo.set_pixel(x, y, 0)

        y += 1

    x += 1


# ==========================================
# ELEGIR FORMA ALEATORIA
# ==========================================

forma = randint(0, 4)


# ==========================================
# TAMAÑO DE LA FIGURA
# ==========================================

tamano = 15

inicio_x = (mundo_ancho - tamano) // 2
inicio_y = (mundo_alto - tamano) // 2


# ==========================================
# CORAZÓN
# ==========================================

if forma == 0:

    mundo.set_pixel(inicio_x + 3, inicio_y + 2, 1)
    mundo.set_pixel(inicio_x + 4, inicio_y + 2, 1)
    mundo.set_pixel(inicio_x + 8, inicio_y + 2, 1)
    mundo.set_pixel(inicio_x + 9, inicio_y + 2, 1)

    mundo.set_pixel(inicio_x + 2, inicio_y + 3, 1)
    mundo.set_pixel(inicio_x + 3, inicio_y + 3, 1)
    mundo.set_pixel(inicio_x + 4, inicio_y + 3, 1)
    mundo.set_pixel(inicio_x + 8, inicio_y + 3, 1)
    mundo.set_pixel(inicio_x + 9, inicio_y + 3, 1)
    mundo.set_pixel(inicio_x + 10, inicio_y + 3, 1)

    mundo.set_pixel(inicio_x + 1, inicio_y + 4, 1)
    mundo.set_pixel(inicio_x + 2, inicio_y + 4, 1)
    mundo.set_pixel(inicio_x + 3, inicio_y + 4, 1)
    mundo.set_pixel(inicio_x + 4, inicio_y + 4, 1)
    mundo.set_pixel(inicio_x + 5, inicio_y + 4, 1)
    mundo.set_pixel(inicio_x + 7, inicio_y + 4, 1)
    mundo.set_pixel(inicio_x + 8, inicio_y + 4, 1)
    mundo.set_pixel(inicio_x + 9, inicio_y + 4, 1)
    mundo.set_pixel(inicio_x + 10, inicio_y + 4, 1)
    mundo.set_pixel(inicio_x + 11, inicio_y + 4, 1)

    mundo.set_pixel(inicio_x + 1, inicio_y + 5, 1)
    mundo.set_pixel(inicio_x + 2, inicio_y + 5, 1)
    mundo.set_pixel(inicio_x + 3, inicio_y + 5, 1)
    mundo.set_pixel(inicio_x + 4, inicio_y + 5, 1)
    mundo.set_pixel(inicio_x + 5, inicio_y + 5, 1)
    mundo.set_pixel(inicio_x + 6, inicio_y + 5, 1)
    mundo.set_pixel(inicio_x + 7, inicio_y + 5, 1)
    mundo.set_pixel(inicio_x + 8, inicio_y + 5, 1)
    mundo.set_pixel(inicio_x + 9, inicio_y + 5, 1)
    mundo.set_pixel(inicio_x + 10, inicio_y + 5, 1)
    mundo.set_pixel(inicio_x + 11, inicio_y + 5, 1)

    mundo.set_pixel(inicio_x + 2, inicio_y + 6, 1)
    mundo.set_pixel(inicio_x + 3, inicio_y + 6, 1)
    mundo.set_pixel(inicio_x + 4, inicio_y + 6, 1)
    mundo.set_pixel(inicio_x + 5, inicio_y + 6, 1)
    mundo.set_pixel(inicio_x + 6, inicio_y + 6, 1)
    mundo.set_pixel(inicio_x + 7, inicio_y + 6, 1)
    mundo.set_pixel(inicio_x + 8, inicio_y + 6, 1)
    mundo.set_pixel(inicio_x + 9, inicio_y + 6, 1)
    mundo.set_pixel(inicio_x + 10, inicio_y + 6, 1)

    mundo.set_pixel(inicio_x + 3, inicio_y + 7, 1)
    mundo.set_pixel(inicio_x + 4, inicio_y + 7, 1)
    mundo.set_pixel(inicio_x + 5, inicio_y + 7, 1)
    mundo.set_pixel(inicio_x + 6, inicio_y + 7, 1)
    mundo.set_pixel(inicio_x + 7, inicio_y + 7, 1)
    mundo.set_pixel(inicio_x + 8, inicio_y + 7, 1)
    mundo.set_pixel(inicio_x + 9, inicio_y + 7, 1)

    mundo.set_pixel(inicio_x + 4, inicio_y + 8, 1)
    mundo.set_pixel(inicio_x + 5, inicio_y + 8, 1)
    mundo.set_pixel(inicio_x + 6, inicio_y + 8, 1)
    mundo.set_pixel(inicio_x + 7, inicio_y + 8, 1)
    mundo.set_pixel(inicio_x + 8, inicio_y + 8, 1)

    mundo.set_pixel(inicio_x + 5, inicio_y + 9, 1)
    mundo.set_pixel(inicio_x + 6, inicio_y + 9, 1)
    mundo.set_pixel(inicio_x + 7, inicio_y + 9, 1)


# ==========================================
# DIAMANTE
# ==========================================

elif forma == 1:

    fila = 0

    while fila < 15:

        ancho = 0

        if fila <= 7:
            ancho = fila * 2 + 1
        else:
            ancho = (14 - fila) * 2 + 1

        inicio_fila = (15 - ancho) // 2

        columna = 0

        while columna < ancho:

            mundo.set_pixel(
                inicio_x + inicio_fila + columna,
                inicio_y + fila,
                1
            )

            columna += 1

        fila += 1


# ==========================================
# CRUZ
# ==========================================

elif forma == 2:

    fila = 0

    while fila < 15:

        columna = 0

        while columna < 15:

            if (
                columna >= 5 and columna <= 9
            ) or (
                fila >= 5 and fila <= 9
            ):

                mundo.set_pixel(
                    inicio_x + columna,
                    inicio_y + fila,
                    1
                )

            columna += 1

        fila += 1


# ==========================================
# ESTRELLA
# ==========================================

elif forma == 3:

    fila = 0

    while fila < 15:

        columna = 0

        while columna < 15:

            # Línea vertical
            if columna == 7:

                mundo.set_pixel(
                    inicio_x + columna,
                    inicio_y + fila,
                    1
                )

            # Línea horizontal
            if fila == 7:

                mundo.set_pixel(
                    inicio_x + columna,
                    inicio_y + fila,
                    1
                )

            # Diagonal \
            if columna == fila:

                mundo.set_pixel(
                    inicio_x + columna,
                    inicio_y + fila,
                    1
                )

            # Diagonal /
            if columna + fila == 14:

                mundo.set_pixel(
                    inicio_x + columna,
                    inicio_y + fila,
                    1
                )

            columna += 1

        fila += 1


# ==========================================
# CARA
# ==========================================

else:

    fila = 0

    while fila < 15:

        columna = 0

        while columna < 15:

            # Borde
            if (
                fila == 0 or
                fila == 14 or
                columna == 0 or
                columna == 14
            ):

                mundo.set_pixel(
                    inicio_x + columna,
                    inicio_y + fila,
                    1
                )

            # Ojo izquierdo
            if (
                columna >= 3 and
                columna <= 4 and
                fila >= 4 and
                fila <= 5
            ):

                mundo.set_pixel(
                    inicio_x + columna,
                    inicio_y + fila,
                    1
                )

            # Ojo derecho
            if (
                columna >= 10 and
                columna <= 11 and
                fila >= 4 and
                fila <= 5
            ):

                mundo.set_pixel(
                    inicio_x + columna,
                    inicio_y + fila,
                    1
                )

            # Boca
            if (
                fila == 10 and
                columna >= 4 and
                columna <= 10
            ):

                mundo.set_pixel(
                    inicio_x + columna,
                    inicio_y + fila,
                    1
                )

            columna += 1

        fila += 1


# ==========================================
# MOSTRAR FIGURA
# ==========================================

scene.set_background_image(mundo)


# ==========================================
# EVOLUCIÓN
# ==========================================

def on_update_interval():

    global proximo_mundo
    global viva
    global vecinos2
    global mundo

    proximo_mundo = mundo.clone()

    x22 = 0

    while x22 < mundo_ancho:

        y22 = 0

        while y22 < mundo_alto:

            # Estado actual
            viva = mundo.get_pixel(x22, y22)

            # Contar vecinos
            vecinos2 = count_neighbors(x22, y22)


            # ==================================
            # REGLAS
            # ==================================

            # Una célula viva sobrevive
            # con 2 o 3 vecinos
            if viva == 1 and (
                vecinos2 == 2 or
                vecinos2 == 3
            ):

                proximo_mundo.set_pixel(
                    x22,
                    y22,
                    1
                )


            # Una célula muerta nace
            # con 3 vecinos
            elif viva == 0 and vecinos2 == 3:

                proximo_mundo.set_pixel(
                    x22,
                    y22,
                    1
                )


            # Si no cumple las reglas, muere
            else:

                proximo_mundo.set_pixel(
                    x22,
                    y22,
                    0
                )

            y22 += 1

        x22 += 1


    # ==================================
    # SIGUIENTE GENERACIÓN
    # ==================================

    mundo = proximo_mundo

    scene.set_background_image(mundo)


# ==========================================
# VELOCIDAD
# ==========================================

game.on_update_interval(
    velocidad,
    on_update_interval
)
Feedback wanted
Uploaded Aug 26, 2026