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