Español   Ejemplos: Autómatas celulares
El siguiente paso de la tortuga se determina por el color del cuadrado en el que se encuentra: El resultado es un bloque con las celdas cuyo color se invirtió. A continuación, tras cerca de 10.000 etapas, se reconoce una "carretera" que se prolonga hacia afuera indefinidamente.
para empezar
  nuevo pongrosor 4
  repite 10700 [nextstep]
fin

para nuevo
  reponetodo pontamañopantalla [400 400]
  poncolorpapel negro poncolorlapiz verde subelapiz ocultatortuga
#
# Activa esta linea para probar el segundo ejemplo
#
# inviertelapiz
fin

para nextstep
  haz "col elemento 2 encuentracolor posicion
  poncolorlapiz angcol bajalapiz avanza 0 subelapiz
  si :col = 0 [giraizquierda 90 avanza 6 alto]
  si :col = 255 [giraderecha 90 avanza 6]
fin

para angcol
  haz "num elemento 1 encuentracolor posicion
  haz "red :num + 0.2 * (255-:num)
  haz "green 255 - elemento 2 encuentracolor posicion
# cambia :red por 0 para que la imagen sea en blanco y negro
  devuelve frase lista :red :green 0
fin


Prueba a poner el lápiz en modo invertido. Para eso, añade inviertelapiz como última orden del procedimiento nuevo luego sustituye el procedimiento NextStep por éste.
para nextstep
  giraderecha truncar 0.707*(elemento 2 encuentracolor pos) + 90
  avanza 0 avanza 6
fin

368 etapas generan una forma simétrica:
Probar este programa ahora

Procedimiento a ejecutar:
empezar