3. Catching Flies
En esta actividad crearás un modelo computacional en el que las Frogs se mueven y comen Flies que pasan volando. ¡Siéntete libre de probar tus propias ideas y hacer el modelo tuyo!
Objetivos de Aprendizaje
- Comenzar desde cero y programar nuevas funciones en un modelo
- Explicar la diferencia entre colocar bloques dentro de la parte "do" de un bloque "create___do" y fuera de él
- Explicar qué son los rasgos de los agentes y cómo cambiarlos
- Describir cómo los agentes interactúan entre sí a través de colisiones
- Crear una nueva breed
- Editar Widgets
Nuevos Términos
Breeds • Remix • Socket
Descripción del Modelo
- Tipos de Agentes ("Breeds")
- Frogs
- Flies
- Comportamientos
- Las Flies vuelan aleatoriamente
- Las Frogs se mueven aleatoriamente
- Interacciones
- Cuando las Frogs chocan con las Flies, "comen" (eliminan) la Fly
- De lo contrario, todo rebota entre sí
- Datos
- Un gráfico de líneas rastrea el número de Frogs y Flies a lo largo del tiempo
Parte 1: Crear un Nuevo Proyecto y Agregar Nuevas Breeds
En esta sección, iniciarás tu nuevo proyecto y crearás las páginas para las dos "breeds" (tipos de agentes) que existen en el proyecto: Flies y Frogs.
1. Crear un Nuevo Proyecto


- Ve a la página My Projects y haz clic en el botón para crear un nuevo proyecto (marcado en amarillo).
- Titula tu proyecto "Catching Flies" y selecciona Blank Project. Haz clic en "Create" para crear el proyecto.
2. Renombrar una Breed Existente



- Haz clic en la pestaña "Turtle" en la parte superior del área de código, y luego haz clic en el triángulo a la izquierda.
- Haz clic en el botón "Rename breed".
- Escribe "Frog" en el cuadro de texto y luego haz clic fuera para completar el cambio de nombre.
3. Agregar una Segunda Breed


- Haz clic en el botón "Add Breed" para agregar una nueva breed (tipo de agente).
- Nombra tu nueva breed "Flies".
Una breed es un tipo o categoría de agentes. Todos los agentes de una breed específica comparten los mismos rasgos y siguen las mismas instrucciones.
¡Verifica tu Progreso!
Asegúrate de tener las cinco pestañas que se muestran a continuación en tu Workspace:
Si estás trabajando con un compañero, puedes agregarlo como colaborador en este proyecto. Primero haz clic en "Add this project to my gallery", selecciona tu Public Gallery y haz clic en "submit". Eso hará que aparezca el botón "Add collaborators to this project". Haz clic en este botón, escribe el nombre de usuario de tu compañero y haz clic en "submit".
Parte 2: Configuración - Creando Flies
En esta sección crearás Flies y les darás rasgos iniciales cuando se haga clic en el botón "setup".
1. Responder a Clics de Botones

- Haz clic en la pestaña "The World" para mostrar la página "The World".
- Abre el cajón Interface.
- Arrastra un bloque "when ____ pushed" desde el cajón a la página.
- Selecciona "setup" del menú desplegable. La opción "setup" se refiere al botón "setup" que se encuentra en SpaceLand.
Los bloques representan instrucciones que los agentes siguen. Un programa es una secuencia de comandos para que los agentes sigan. Para componer un programa, los bloques se conectan entre sí. Por ejemplo, conectar bloques dentro del bloque "when ____ pushed" le dice al agente qué hacer cuando se hace clic en el botón elegido.
2. Crear 10 Flies

- Abre el cajón Agents.
- Para crear 10 Flies en SpaceLand:
- Arrastra el bloque "create___ each do" debajo del bloque "when [setup] pushed" y conéctalo.
- Escribe el número "10" en el socket vacío del bloque "create ___ each do".
- Selecciona "Flies" del menú desplegable en el bloque.
Cada uno de los agentes recién creados sigue inmediatamente las instrucciones que especifiques en la sección "do" del bloque "create___ do".
3. Establecer el Color de las Flies

