es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tags:  ,

Answer

  1. Avatar for 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:

    let distancia abs(ycor - max-pycor)
    

    Luego, puedes verificar si el número who de cada tortuga es par o impar utilizando la primitiva even?. Si la tortuga es par, debe moverse distancia unidades hacia el centro, y si es impar, debe moverse distancia unidades hacia afuera del centro. Esto se puede lograr utilizando una declaración ifelse, de la siguiente manera:

    ask turtles [setxy ifelse even? who [xcor (xcor + distancia)] [xcor (xcor - distancia)] ycor]
    

    Poniendo todo junto, tu procedimiento setup se vería así:

    to setup
      clear-turtles
      create-turtles 100
      layout-circle (sort turtles) max-pxcor - 1
      let distancia abs(ycor - max-pycor)
      ask turtles [setxy ifelse even? who [xcor (xcor + distancia)] [xcor (xcor - distancia)] ycor]
    end
    

    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.

Comments are closed.