Entonces, esta pregunta nos pide que creemos un nido en el centro del mundo
o al rededor del origen de nueve parcelas y pintarlo de anaranjado
Entonces vamos al código y primero agregaremos una nueva variable tortuga
la primera linea donde dice "turtles-own" dentro de los brackets, escriba "return-to-nest?"
Luego, crearemos una nueva variable parche, o "patch"
escriba "patches-own [nest?] "
Ahora debemos agregar unas cuantas lineas al procedimiento del "setup"
entonces, en el comando 'ask turtles' pongamos "set return-to-nest? false"
Si no hacemos esto NetLogo va a iniciar cualquier nueva variable en True, por default.
Luego, agregaré una nueva linea, que se convertirá en un nuevo procedimiento. La llamaré "set-up-nest"
Y para agregar ese procedimiento empezamos con un "to set-up-nest"
Y hacemos un "ask patches" que nos pone en el contexto de los patches,
para hacer que la variable "nest" sea true cuando un patch queda a una distancia de 2 del origen
entonces escribimos " set nest? (distancexy 0 0) < 2"
y si un patch cumple ese criterio hacemos: "if nest? [set pcolor orange]" (para que sea anaranjado)
Y siempre terminamos un procedimiento con "end" y vemos si funciona
"No closing bracket for this open bracket", olvidé cerrar este bracket
Veamos si ahora sirve
Parece que está bien, entonces vamos a interfaz
Elegimos "Setup", y podemos ver que hay... es dificil saber que hay 9 patches ahí pero... asumiré que si
Ahora hay un nido anaranjado en el centro del mundo.
Luego, nos piden que escribamos código que haga que las hormigas regresen al nido
luego de que coman, y antes de que vayan a buscar comida de nuevo
Hay muchas maneras de hacerlo, yo lo haré así:
Primero, quiero simplificar el procedimiento "to go"...
entonces, haré un nuevo procedimiento, y lo llamaré "look-for-food"
Cortaré esta sección... escribo una nueva línea de procedimiento ("to look-for-food") y lo pego
Regreso al procedimiento go, e inserto "if else return-to-nest? false" entonces "[look-for-food]" (buscar-comida)
Y consecuentemente, si return-to-nest es verdadero, entonces "[return-to-nest]" (regresa-al-nido)
Y aún no hemos escrito este procedimiento "return-to-nest", que es lo que haremos
Antes de hacerlo, es una buena idea revisar el código para ver si hemos cometido algún error hasta ahora
Presiono check y ahí nos dice que no hemos escrito el 'return-to-nest'
Pero también me di cuenta que se me olvidó un signo de = luego de esta linea, entonces lo agrego.
Escribimos el procedimiento "to return-to-nest"
para esto escribiré "face patch 0 0" (el origen) y "fd 1"
y eso hará que cualquier hormiga que tenga 'return-to-nest' verdadera
vea hacia el origen y tome un paso en esa dirección
luego queremos decirle que vaya a buscar comida de nuevo si está en el nido
entonces "if pcolor = orange" , que quiere decir que volvió, ponemos "set return-to-nest? false"
porque ya está ahí....
cerramos el bracket... end
Por ahora no tenemos ninguna hormiga que tenga return-to-nest en verdadero
obviamente tenemos que hacer eso...
luego de que han comido hacemos "set return-to-nest? true"
Revisamos el código.... está bien, volvemos a la interfaz, Setup y Go.
Y hay un bastantes hormigas, es difícil ver lo que hacen, entonces reducimos el numero de hormigas
lo hacemos un poco más lento
podemos ver que las hormigas se están portando como deberían
comen su comida y regresan al nido antes de volver a salir.
Podríamos cambiar el color a rojo de nuevo para hacerlo más obvio... pero dejemos eso para después