- Abre el cajón Traits
- Para establecer el color de las Flies:
- Arrastra el bloque "set my ___ to ___" y conéctalo dentro del bloque "create___ each do"
- Arrastra el bloque "color:___" y colócalo en el socket vacío del bloque "set my___ to ___".
- Elige el color "black" del menú desplegable del bloque "color ___".
El bloque "set my ___ to ___" se usa para establecer o cambiar los rasgos de los agentes. El bloque "color:___" representa un color específico elegido del menú desplegable. Al especificar colores, debes usar uno de los bloques "color". Los agentes pueden no entender palabras escritas como red, purple, yellow, etc.
4. Dispersar las Flies

- Abre el cajón Agents.
- Para aleatorizar la posición de las Flies en SpaceLand:
- Arrastra el bloque "scatter" y colócalo debajo del bloque "set my___ to___", todavía dentro del bloque "create___ each do".
El bloque "Scatter" permite que cada una de las 10 Flies establezca su ubicación en una posición aleatoria en SpaceLand.
¡Verifica tu Progreso!
Haz clic en "Run Code", luego cada vez que hagas clic en "setup" deberías ver 10 Flies más.
Parte 3: Configuración - Creando una Frog
En esta sección, crearás una Frog y editarás sus rasgos.
¡Practica lo que has Aprendido!
Usa las habilidades y conocimientos que aprendiste en la Parte 2 para crear un nuevo agente Frog en SpaceLand: En el mismo bloque "When [setup] pushed" donde creaste las Flies, crea 1 Frog cuyo color sea green, tamaño sea 5, y forma sea pyramid (pista: usa el bloque "built-in shape").
Mostrar Solución

¡Verifica tu Progreso!
Haz clic en "Run Code", luego cada vez que hagas clic en "setup" deberías ver 10 Flies más y 1 Frog más (aunque las Frogs estarán todas en el mismo lugar porque no están dispersas como las Flies).
Parte 4: Configuración - Reiniciar el Modelo
En esta sección agregarás código para que cada vez que hagas clic en el botón "setup", SpaceLand se reinicie.
Eliminar Agentes Anteriores

- Asegúrate de que todavía estás en la pestaña "The World".
- Abre el cajón Agents.
- Para asegurarte de que todos los agentes anteriores se eliminen cuando se presione "setup":
- Arrastra el bloque "delete everyone" dentro del bloque "when ___ pushed" pero antes del bloque "create ___ do".
¡Verifica tu Progreso!
Haz clic en "Run Code", luego cada vez que hagas clic en "setup" deberías ver solo 10 Flies y 1 Frog, porque los anteriores fueron eliminados antes de agregar los nuevos.
Parte 5: Crear y Editar Widgets de Botones
En esta sección, crearás nuevos widgets de botones -- "Fly Around" y "Catch Flies!". En la siguiente sección, asignarás funciones a estos botones.
1. Renombrar un Widget de Botón

- Haz clic en el botón "Edit Interface" en la barra encima de SpaceLand.
- Haz clic en el botón "forever" y escribe "Fly Around" en la casilla etiquetada "Name".
- Haz clic en la "(X)".
2. Crear un Nuevo Widget de Botón Toggle


- Mientras todavía estés en el modo "Edit Interface", haz clic en el botón "Create Widget".
- Haz clic en el botón etiquetado "Toggle"
- Arrástralo a un lugar apropiado y nómbralo "Catch Flies!"
- Haz clic en el botón "Lock Interface" para salir del modo "Edit Interface".
Hay una gran variedad de widgets. Usarás frecuentemente "Toggle Button" y "Push Button" para controlar tu programa. Otras opciones como "Labels" y "Graphs" te permiten mostrar información al usuario. "Data Boxes" y "Sliders" pueden usarse para mostrar información o recibir entrada del usuario. Los bloques usados para interactuar con estos widgets están en el cajón Interface.
¡Verifica tu Progreso!
Deberías ver cuatro Widgets en SpaceLand -- "Catch Flies!", "Fly Around", "setup" y "Data"
Parte 6: Movimiento de las Flies
En esta sección, harás que las Flies se muevan por SpaceLand.
1. Programar las Flies para Responder al Botón Fly Around

- Ve a la pestaña "Flies" en Workspace -- cualquier código aquí solo es seguido por las Flies.
- Para conectar las acciones de las "Flies" a un botón toggle:
- Abre el cajón Interface.
- Arrastra el bloque "while___ toggled" y selecciona la opción "Fly Around" del menú desplegable.
El bloque "while___ toggled" le dice a las Flies qué hacer mientras el botón toggle especificado esté activado.
2. Programar el Movimiento de las Flies

