crt 2 ;; crea dos tortugas (equivalente: create-turtles 2)
Se generarán dos tortugas en el centro de coordenadas.
Podemos pedir a los agentes que realicen acciones. Para ello usamos la primitiva ask seguida del agente (o agentes) a los que vamos a ordenar la acción y, a continuación, entre corchetes, la acción a realizar por el / los agente(s). Algunas de las primitivas se muestran a continuación:
forward ;; (fd) avanzar
back ;; (bk)retroceder
left ;; (lt)giro a la izquierda
right ;; (rt)giro a la derecha
repeat ;; repetir un conjunto de primitivas
pen-up ;;(pu)subir el lápiz (los agentes no deja huella al moverse)
pen-down ;;(pd)bajar el lápiz (los agentes dejan trazos al moverse)
clear-all;;(ca) se resetean variables, se limpia “el mundo”, se borran gráficas, etc.
Nota: En Netlogo, para introducir un comentario detrás de una línea de código, se emplea punto y coma (;) antes del comentario.
Prueba a escribir lo siguiente en la ventana de comandos (línea a línea) y observa lo que ocurre:
clear-all ;; (equivalente: ca) reseteamos todas las variables, limpiamos el mundo, etc.
crt 5 ;; (equivalente: create-turtles 5) creamos 5 tortugas.
ask turtles [fd 10] ;; pedimos a todas las tortugas que avancen 10 unidades.
clear-all ;; (equivalente: ca)
crt 1 ;; creamos 1 tortuga
ask turtles [fd 5 rt 90 fd 5 rt 90 fd 5 rt 90 fd 5]
Como podrás deducir, lo que hemos pedido a la tortuga es que dibuje un cuadrado de lado 5 unidades (literalmente, lo que le hemos pedido a la tortuga es lo siguiente: avanza 5 unidades, gira 90 grados a la derecha, avanza 5 unidades, gira 90 grados a la derecha, avanza 5 unidades, gira 90 grados a la derecha, avanza 5 unidades).
Sin embargo, te habrás dado cuenta de que parece que la tortuga no ha variado su posición. Reduce la velocidad de la simulación en la barra desplazadora en la parte superior de la pantalla, desplazándola hacia la izquierda. Verás que debajo pondrá “slower” en lugar de “normal speed”. A continuación reintroduce la misma secuencia de comandos. Verás que la tortuga está dibujando un cuadrado.
Supón que estamos interesados en que la tortuga dibuje un cuadrado (es decir, no sólo que haga un desplazamiento en forma de cuadrado como en el ejemplo anterior, sino que deje una huella según se va moviendo, de forma que quede dibujado un cuadrado. Para ello, introduciremos la primitiva pd (pen-down) justo antes de pedir a la tortuga que se mueva. De esta forma, la tortuga dejará una marca cada vez que se desplace. Cuando termine de dibujar el cuadrado, emplearemos la primitiva pu (pen-up) para que no deje huella en los movimientos sucesivos. Prueba lo siguiente:
clear-all ;; (equivalente: ca)
crt 1 ;; creamos 1 tortuga
ask turtles [pd fd 5 rt 90 fd 5 rt 90 fd 5 rt 90 fd 5 pu]
Para finalizar este ejercicio, introduciremos la primitiva repeat (repetir). En el ejemplo anterior, pedíamos a la tortuga que avanzara 5 posiciones y girara 90º a la derecha cuatro veces (una por cada lado del cuadrado). Esta orden se puede compactar haciendo uso de la primitiva repeat. Compruébalo escribiendo lo siguiente en la línea de comandos:
clear-all ;; (equivalente: ca)
crt 1 ;; creamos 1 tortuga
ask turtles [pd repeat 4 [fd 5 rt 90] pu]
Observarás que el resultado es el mismo que en el ejemplo anterior.