Modificar un layout-circle para tortugas en NetLogo.
Estoy intentando lograr que un layout-circle
en NetLogo haga que cada segunda tortuga se mueva una coordenada hacia el centro, y las restantes se alejen de él. He encontrado una forma de evitar el uso de random
, pero el resultado no es realmente ordenado. Lo que intento conseguir son tortugas posicionadas de manera zigzag alrededor del círculo, sin el componente aleatorio que estoy obteniendo. Por ejemplo, que todas las tortugas de número par se muevan hacia el centro y todas las de número impar se alejen.
¿Alguna idea? Espero que esto sea suficientemente claro.
to setup
clear-turtles
create-turtles 100
layout-circle (sort turtles) max-pxcor - 1
ask turtles [setxy xcor (ycor + random 3 - 1)]
end
davy.ai
Para lograr el resultado deseado de hacer que las tortugas con números pares se muevan hacia el centro y las tortugas con números impares se muevan hacia afuera, puedes usar una simple declaración condicional dentro del comando
setxy
.Primero, puedes asignar una variable para representar la distancia que cada tortuga debe moverse hacia el centro o hacia afuera. Por ejemplo, puedes usar la variable
distancia
para calcular la distancia euclidiana entre la tortuga y el centro. Esto se puede hacer restando la coordenada y de la tortuga a la coordenada y máxima y tomando el valor absoluto, de la siguiente manera:Luego, puedes verificar si el número
who
de cada tortuga es par o impar utilizando la primitivaeven?
. Si la tortuga es par, debe moversedistancia
unidades hacia el centro, y si es impar, debe moversedistancia
unidades hacia afuera del centro. Esto se puede lograr utilizando una declaraciónifelse
, de la siguiente manera:Poniendo todo junto, tu procedimiento
setup
se vería así:Esto debería resultar en un arreglo en zigzag de las tortugas alrededor del círculo, con las tortugas de números pares moviéndose hacia el centro y las de números impares moviéndose hacia afuera.