- Para hacer que las "Flies" se muevan mientras el botón "Fly Around" esté activado:
- Abre el cajón Movement.
- Arrastra un bloque "forward" y conéctalo al bloque "while___ toggled".
- Escribe "1" en el socket del bloque "forward" -- esto significa que las Flies se moverán un paso a la vez.
El "1" le dice a cada agente Flies que avance 1 paso durante cada tick (el reloj de StarLogo Nova marca 5 veces por segundo cuando funciona a velocidad predeterminada). Un número mayor de pasos hará que parezca que las Flies se mueven más rápido.
¡Verifica tu Progreso!
Haz clic en "Run Code", "setup", luego "Fly Around". Deberías ver las Flies moviéndose.




Parte 7: Movimiento de la Frog
En esta sección, harás que la Frog se mueva por SpaceLand.
¡Practica lo que has Aprendido!
Usa las habilidades y conocimientos que aprendiste en la Parte 6 para programar los movimientos de la Frog. Programa el agente Frog para que se mueva a 3 pasos a la vez cuando "Catch Flies!" esté activado.
Mostrar Solución

¡Verifica tu Progreso!
Haz clic en "Run Code", "setup", "Fly Around", luego "Catch Flies!". Deberías ver la Frog moviéndose de lado a lado.
Ahora mismo, si una Fly choca con tu Frog no pasa nada. En la siguiente parte crearemos el código para una colisión entre la Frog y la Fly. Al hacerlo, la Frog "comerá" la Fly cuando choquen.
Parte 8: Colisiones
En esta sección escribirás código para que cuando la Frog y una Fly choquen, la Frog "coma" la Fly. También agregarás código a la página Everyone para que todas las demás colisiones resulten en que los agentes reboten entre sí.
1. Programar la Colisión

- Navega a la página Frog.
- Abre el cajón Detection.
- Para programar lo que ocurrirá cuando la Frog choque con una Fly:
- Arrastra el bloque "on collision with ___" a la página Frog
- Selecciona "Flies" del menú desplegable en el bloque "on collision with ___".
- Saca el bloque "collidee"; lo necesitarás en el siguiente paso.
El bloque "on collision with ___" le dice al agente de la página en la que se encuentra (en este caso las Frogs) qué hacer cuando choquen con un agente de la breed seleccionada (en este caso las Flies).
2. Programar la "Comida" de la Fly

- Navega al cajón Agents.
- Para eliminar la Fly que choca con la Frog:
- Arrastra el bloque "delete agent" dentro del bloque "on collision with ___"
- Conecta el bloque "collidee" en el bloque "delete agent".
El bloque "collidee" representa al otro agente en una colisión. Así que el código anterior le dice a las Frogs que cada vez que una Frog choque con una Fly, la Frog debe eliminar esa Fly.
3. Programar que Everyone Rebote entre Sí

- Navega a la página Everyone -- el código en esta página será seguido por todos los agentes.
- Arrastra un bloque "on collision with ___" (del cajón Detection) a la página y selecciona "Everyone" en el menú desplegable.
- Abre el cajón Movement
- Arrastra un bloque "face towards ___" dentro del bloque de colisión.
- Arrastra un bloque "right by ___ degs" y conéctalo debajo del "face towards ___". Establece la cantidad de giro en 180 grados.
- Abre el cajón Detection
- Arrastra un bloque "collidee" en el socket vacío del bloque "face towards ___".
Debido a que esto está en la página Everyone, todos--tanto Frogs como Flies--seguirán las instrucciones. Esto significa que para las colisiones Frog-Fly, se ejecutarán dos conjuntos de código -- el código de "comer" y el código de "rebotar". StarLogo Nova no tiene un bloque "face away". Entonces, en su lugar, el agente se dirige hacia el collidee y luego gira 180 grados a la derecha. ¡Ahora está mirando en dirección opuesta al collidee! Descubrir cómo usar un grupo de pasos más pequeños para lograr un objetivo más grande es el desafío central de la programación de computadoras.
¡Verifica tu Progreso!
Haz clic en "Run Code", "setup", "Fly Around" y "Catch Flies", deberías ver las Flies siendo "comidas" por las Frogs al chocar. También deberías ver las Flies rebotando entre sí si chocan unas con otras.
Parte 9: Agregar un Gráfico
En esta sección agregarás un gráfico de líneas para rastrear el número de Frogs y Flies a medida que los números cambian con el tiempo.
1. Crear un Widget de Gráfico de Líneas

