Discriminación de agentes por sus propiedades.
Hasta el momento, para identificar a los agentes, o bien les hemos “llamado” a todos a la vez:
ask turtles [“comandos”]
ask turtles [“comandos”]
;; pedimos a todas las tortugas que ejecuten ciertos comandos
ask patches [“comandos”]
;; pedimos a todos los patches que ejecuten ciertos comandos
o bien les hemos “llamado” por su identificador (who en el caso de las tortugas, [pxcor pycor] en el caso de los patches):
ask turtle 5 [fd 5]
o bien les hemos “llamado” por su identificador (who en el caso de las tortugas, [pxcor pycor] en el caso de los patches):
ask turtle 5 [fd 5]
;;pedimos que sólo la tortuga 5 avance 5 posiciones
ask patch 3 4 [set pcolor blue]
;;pedimos que sólo el patch [3 4] se ponga azul
¿Cómo seleccionamos un conjunto de agentes que tienen una propiedad concreta? Es decir, ¿cómo seleccionaríamos por ejemplo todas las tortugas de color rojo o todos los patches que tengan coordenadas x positivas?
Para hacer esta distinción de los agentes a partir de sus propiedades, se utiliza la primitiva with.
La sintaxis es la siguiente:
¿Cómo seleccionamos un conjunto de agentes que tienen una propiedad concreta? Es decir, ¿cómo seleccionaríamos por ejemplo todas las tortugas de color rojo o todos los patches que tengan coordenadas x positivas?
Para hacer esta distinción de los agentes a partir de sus propiedades, se utiliza la primitiva with.
La sintaxis es la siguiente:
ask “agentes” with [“propiedad”] [“acciones”]
A continuación se muestran unos ejemplos de cómo hacer uso de esta primitiva. Escríbelos paso a paso en la ventana de comandos para familiarizarte con el uso de la primitiva with.
;;PASO 1. Creamos 2 tortugas de tamaño 1, las situamos en una posición aleatoria del mundo y las pintamos de rojo.
crt 2 [set shape "turtle" set size 1 set xcor random-pxcor set ycor random-pycor set color red]
;;PASO 2. Creamos 2 tortugas de tamaño 2, las situamos en una posición aleatoria del mundo y las pintamos de azul
crt 2 [set shape "turtle" set size 2 set xcor random-pxcor set ycor random-pycor set color blue]
;;PASO 3. Creamos 2 tortugas de tamaño 3, las situamos en una posición aleatoria del mundo y las pintamos de blanco
crt 2 [set shape "turtle" set size 3 set xcor random-pxcor set ycor random-pycor set color white]
;;PASO 4. Pedimos a las tortugas rojas que avancen 5 posiciones.
ask turtles with [color = red] [fd 5]
;;PASO 5. Pedimos a las tortugas azules que adquieran tamaño 4.
ask turtles with [color = blue] [set size 4]
;;PASO 6. Pedimos a las tortugas blancas que muestren “soy blanca” como etiqueta.
ask turtles with [color = white] [set label “soy blanca” show label]
;;PASO 7. Pedimos a las tortugas que tengan coordenada y positiva que avancen 3 posiciones.
ask turtles with [ycor > 0] [fd 3]
;; PASO 8. Pedimos a los patches que tengan coordenada x negativa que se vuelvan de color amarillo.
ask patches with [pxcor <0] [set pcolor yellow]
;;PASO 1. Creamos 2 tortugas de tamaño 1, las situamos en una posición aleatoria del mundo y las pintamos de rojo.
crt 2 [set shape "turtle" set size 1 set xcor random-pxcor set ycor random-pycor set color red]
;;PASO 2. Creamos 2 tortugas de tamaño 2, las situamos en una posición aleatoria del mundo y las pintamos de azul
crt 2 [set shape "turtle" set size 2 set xcor random-pxcor set ycor random-pycor set color blue]
;;PASO 3. Creamos 2 tortugas de tamaño 3, las situamos en una posición aleatoria del mundo y las pintamos de blanco
crt 2 [set shape "turtle" set size 3 set xcor random-pxcor set ycor random-pycor set color white]
;;PASO 4. Pedimos a las tortugas rojas que avancen 5 posiciones.
ask turtles with [color = red] [fd 5]
;;PASO 5. Pedimos a las tortugas azules que adquieran tamaño 4.
ask turtles with [color = blue] [set size 4]
;;PASO 6. Pedimos a las tortugas blancas que muestren “soy blanca” como etiqueta.
ask turtles with [color = white] [set label “soy blanca” show label]
;;PASO 7. Pedimos a las tortugas que tengan coordenada y positiva que avancen 3 posiciones.
ask turtles with [ycor > 0] [fd 3]
;; PASO 8. Pedimos a los patches que tengan coordenada x negativa que se vuelvan de color amarillo.
ask patches with [pxcor <0] [set pcolor yellow]
2 comentarios:
Uff, esto es un no parar, ¡qué ritmo, my God! No hay quien siga tanto ejercicio.
Para evitar los problemas que pueden surgir al copiar el código del blog y pegarlo en Netlogo, puedes descargarte el archivo desde aquí: Ejercicio7
Publicar un comentario