- Haz clic en el botón "Edit Interface" en la barra encima de SpaceLand.
- Haz clic en "Create Widget" y selecciona "Line Graph".
- Arrastra el gráfico a la pantalla para que no cubra otros widgets ni el cuadrado verde del terreno.
2. Configurar el Gráfico

- Haz clic en el gráfico para abrir su ventana de configuración.
- Dale al gráfico un nombre y buenas etiquetas para los ejes X e Y.
- Renombra la primera serie a Frogs.
- Haz clic en el botón "Add Series" para agregar una segunda serie, y renómbrala a Flies.
- Usa los selectores de color para elegir colores para las líneas que representarán a las Frogs y las Flies.
- Haz clic en el botón "Lock Interface".
3. Actualizar los Datos del Gráfico en Cada "Tick" del Reloj

- Navega a la página The World.
- Abre el cajón Interface
- Arrastra un bloque "while _ toggled" y elige "Catch Flies".
- Arrastra el bloque "add data to line graph" y conéctalo al bloque "while _ toggled".
- Abre el cajón Environment.
- Toma el bloque "clock" y conéctalo al bloque "add data to line graph" como se muestra.
- Abre el cajón Detection.
- Toma el bloque "count ___ within ___ steps" y conéctalo al bloque "add data to line graph" como se muestra.
- Haz dos conjuntos de estos bloques -- uno para Frogs y otro para Flies.
La razón de los 200 pasos es que SpaceLand tiene solo 101 pasos de ancho, así que 200 pasos son más que suficientes para incluir a todos.
4. Limpiar el Gráfico al Configurar el Modelo

- Encuentra el código que configura el modelo en la página The World.
- Para que el gráfico se limpie y comience desde cero ticks cada vez que hagas clic en setup:
- Al final de este código, agrega un bloque "clear line graph ___" (de Interface) y un bloque "set clock to ___" (de Environment) como se muestra.
¡Verifica tu Progreso!
Ejecuta tu modelo, verifica que el gráfico de líneas se reinicie cuando se haga clic en "setup" y se actualice mientras el modelo está en ejecución.
Parte 10: Extensiones
Si tienes tiempo, prueba algunas extensiones de la lista a continuación para desarrollar tu simulación. Las extensiones tienden a progresar de tareas fáciles a difíciles. Algunas de ellas requieren nuevas habilidades y bloques que no has usado antes. Además, siéntete libre de explorar y probar cosas diferentes que no están incluidas aquí por tu cuenta.
Es posible que quieras hacer clic en el botón "Remix" en la parte superior de la página de tu proyecto antes de intentar estas. Guarda una nueva copia de tu proyecto para que puedas volver a la versión funcional si algo que intentas no funciona como se esperaba.
- Agregar más Frogs en diferentes ubicaciones, y hacerlas de diferentes colores.
- Más fácil: Usa múltiples bloques "create___each do".
- DESAFÍO: Haz esto usando solo el bloque create que ya tienes, con bloques adicionales adjuntos dentro.
- Movimiento tipo rana: Usa bloques del cajón Movement para hacer que las Frogs giren y se muevan de una manera más parecida a una rana en SpaceLand. Usa el bloque "yield" (del cajón Logic) para hacer que las Frogs se detengan entre movimientos, para que parezca más que están saltando.
- Hacer que las Frogs crezcan cada vez que "coman" una Fly.
- Control deslizante de velocidad de vuelo: Crea un widget slider llamado "flying speed" y úsalo para determinar qué tan lejos se mueven las Flies cada vez. (PISTA: usa un bloque "___ slider value" del cajón Interface.)
- Seguimiento de puntuación: Programa el databox Data para llevar un registro de cuántas Flies ha comido la Frog. (PISTA: usa un bloque "set data ___" del cajón Interface.)
- Luciérnagas: ¡Usa los nuevos bloques experimentales "glow" en el cajón Traits para convertir las Flies en luciérnagas! También puedes reducir la intensidad de la luz direccional y el brillo del mundo a 0 (ambos bloques en el cajón Environment) para que se sienta más como de noche. (Asegúrate de cambiar el color de las Flies de black a un color diferente para que el efecto de brillo sea visible).
Copyright 2024 MIT Scheller Teacher Education Program. Distribuido bajo licencia Creative Commons CC BY-NC 4.0.