71
Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México CONTAGIO Un virus ha infectado tu mundo. A medida que las personas sanas se mueven de forma aleatoria a través del mundo y entran en contacto con personas enfermas, ellos enferman también. Aprende cómo se esparcen las enfermedades por medio de esta simulación. Created by: Susan Miller, University of Colorado, School of Education Traducción y adaptación: Raquel Landa, Tec de Monterrey, Campus Monterrey Esta curricula fue diseñada como parte de la currícula del proyecto de simulaciones del Scalable Game Design Se creó utilizando ideas y porciones de trabajo de Fred Gluck. This material is based upon work supported by the National Science Foundation under 1

Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Embed Size (px)

Citation preview

Page 1: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México

Un virus ha infectado tu mundo. A medida que las personas sanas se mueven de forma aleatoria a través del mundo y entran en contacto con personas enfermas, ellos enferman también. Aprende cómo se esparcen las enfermedades por medio de esta simulación.

CONTAGIO

Created by: Susan Miller, University of Colorado, School of EducationTraducción y adaptación: Raquel Landa, Tec de Monterrey, Campus Monterrey

Esta curricula fue diseñada como parte de la currícula del proyecto de simulaciones del Scalable Game Design Se creó utilizando ideas y porciones de trabajo de Fred Gluck.

This material is based upon work supported by the National Science Foundation under Grant No. DRL-1312129 and CNS-1138526. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

1

Page 2: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Objetivos de la lección

Crear la simulación de una epidemia Explicar y utilizar los patrones de pensamiento computacional que se enlistan.

Habilidades previas

Se asume que los estudiantes deben contar con las siguientes habilidades, para más información respecto a ellas puede consultar el plan de la clase de Frogger.

Crear agentes Comportamientos básicos como:

o Control de teclaso Movimiento aleatorioo Finalizar la simulación

Patrones de pensamiento computacional

o Control de cursoro Colisióno Propiedades de la simulación

Retos:o Difusióno Ascenso de colinas

Duración de la lección

Cinco a ocho lecciones de entre 30 a 45 minutos (algunos estudiantes pueden incluso avanzar de forma más rápida).

Descripción de las actividades de la lección

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 2

Page 3: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Parte 1: Crear un modelo simple de la propagación de la enfermedad Repaso/Introducción del concepto: Usando las propiedades de la simulación Parte 2: Agregando un agente monitor para crear una simulación más exacta. Reto 1: Hacer que los agentes persona enfermen por un tiempo variable. Reto 2: Modelando la inmunidad. Reto 3: Agregar muertes al modelo. Reto 4: Vacunas

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 3

Page 4: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Tabla de contenidos

INSTRUCCIONES DEL PROFESOR - PARTE 1 – CONTAGIO BÁSICO

Hoja de trabajo del alumno 1A: Parte 1 – Contagio básico

Hoja de trabajo del alumno 1B: Parte 1 – Contagio básico Paso a Paso

• Parte 1: Crear agentes

• Parte 2: Crear el mundo

• Parte 3: Programar los agentes

INSTRUCCIONES DEL PROFESOR - USANDO LAS PROPIEDADES DE LA SIMULACIÓN

Hoja de trabajo del alumno 2A: Usando las propiedades de la simulación

INSTRUCCIONES DEL PROFESOR - PARTE 2 – AGREGANDO UN AGENTE MONITOR

Hoja de trabajo del alumno 2B: Parte 2 – Agregando un agente monitor

• Tarea 1: Programando con métodos de percibir y actuar

• Tarea 2: Contando los agentes persona sanos y enfermos

Tarea 3: Graficar el número de personas sanas y enfermas

Tarea 4: Terminar la simulación

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 4

Page 5: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

RETOS:

Hoja de trabajo del estudiante: Reto 1.0: Modelando la duración de la enfermedad

Hoja de trabajo del estudiante: Reto 2.0: Modelando la inmunidad

Hoja de trabajo del estudiante: Reto 3.0: Muertes

Hoja de trabajo del estudiante: Reto 4.0: Vacunas

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 5

Page 6: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Definiciones

Concepto DefiniciónAtributo del agente

Un identificador con un nombre o una variable local que puede tener distintos valores y que pertenece a un agente. Aroma y Reloj_De_Enfermedad son los atributos de agente.

Algoritmo Un grupo de instrucciones diseñadas para realizar una tarea específica.Corchetes Método para agrupar información utilizando los símbolos “[“ y “]”

Emisión (broadcast)

La forma en la que un agente se comunica con otros agentes que no están adyacentes a él, los agentes emiten (o mandan) el nombre de un método para decirle a otros agentes que revise las reglas de ese método. El método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente que lo recibe.

Colisión Cuando dos agentes interactúan uno al lado del otro, como el caso del camión y la rana.Decremento Restar uno.

Difusión

El proceso mediante el cual un atributo, como el aroma, que pertenece a un grupo de agentes, como el suelo, cambia su valor, siendo mayor mientras más cercano de la fuente que lo generó se encuentra y menor conforme se aleja de esta fuente.

Incremento Sumar uno.

Ascenso de colinas

Un algoritmo de búsqueda específica por medio del cual el agente que busca revisa los valores de un atributo pertenecientes a otro agente.

Método Un grupo de reglas que se siguen cuando un agente debe tomar una decisión. Paréntesis Método para agrupar información utilizando los símbolos “(“ y “)”Muestreo El proceso de contactar y comunicarse con cada agente.Propagarse La transmisión del atributo de un agente.

Aleatorio Que sucede sin un orden específico.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 6

Page 7: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Orden de reglas El orden en que las reglas se organizan para cada agente.Propiedad de la simulación

Un atributo (valor) al que todos los agentes tienen acceso.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 7

Page 8: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Estrategias generales de enseñanza1

Filosofía básica

El objetivo de aprendizaje de estas lecciones es aprender y aplicar los Patrones de Pensamiento Computacional en el contexto de un juego familiar para los alumnos, el énfasis en estos patrones es esencial para el aprendizaje de los estudiantes.

Cada esfuerzo se ha realizado para crear instrucciones enfocadas a un aprendizaje por descubrimiento. La instrucción directa o explicación por parte del profesor se ha utilizado para las situaciones en las que los alumnos están aprendiendo algún concepto de programación por primera vez; los materiales que se proporcionan aseguran que los alumnos entiendan los conceptos de programación y no solo realicen las actividades copiando un código que no entienden. Existen materiales especiales para los alumnos que son nuevos en este programa.

Existe un material del alumno para cada parte del diseño del juego, estos materiales tienen la intención de ser utilizados en conjunto con el material del profesor, el cual proporciona consejos y puntos a discutir con los alumnos. Es importante tener en cuenta que los estudiantes pueden sentirse frustrados si el profesor no les da el apoyo necesario; sin embargo, pueden no aprender los conceptos si el profesor les resuelve todas las prácticas, es importante encontrar el balance entre dejar que los alumnos descubran por sí mismos las soluciones y apoyarlos cuando tengan dudas.

Proceso Descubrimiento Guiado1 Esta información se basa en los siguientes documentos:Basawapatna, A. R., Koh, K. H., & Repenning, A. (2010, June). Using scalable game design to teach computer science from middle school to graduate school. In

Proceedings of the fifteenth annual conference on Innovation and technology in computer science education (pp. 224-228). ACM.

National Research Council. (2011). Learning science through computer games and simulations. (M. Hilton & M. Honey, Eds.). Washington, DC: The National Academies Press.

National Research Council. (2014). STEM Integration in K-12 Education:: Status, Prospects, and an Agenda for Research. (M. Honey, G. Pearson, & H. Schweingruber, Eds.). Washington, DC: The National Academies Press.

Repenning, A., & Ioannidou, A. (2008, March). Broadening participation through scalable game design. In ACM SIGCSE Bulletin (Vol. 40, No. 1, pp. 305-309). ACM.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 8

Page 9: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Modelar el proceso en lugar de dar la respuesta a los alumnos. Es importante que construyas el juego por ti mismo antes de asignarlo a los alumnos, de esta forma puedes identificar los posibles problemas que pueden suceder y tu rol como facilitador será mejor.

Hacer que los estudiantes resuelvan los problemas por sí mismos, intenta realizar preguntas que los guíen a la solución, pero no les resuelvas todo, apoya cuando lo consideres estrictamente necesario y cuando creas que sin tu ayuda realmente el alumno no podrá seguir avanzando.

Permite el trabajo en equipo. Es muy común que al resolver problemas de programación los alumnos hablen entre ellos para llegar a la solución e incluso reutilicen código de otros programas realizados. El que los estudiantes hablen entre ellos para resolver un problema les ayuda a pensar de forma crítica respecto a los patrones de pensamiento computacional que están aprendiendo, así como a entender mejor los pasos que requieren seguir para la solución del problema. Además, el ver cómo otros resuelven un problema les deja ver que hay más de una estrategia para llegar al mismo resultado, y que incluso algunas son más eficientes que otras.

Es necesario reconocer que la programación es un proceso largo de prueba y error, especialmente cuando se está aprendiendo por primera vez los conceptos básicos. Es importante concientizar a los alumnos de este hecho para que no se sientan desmotivados al cometer algún error.

Enseña y fomenta en tus alumnos el proceso de crear pseudocódigo antes de que comiencen a programar. El pseudocódigo es una descripción en lenguaje natural de lo que el código debe hacer, es la serie de pasos que desde su perspectiva son necesarios para resolver el problema, el crear el pseudocódigo les permite analizar lo que cada agente debe realizar y cómo trabajarán las distintas reglas y métodos del programa. Es necesario revisar estas primeras ideas de los alumnos para orientarlos hacia los objetivos de aprendizaje de la lección.

Ayuda a tus estudiantes a realizar la revisión de su código, enséñales a utilizar la opción de reporte, la cual despliega todo el código del proyecto. A pesar de que el programador debe abrir nuevamente el proyecto para editar el código, el visualizarlo todo de forma estructurada en una sola ventana puede ayudar a encontrar los errores más fácilmente.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 9

Page 10: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Bloques de construcción

Cada proyecto está diseñado para ser construido considerando el proyecto anterior, el material proporciona una explicación muy breve de los conceptos que se aprendieron en sesiones previas, mientras que cuando se trata un nuevo concepto se realizan explicaciones más amplias y detalladas.

Asegúrate de explicar cómo se enlazan los nuevos conceptos con los bloques de construcción de proyectos previos (especialmente la relación entre PacMan en la parte de área de difusión y colina cuesta arriba) ya que los patrones de pensamiento computacional de las simulaciones previas aparecerán en juegos y futuras simulaciones.

Recuerda que el entendimiento conceptual lleva tiempo, por lo que es probable que sea necesario explicar los conceptos varias veces, utilizando distintos ejemplos de tal forma que los estudiantes los comprendan y puedan alcanzar los objetivos de aprendizaje.

Apoyo en el aprendizaje

Las investigaciones demuestran que el diseño de juegos está asociado con la motivación y atención de los estudiantes, permitir a los alumnos personalizar sus juegos impacta positivamente en su involucramiento y motivación para completar las tareas.

Codificar puede ser difícil para algunos estudiantes y todos los estudiantes se frustran en algún momento, especialmente cuando el código no lleva a los resultados esperados. Haz cumplidos a los estudiantes por su disposición a seguirlo intentando y aliéntalos a no darse por vencidos e incluso a compartir con otros sus logros.

Asegúrate de comunicar a los estudiantes que el proceso es más importante que la respuesta, y que el llegar a programar un proyecto lleva tiempo. No presiones a los alumnos para que se apresuren o les

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 10

Page 11: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

proporciones el código de respuesta, el proceso de descubrir la solución por sí mismos logra un entendimiento conceptual mucho mayor.

Instrucción diferenciada

En esta lección hay una gran cantidad de vocabulario que puede ser nuevo para los estudiantes, hay que tomarse el tiempo de definir las palabras que no conozcan y utilizarlas en un contexto familiar para ellos, de tal forma que se asegure que han comprendido el concepto.

Estudiantes que requieren un mayor nivel de retos: Algunos estudiantes tienen capacidades muy desarrolladas en la programación y pueden terminar las actividades de forma muy rápida, es necesario estar preparado para dejar que puedan adelantar los proyectos e incluso asignarles materiales adicionales (retos).

Estudiantes que requieren un mayor grado de apoyo: También existen estudiantes (particularmente los que no tienen experiencia con el Frogger) que pueden tener más dificultades con las actividades. Existen dos opciones para esta instrucción diferenciada. Considera las necesidades de los estudiantes y de la clase para seleccionar cuál aplicar:

Lección 1: Opción 1: Forma parejas de trabajo que reúnan un estudiante que requiere más apoyo

con un estudiante que cuenta con una mayor habilidad para programar. Opción 2: Proporciona a los estudiantes que requieren mayor apoyo la Hoja de trabajo

del alumno 1ª, la cual proporciona instrucciones más guiadas. Vocabulario para el estudiante: Contagio, Enfermedad, Sano, Aleatoriamente, Orden de

reglas, Representación. Manejo del tiempo: Aunque los estudiantes suelen involucrarse más en la actividad

cuando diseñan sus propias herramientas, algunos pueden pasar mucho tiempo diseñando los agentes o frustrarse al hacerlo, sugiere que utilicen una caja rosa para las personas sanas y una verde para las enfermas.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 11

Page 12: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Lección 2: Forma parejas de trabajo que reúnan un estudiante que requiere más apoyo con un

estudiante que cuenta con una mayor habilidad para programar. Vocabulario para estudiantes: Algoritmo, propagación, atributo, variable local, difusión,

método, paréntesis, corchetes.

Lección 3: Esta es una lección más complicada, por lo que es necesario asignar más tiempo y

proporcionar ayuda adicional. Forma parejas de trabajo que reúnan un estudiante que requiere más apoyo con un

estudiante que cuenta con una mayor habilidad para programar. Vocabulario para estudiantes: Recuperar, emisión, incrementar.

Es importante resaltar que existen dos versiones de las hojas de trabajo del alumno. La versión ESTÁNDAR que se diseñó para la mayoría de los estudiantes, en esta se asume que los estudiantes tienen un conocimiento básico de AgentCubes. La versión ALTERNATIVA que se diseñó para aquellos alumnos que necesita de una mayor apoyo y explicación en las actividades, ésta segunda versión tiene instrucciones más detalladas para la primera parte de la actividad.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 12

Page 13: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Instrucciones para el profesor: Parte 1 – Contagio básico

Para la introducción del proyecto se pueden realizar las siguientes preguntas a los alumnos respecto a cómo se propagan las enfermedades:

• Pregunta a los estudiantes cómo se contagian los resfriados y determinen las “reglas” para que ocurra un contagio. Por ejemplo:

o Las personas sanas y las personas enfermas caminan alrededor del mundoo Cuando las personas sanas entran en contacto con una persona enferma, algunas veces se enferman

también.o Cuando las personas enfermas descansan (o acuden al doctor) usualmente (aunque no siempre) se

alivian.

• Puedes utilizar este video de TED Education traducido al español que explica cómo se esparcen las enfermedades alrededor del mundo https://www.youtube.com/watch?v=YY9PmxHduHo&nohtml5=False

Si muestras este video a los estudiantes puedes preguntarles:

o ¿Cómo se propaga la enfermedad?o ¿Qué sucede cuando más y más personas enferman?o ¿Qué partes de una epidemia pueden ser modeladas? ¿Qué partes pueden ser difíciles de modelar?o ¿Identifican variables?, por ejemplo, ¿importan qué tan contagiosa es la enfermedad? ¿importa qué

tanto dura la enfermedad? ¿importa si se acude al médico?

Explica que todas estas son características de diseño que deben ser consideradas al momento de planear una simulación por computadora.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 13

Page 14: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Ahora es el momento de decir a tus alumnos que ellos tendrán que diseñar su propia simulación de un contagio.

En conjunto como clase, creen una descripción breve de la simulación de la contagio similar a la que se muestra:

Identifiquen los objetos de la simulación, es decir los agentes, localizando los sustantivos que se encuentren en la descripción de la simulación.

o Cuando los sustantivos sean iguales, pero con distintos adjetivos que los describan, es muy probable que se requieran dos representaciones, por ejemplo en PacMan fantasma verde y fantasma rojo.

Identifiquen la interacción de los agentes ubicando los verbos que aparezcan en la descripción.

La descripción puede parecerse a esta:

Personas sanas y personas enfermas caminan alrededor de la ciudad. Cuando entran en contacto entre ellas, las personas sanas tienen una probabilidad del 50% de enfermar. Las personas enfermas se recuperan con una probabilidad del 50%.

Agentes: personas, con dos representaciones: sanas y enfermas. ciudad (cuadros que cubren el mundo para que los agentes puedan caminar sobre algo=

Acciones: Al lado de (next to), con una probabilidad de 50% (at some probability), cambiar a persona enferma

(change to) Después de cierto tiempo (after some time), con una probabilidad de 50% (at some probability), aliviarse.

Da a tus estudiantes 10 minutos aproximadamente para trabajar con un compañero y discutir los pasos que se necesitarán para crear esta simulación. Si los estudiantes ya completaron Frogger o PacMan. Deben tener una

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 14

Page 15: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

idea muy clara de cómo resolver este escenario. Agrupa estudiantes con experiencia y estudiantes nuevos para facilitarles el proceso. Enfatiza la necesidad de analizar el proceso de aprendizaje que están siguiendo.

En este punto no debe haber nadie trabajando en el teclado aún, estamos en una fase de análisis.Solicita a los

alumnos que discutan entre ellos posibles ideas, sin

indicarles si son correctas o no, evita decir a un alumno si sus ideas son buenas/malas, correctas/incorrectas. Una vez que han discutido entre ellos entregue a los alumnos la hoja de trabajo correspondiente.

Hoja de trabajo del alumno 1A, solo muestra los detalles necesarios para alumnos con experiencia en AgentCubes que pueden comenzar a trabajar por sí mismos. Puede decidir no imprimir la segunda página con el código si los estudiantes pueden deducirlo por sí mismos.

Hoja de trabajo del alumno 1B, proporciona instrucciones paso a paso para crear el mundo y los agentes para estudiantes que son nuevos en AgentCubes o que han faltado a alguna clase.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México

Recuerda que esta lección se basa en el Aprendizaje por Descubrimiento Guiado y guiado por el profesor. Asegúrate de dar a los estudiantes tiempo para trabajar y lograr resolver los retos por sí mismos. Alienta a los estudiantes a trabajar juntos y ayudarse entre ellos. Enfatiza que el enfrentarse a problemas o no saber cómo resolver algo desde el inicio es normal y es parte del proceso de programación.

15

Page 16: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Hoja de trabajo del alumno 1A: Parte 1 – Contagio básicoEn esta actividad estarás modelando o simulando la propagación de una enfermedad. Comenzaremos con un modelo muy simple y lo iremos modificando para que se acerque cada vez más a la realidad. Utiliza pseudocódigo, que consiste en explicar con palabras comunes, que posteriormente se convertirán en código, las acciones que realizará tu programa.

Tareas:1. Crear un proyecto nuevo llamado Contagio_TuNombreCompleto2. Crear los agentes necesarios para la simulación: Ciudad y Persona (con dos formas sana y enferma)3. Crear el mundo básico con suelo, mucha gente sana y una persona enferma.4. Esta es la descripción en Pseudocódigo de tu simulación de una contagio:

El agente Persona en el método while running (mientras se ejecute) contiene reglas describiendo distintas situaciones:

Regla 1: Si la persona se ve (see) sana y se encuentra junto (next to) a al menos una persona enferma, cambiar (change) con un 50% de probabilidad (percent-chance) de persona sana a persona enferma.

Regla 2: Si la persona se ve (see) sana entonces moverse aleatoriamente (move-random-on) por el suelo.

Regla 3: Si la persona se ve (see) enferma entonces con un 50% de probabilidad (percent-chance) cambiar (change) a la persona de enferma a sana.

5. ¿Por qué la Regla 2 debe ir después de la Regla 1? ¿Qué pasa si inviertes el orden?

6. Una vez que la simulación está programada correctamente utiliza el control de ejecución paso a paso que se encuentra en la parte superior del mundo y observa lo que sucede: ¿Las personas sanas que se encuentran al lado de personas enfermas también enferman? ¿La simulación termina? ¿Puedes identificar cuántas personas se enferman, mueren, se alivian? ¿Las personas enfermas se mueven? ¿Qué pasa cuando incrementas el porcentaje de probabilidad de enfermarse al 100%? ¿Qué pasa cuando disminuyes el porcentaje de probabilidad de aliviarse al 0%? ¿En qué puntos consideras esta simulación realista?

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 16

Page 17: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

¿En qué puntos crees que la simulación no asemeja la realidad?

Código para el Agente Persona

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 17

Page 18: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 18

Page 19: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Hoja de trabajo del alumno 1B: Parte 1 – Contagio básicoEn esta actividad estarás modelando o simulando la propagación de una enfermedad. Comenzaremos con un modelo muy simple y lo iremos modificando para que se acerque cada vez más a la realidad. Utiliza pseudocódigo, que consiste en explicar con palabras comunes, que posteriormente se convertirán en código, las acciones que realizará tu programa.

Tareas:1. Crear un proyecto nuevo llamado Contagio_TuNombreCompleto2. Crear los agentes necesarios para la simulación: Ciudad y Persona (con dos formas sana y enferma)3. Crear el mundo básico con suelo, mucha gente sana y una persona enferma.4. Esta es la descripción en Pseudocódigo de tu simulación de un contagio:

El agente Persona en el método while running (mientras se ejecute) contiene reglas describiendo distintas situaciones:

Regla 1: Si la persona se ve (see) sana y se encuentra junto (next to) a al menos una persona enferma, cambiar (change) con un 50% de probabilidad (percent-chance) de persona sana a persona enferma.

Regla 2: Si la persona se ve (see) sana entonces moverse aleatoriamente (move-random-on) por el suelo.

Regla 3: Si la persona se ve (see) enferma entonces con un 50% de probabilidad (percent-chance) cambiar (change) a la persona de enferma a sana.

5. ¿Por qué la Regla 2 debe ir después de la Regla 1? ¿Qué pasa si inviertes el orden?

Parte 1: Crear AgentesPaso 1: Crea tu proyecto

Da clic en el icono de AgentCubes y abre el programa Da clic en el botón de New Project en la parte inferior derecha de la

ventana de Proyectos o selecciona New Project at del menú de File

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 19

Page 20: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

y guarda tu proyecto en el escritorio o donde lo indique tu profesor.

Paso 2: Ponle un nombre a tu simulación

Usa el nombre Contagio_TuNombreCompleto y da clic sobre el botón OK.

Paso 3: Crear un agente

Da Clic sobre la opción“+ Agent” que encuentra en la parte inferior izquierda de la ventana de AgentCubes

Paso 4: Usa como nombre de tu agente “Persona”

Puedes seleccionar cualquierade las imágenes de “inflatable icon” y presiona OK

Paso 5: Selecciona el agente de persona que acabas de crear y que aparece en el menú de la

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 20

Page 21: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

izquierda y da clic en el botón de “+Shape” que aparece en la parte inferior izquierda de la pantalla de AgentCubes.

Step 6: Crea una nueva forma con la opción de “+ Shape” y nómbrala “Persona_Sana”

Paso 7: Selecciona la forma “Persona_Sana” del agente “Persona” y ve al menú “Agents” “Pick Shape”

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 21

Page 22: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Paso 8: Selecciona una persona de la lista de People de “Inflatable Icon” para ser tu persona sana.

Luca o Sally pueden servirte.

Da clic en “OK”

Paso 9.

Crea una forma para tu Persona_Enferma. Utiliza el zombi Billy o colorea de verde o rojo a tu persona sana para diferenciar claramente a la persona enferma de la sana.

Paso 10: Para crear el agente del suelo da clic en “+Agent” y nómbralo “Ciudad”.

Utiliza cualquier opción de “Title”.

Parte 2: Crear el mundo Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 22

Page 23: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Utiliza la siguiente barra de herramientas para crear el mundo:

La herramienta de selección se utiliza para mover agentes o revisar los atributos de un agente.

La herramienta de lápiz dibuja un agente en el mundo.

La herramienta de rectángulo punteado coloca un agente en cada recuadro del mundo dentro del rectángulo creado con la herramienta de selección por medio de un arrastrar y soltar.

La herramienta de borrador se utiliza para borrar un agente del mundo.

La herramienta de mano se utiliza para llamar un método creado por el usuario.

El mundo es el espacio de la simulación en el cual los agentes ejecutan sus acciones.

Paso 11: Dibuja el suelo, las personas sanas y una persona enferma en el mundo

Utiliza la herramienta de rectángulo punteado para dibujar el suelo de la ciudad en el mundo.

Utiliza la herramienta de lápiz para dibujar a

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 23

Page 24: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

las personas.

Da Clic en el botón de Save cuando estés satisfecho con el mundo que creaste.

Una vez que has guardado el mundo puedes utilizar el botón de reinicio para regresar al mundo inicial que guardaste.

Ahora que has creado un mundo, utiliza las herramientas de 3D para mover el suelo de tu mundo de tal forma que tengas una vista en tercera

dimensión en lugar de una vista desde el aire.

La herramienta de pelota inclina y gira tu mundo.

La herramienta de paneo mueve tu mundo dentro de la ventana de AgentCubes.

La herramienta de zoom acerca o aleja la vista de tu mundo. La vista de tu mundo puede quedar parecida a esta:

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 24

Page 25: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Parte 3: Programar los agentesDa clic en uno de los agentes de la lista de agentes que se encuentra a la izquierda de la ventana de AgenCubes, al hacerlo puedes ver los métodos y reglas que controlan el

comportamiento de ese agente dentro del mundo. Paso 1:

Crea la regla 1

Regla 1: Si una Persona_Sana se encuentra junto (next-to) a al menos una persona enferma (>=1), cambiar (change) con un 50% de probabilidad (percent-chance) de Persona_Sana a Persona_Enferma.

¿Por qué se requiere utilizar la condición junto a >=1 persona (next-to >= 1)?

¿Debe enfermar una persona sana que se encuentra junto a (next to) 2 personas enfermas?

¿Debe enfermar una persona sana que se encuentra junto a (next-to) 1 persona enferma?

Debido a que en ambos casos la respuesta es afirmativa utilizamos al condición junto a >=1 (next-to>=1) Persona_Enferma, lo que significa estar junto AL MENOS UNA (pero pueden ser más) persona enferma.

Paso 2: Regla 2: Si Persona_Sana entonces moverse aleatoriamente (move-random-on) por la

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 25

Page 26: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Crea la regla 2 ciudad (city).

Paso 3:

Crea la regla 3

Regla 3: Si Persona_Enferma entonces con un 50% de probabilidad (percent-chance) cambiar (change) a la Persona_Enferma a Persona_Sana.

Una vez que la simulación está programada correctamente utiliza el control de ejecución paso a paso que se encuentra en la parte superior del mundo y observa lo que sucede:

¿Las personas sanas que se encuentran al lado de personas enfermas también enferman? ¿La simulación termina? ¿Puedes identificar cuántas personas se enferman, mueren, se alivian? ¿Las personas enfermas se mueven? ¿Qué pasa cuando incrementas el porcentaje de probabilidad de enfermarse al 100%? ¿Qué pasa cuando disminuyes el porcentaje de probabilidad de aliviarse al 0%? ¿En qué puntos consideras esta simulación realista? ¿En qué puntos crees que la simulación no asemeja la realidad?

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 26

Page 27: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Instrucciones del maestro: Utilizando las propiedades de la simulaciónEs posible que los estudiantes quieran modificar de forma rápida la probabilidad de enfermar de las personas, para lo cual pueden crear una variable global o propiedad de la simulación. Si los alumnos no han trabajado previamente con esta característica (en PacMan por ejemplo) es mejor dedicar una sesión específica para revisar el tema, sin embargo, si se ya tiene experiencia previa con el tema se recomienda retarlos para que utilicen esta opción. Considere un tiempo suficiente para que ellos trabajen por su cuenta antes de ofrecerles su ayuda.

Por ejemplo, en lugar de incluir un número de porcentaje en el código utilice @Enfermarse en la condición de

porcentaje para representar la probabilidad de que una Persona_Sana se enferme cuando se encuentra junto a una Persona_Enferma.

Recuerde que el símbolo de @ siempre debe utilizarse frente al nombre de la variable para poder acceder a su valor.

Para crear y guardar la Propiedad de la Simulación Enfermarse es necesario seguir los siguientes pasos:

Paso 1:

Crear la variable global. Ir a la ventana de AgentCubes y selecciona la opción de Window --> Show Simulation Properties.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 27

Page 28: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Paso 2:Dar clic sobre el botón de + en la ventana de Simulation Properties.

Paso 3:

Teclear el nombre de Enfermarse para la nueva variable.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 28

Page 29: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Paso 4:

Selecciona la propiedad de la simulación y da clic en el botón de Edit

Paso 5:

Ahora el valor de Enfermarse puede modificarse a cualquier valor entre 0 y 100.

Presiona SAVE para guardar tus cambios en la Propiedad de la Simulación que creaste.

Sigue estos pasos para crear otra propiedad de la simulación que sea útil en la simulación del contagio:

Recuperarse = probabilidad de que una persona enferma se alivie. El valor de esta propiedad de la simulación debe estar entre 0 y 100.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 29

Page 30: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Presiona SAVE para guardar tus cambios en la Propiedad de la Simulación que creaste

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 30

Page 31: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Hoja de trabajo del alumno 2A: Utilizando las propiedades de la simulación.Las propiedades de la simulación contienen valores que pueden ser revisados y utilizados por los agentes dentro de la simulación. También se llaman variables globales. Utilizaremos las propiedades de la simulación en la condición de porcentaje debido a que es más sencillo modificar el valor en la ventana de propiedades de la simulación cuando se modelan distintas enfermedades. Algunas enfermedades como resfriados se esparcen cuando las personas estornudan o tosen por lo que hay una gran probabilidad de que una persona expuesta enferme. Otras enfermedades no son transmitidas tan fácilmente por lo que la probabilidad de que una persona que ha sido expuesta a la enfermedad se contagie no es tan alta.

Por ejemplo, en lugar de incluir un número de porcentaje en el código utilice @Enfermarse en la condición de

porcentaje para representar la probabilidad de que una Persona_Sana se enferme cuando se encuentra junto a una Persona_Enferma.

Recuerde que el símbolo de @ siempre debe utilizarse frente al nombre de la variable para poder acceder a su valor.

Para crear y guardar la Propiedad de la Simulación Enfermarse es necesario seguir los siguientes pasos:

Paso 1: Crear la variable global. Ir a la ventana de AgentCubes y selecciona la opción de Window --> Show

Simulation Properties.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 31

Page 32: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Paso 2:Dar clic sobre el botón de + en la ventana de Simulation Properties.

Paso 3:

Teclear el nombre de Enfermarse para la nueva variable.

Paso 4:

Selecciona la propiedad de la simulación y da clic en el botón de Edit

Paso 5:

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 32

Page 33: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Ahora el valor de Enfermarse puede modificarse a cualquier valor entre 0 y 100.

Presiona SAVE para guardar tus cambios en la Propiedad de la Simulación que creaste.

Sigue estos pasos para crear otra propiedad de la simulación que sea útil en la simulación del contagio:

Recuperarse = probabilidad de que una persona enferma se alivie. El valor de esta propiedad de la simulación debe estar entre 0 y 100.

Presiona SAVE para guardar tus cambios en la Propiedad de la Simulación que creaste

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 33

Page 34: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Parte 2: Instrucciones del profesor – Agregando un agente monitor

En esta lección los estudiantes agregarán un agente monitor y programarán el comportamiento de los agentes para que la simulación funcione de una forma más realista y correcta.

Cuando los estudiantes ejecutaron la primera versión de la simulación con el botón de paso a paso , los agentes persona que no estaban a un lado de la persona enferma original enfermaron en el primer paso. Esto sucedió debido a que, en cada paso de la simulación, el chequeo de cada agente persona por un vecino enfermo era seguido por las acciones de ese mismo agente. Algunas veces un agente persona que había enfermado se movía cerca de otro agente que entonces enfermaba en ese mismo paso.

Idealmente solo los agentes a un lado de una persona enfermar deben enfermar en cada paso de la simulación. La forma de hacer que esto suceda es tener un monitor que le diga a los agentes que hacer. Primero cada agente persona observa a su alrededor y decide que debe hacer. Cuando todos los agentes han tenido la oportunidad de observar y decidir qué hacer, entonces los agentes por turnos realizan sus acciones. El monitor está controlando el comportamiento de los agentes, diciéndoles que primero perciban y después actúen.

Es importante recordar que no sabemos, y no necesitamos saber, en qué orden toman turnos los agentes. Si los turnos de los agentes Persona son controlados por el agente monitor, el cual toma un turno cada 0.5 segundos, la simulación se ejecutará correctamente.

Nuestro agente monitor tendrá un rol similar al de la Organización Mundial de la Salud creada por las Naciones Unidas para proporcionar liderazgo en temas mundiales de salud. Esta organización es responsable por la erradicación de la viruela y está trabajando en erradicar diversas enfermedades de contagio como el VIH, la malaria y la tuberculosis. También estuvo muy involucrada en los esfuerzos por mitigar los recientes brotes de Ebola y Zika. Como parte de sus responsabilidades realiza encuestas a grandes cantidades de personas cada año para determinar quién tiene alguna enfermedad.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 34

Page 35: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

En nuestra simulación, el agente monitor tendrá 4 responsabilidades:

1. Controlará el comportamiento de los agentes Persona diciéndoles a TODOS los agentes Persona que revisen sus métodos PERCIBE y diciéndoles a TODOS los agentes Persona que revisen sus métodos ACTUA.

2. Contará todas las personas sanas y enfermas en cada paso de la simulación.3. Graficará el número de personas sanas y enfermas de tal forma que la gráfica muestre el cambio de la

población durante el tiempo.4. Terminará la simulación cuando el mundo ya no tenga más personas enfermas o más personas sanas.

El código se muestra en la Hoja de Trabajo del Estudiante 2B: Agregando un agente monitor.

Hoja de trabajo del alumno 2B: Agregando un agente monitor.

¿Qué sucedió cuando ejecutaste la simulación utilizando el botón de paso a paso ?¿Enfermaron agentes Personas en el primer paso que no estaban junto a la persona enferma original? Probablemente sí.

Esto sucedió debido a que, en cada paso de la simulación, el chequeo de cada agente persona por un vecino enfermo era seguido por las acciones de ese mismo agente. Algunas veces un agente Persona que había enfermado, se movía cerca de otro agente que entonces enfermaba en ese mismo paso.

Idealmente solo los agentes a un lado de una persona enfermar deben enfermar en cada paso de la simulación. La forma de hacer que esto suceda es tener un monitor que le diga a los agentes que hacer. Primero cada agente persona observa a su alrededor y decide que debe hacer. Cuando todos los agentes han tenido la oportunidad de observar y decidir qué hacer, entonces los agentes por turnos realizan sus acciones. El monitor está controlando el comportamiento de los agentes, diciéndoles que primero perciban y después actúen.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 35

Page 36: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Es importante recordar que no sabemos, y no necesitamos saber, en qué orden toman turnos los agentes. Si los turnos de los agentes Persona son controlados por el agente monitor, el cual toma un turno cada 0.5 segundos, la simulación se ejecutará correctamente.

Nuestro agente monitor tendrá un rol similar al de la Organización Mundial de la Salud creada por las Naciones Unidas para proporcionar liderazgo en temas mundiales de salud. Esta organización es responsable por la erradicación de la viruela y está trabajando en erradicar diversas enfermedades de contagio como el VIH, la malaria y la tuberculosis. También estuvo muy involucrada en los esfuerzos por mitigar recientes los brotes de Ebola y Zika. Como parte de sus responsabilidades realiza encuestas a grandes cantidades de personas cada año para determinar quién tiene alguna enfermedad.

En nuestra simulación, el agente monitor tendrá 4 responsabilidades:

1. Controlará el comportamiento de los agentes persona diciéndoles a TODOS los agentes Persona que revisen sus métodos PERCIBE y diciéndoles a TODOS los agentes Persona que revisen sus métodos ACTUA.

2. Contará todas las personas sanas y enfermas en cada paso de la simulación.3. Graficará el número de personas sanas y enfermas de tal forma que la gráfica muestre el cambio de la

población durante el tiempo.4. Terminará la simulación cuando el mundo ya no tenga más personas enfermas o más personas sanas.

Tarea 1. Implementando la programación de agentes con los métodos PERCIBE y ACTUA

Paso 1.En el método while running del agente

Coloca una regla que difunda (broadcasts) a cada agente Persona para que ejecute su método PERCIBE y después su método ACTUA. Esta regla se ejecuta cada 0.5 segundos.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 36

Page 37: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

monitor, una regla controlará la simulación del contagio.

Paso 2.Cambia los métodos del agente persona.

1. Utiliza el botón +Method para agregar dos nuevos métodos al agente persona

2. Da clic en la palabra “unknown” de la esquina superior izquierda de cada nuevo método.

3. Nombra el primer método PERCIBE y el segundo ACTUA.4. Da clic en el encabezado del método while running del agente persona y

selecciona el botón de menos que se encuentra en la parte inferior de la ventana de AgentCubes para eliminar el método while running.

Paso 3. Agrega la regla al método PERCIBE que hace que la persona enferme.

Esta regla busca por un vecino enfermo y después cambia el atributo de INFECTADO a 1, pero no cambia la persona

Coloca el atributo del agente INFECTADO a 1 si la persona va a enfermar. INFECTADO se quedará igual a 0 si la persona no enferma en este turno.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 37

Page 38: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

sana a persona enferma o la mueve, esto sucede dentro del método ACTUA.Paso 4.Agrega la regla al método PERCIBE que hará que las personas se alivien.

Coloca la variable local ALIVIARSE en 1 si la persona se aliviará. El cambio de persona enferma a persona sana ocurrirá dentro del método ACTUA no aquí.

Paso 5.

Agrega una regla al método ACTUA que haga que la persona sana que es infectada enferme.

Si la persona es infectada (INFECTADO=1) cambiar la persona sana a persona enferma y cambiar el atributo INFECTADO a 0.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 38

Page 39: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Paso 6.

Agregar en el método ACTUA la regla que hace que si una persona sana no está infectada, solamente hacer que se mueva.

Paso 7.

Agregar en el método ACTUA la regla que hace que si una persona enferma debe aliviarse cambie a persona sana. Coloca el atributo ALIVIARSE = 0

Paso 8.

Inicializa los atributos del agente persona para que siempre tengan valores congruentes con la simulación

1. Crea un método nuevo y cambia su nombre a Cuando_Crea_Nuevo_Agente.

2. Coloca los atributos del agente en 0.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 39

Page 40: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

3. Crea nuevamente el mundo con un nuevo grupo de personas sanas y una persona enferma, ahora todos ellos tendrán sus atributos ENFERMO y ALIVIARSE configurados.

¡Guarda tu mundo!

Asegúrate de que el método while running haya sido eliminado

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 40

Page 41: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Tarea 2. Contando las personas sanas y enfermas del mundoPara hacer una gráfica con el número de personas enfermas y sanas, el agente Monitor debe llevar el registro del número de personas que están sanas y las que no. También sería útil llevar el registro del número total de agentes persona y el número de ciclos o pasos de la simulación. Adicionalmente, el agente monitor utilizará el número de personas enfermas y sanas para decidir cuándo terminar la simulación.

Paso. 1

Crea algunas nuevas propiedades de simulación (Ciclos, Personas_Sanas, Personas_Enfermas, Total_Personas).

¡Asegúrate de guardar tus cambios cuando hayas creado las propiedades nuevas!

Paso 2.

Agrega a la regla en el agente monitor dentro del método while running el

1. Coloca @Ciclos a @ Ciclos + 12. Coloca @Personas_Sanas a agentes con forma persona sana

(agents_with_shape “persona sana”)3. Coloca @Personas_Enfermas a agentes con forma persona enferma

(agents_with_shape “persona enferma”)4. Coloca @Total_Personas a agentes con forma persona (agents_with_shape

“persona”)

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 41

Page 42: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

grupo de acciones que actualizan las propiedades de la simulación

Tarea 3. Mostrar las personas enfermas y sanas en una gráfica Paso 1.

Graficar las propiedades de la simulación.

Agrega estas dos reglas a la regla principal del agente monitor.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 42

Page 43: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Paso 2.

Ejecuta tu simulación.

La ventana de gráfica debe verse similar a la que se muestra si la propiedad de ENFERMARSE es igual al 50.

Tarea 4. Terminar la simulación

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 43

Page 44: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Paso 1.

Haz que el agente monitor revise si la simulación ha terminado.

Agrega una acción al final de la regla del método while running del agente monitor. Esta acción le dice al agente monitor que mande un mensaje a sí mismo para revisar su método Sim_Fin.

Paso 2.

Programa el método SIM_FIN.

Para cada regla muestra un mensaje al usuario que explique qué sucedió para finalizar la simulación.En la regla 1: Simulacion Completada. Ya no quedan personas enfermas, por lo que nadie puede contagiarse.En la regla 2: Simulacion Completada. Ya no quedan personas sanas, por lo que nadie mas puede enfermarse, ya todos los estan.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 44

Page 45: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

**Nota Importante: Los mensajes no permiten acentos ni caracteres extraños.

Si quieres incluir cuántos ciclos de simulación se ejecutaron escribe ~@Ciclos ciclos y AgentCubes enviará un mensaje que dice 100 ciclos, reemplaza “~@Ciclos” con el valor de la propiedad de la simulación Ciclos.

Ahora que la simulación está completa, ejecútala. ¿Qué pasa si las propiedades de la simulación ENFERMARSE y RECUPERARSE se configuran en 50

ambas? ¿Qué sucede si RECUPERARSE se establece en 0 y ENFERMARSE en un valor muy alto? ¿y si es un valor

muy bajo? ¿En qué aspectos es esta simulación realista? ¿En qué aspectos es distinta de la realidad? ¿Qué cambios le harías?

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 45

Page 46: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Hoja de trabajo del alumno: Reto 1.0 - Modelando la duración de la enfermedad

Diseño del reto:

¿Cómo harías que un agente Persona estuviera enfermo por el tiempo típico que dura la enfermedad que se está modelando? ¿Cómo mostrarías que distintos individuos con la misma enfermedad pueden durar enfermos por un tiempo distinto?

Por ejemplo, la mayoría de las personas que contraen un resfriado duran enfermas de 7 a 10 días.

Cada agente persona necesita un atributo de Reloj_De_Eenfermedad que lleve el registro de cuánto tiempo ha estado enfermo. Cuando un agente Persona enferma el reloj inicia el conteo y el agente Persona no tiene oportunidad de recuperarse hasta que ha pasado el tiempo adecuado según la enfermedad que se está modelando.

¿Cómo podemos programar que el agente persona esté enfermo por 7, 8, 9 o 10 días cuando se simula el resfriado común?

Utiliza dos nuevas propiedades de simulación:

Tiempo_Enfermo_Minimo es el tiempo mínimo que una persona puede tener la enfermedad. Tiempo_Enfermo_Posible es igual a la duración por encima del tiempo mínimo típico de la

enfermedad.

Colócales el Reloj_De_Enfermedad de cada agente a Tiempo_Enfermo_Minimo más un número aleatorio (random) entre 0 y el Tiempo_Enfermo_Posible, en donde aleatorio significa que cada valor tiene las mismas probabilidades de ser asignado.

Los agentes Persona tendrán su Reloj_De_Enfermedad establecido en 7 + un número aleatorio entre 0 y 3.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 46

Page 47: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

si el número aleatorio es 0, la persona estaría enferma 7 días si el número aleatorio es 1, la persona estaría enferma 8 días si el número aleatorio es 2, la persona estaría enferma 9 días si el número aleatorio es 3, la persona estaría enferma 10 días

AgentCubes nos proporciona una función para generar números aleatorios que se escribe de la siguiente forma: random(@Tiempo_Enfermo_Posible) la cual regresará un valor que será ya sea 0, 1, 2, ó 3. La función random regresa un número real con una serie de números después del punto decimal. Para hacer que el número que se sume al Reloj_De_Enfermedad sea un entero usaremos la función floor que eliminará los decimales y solamente nos dejará el valor entero del número floor(random(@Tiempo_Enfermo_Posible)).

Código para modelar la duración de la enfermedadPaso 1.

Crear dos propiedades de simulación nuevas.

Para modelar el resfriado común coloca el valor de Tiempo_Enfermo_Minimo

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 47

Page 48: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

en 7 y el valor de Tiempo_Enfermo_Posible en 3.

¡Guardas tus nuevas propiedades de simulación!

Paso 2.

Inicia el Reloj_De_Enfermedad del agente persona cuando éste se enferma.

Coloca Reloj_De_Enfermedad en @Tiempo_Enfermo_Minimo + floor(random(@Tiempo_Enfermo_Posible)).

Paso 3.

Si la persona enferma sigue enferma entonces el Reloj_De_Enfermedad debe disminuir en 1

Coloca Reloj_De_Enfermedad en Reloj_De_Enfermedad – 1.

Paso 4.

Si el Reloj_De_Enfermedad del agente persona llega a 0, la persona tiene oportunidad de recuperarse.

Utiliza una condición de verificación (test) para revisar si el

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 48

Page 49: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Reloj_De_Enfermedad es igual a 0

Paso 5.

Asegúrate de que los agentes Persona sean creados con los valores correctos de Reloj_De_Enfermedad

Todas las personas sanas tienen su Reloj_De_Enfermedad igual a 0.

Los agentes de persona enferma tienen su Reloj_De_Enfermedad igual a

@Tiempo_Enfermo_Minimo + floor(random(@Tiempo_Enfermo_Posible)).

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 49

Page 50: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Hoja de trabajo del alumno:

Reto 2.0 - Modelando Inmunidad

Diseño del reto:

En la versión actual de la simulación del contagio los agentes Persona enferman y se recuperan. En la realidad, las personas no se contagian con el mismo virus más de una vez. Los humanos se contagian de enfermedades con síntomas similares a los de un resfriado, pero los virus que los causan son ligeramente distintos.

Inmunidad significa que el sistema inmunológico de una persona puede identificar y destruir un virus que ya ha infectado antes a esa misma persona.

¿Cómo podrías representar la inmunidad a una enfermedad en la simulación de contagio que ocurre en un período muy corto de tiempo?

Podrías utilizar un atributo de agente para representarla.

Si Inmune = 1 la persona no puede enfermarse, pero si Inmune = 0 entonces la persona tiene posibilidades de contagiarse de la enfermedad.

Piensa un poco respecto a cuando los agentes Persona no deben tener inmunidad y cuando deben tenerla.

¿Cuándo el atributo de Inmune del agente Persona debe ser activado? ¿Antes de que la persona enferme? ¿Cuándo la persona se recupere?

¿Cuál es el efecto de ser inmune? ¿Puede enfermar una persona que es inmune?

Cuando un agente es creado, ¿debe ser inmune a la enfermedad en la simulación?

Diseño de reto adicional (escribe tu propio código)

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 50

Page 51: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Los humanos no necesitan desarrollar inmunidad completa a infecciones causadas por microorganismos como los protozoarios unicelulares que causan la malaria. En el caso de la malaria, los humanos que sobreviven a la primera infección desarrollan una inmunidad parcial y son menos propensos a morir de una segunda infección, aunque esta inmunidad parcial se debilita al paso del tiempo. La malaria es tratada con medicamentos que matan al parásito que la ocasiona. Las vacunas están en desarrollo pero aún no están disponibles.

¿Cómo se podría modelar una enfermedad con contagios repetitivos?

Código para agregar inmunidad a la simulación de contagio.

Paso 1.

Los agentes persona que no son inmunes a la enfermedad tienen la probabilidad de enfermarse.

Agrega una condición que evalúe si el agente Persona es inmune a la enfermedad.

Paso 2.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 51

Page 52: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Los agentes persona se vuelven inmunes a la enfermedad cuando se recuperan.

Agrega una acción que cambie el atributo Inmune del agente persona a 1 para que no pueda enfermar de nuevo.

Paso 3.

Asegúrate de que tus agentes Persona son creados con los valores correctos en todos sus atributos.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 52

Page 53: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Establece el atributo Inmune en 0, tanto para el agente persona sana como para el agente persona enferma ya que las personas no se vuelven inmunes hasta que no enferman.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 53

Page 54: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Hoja de trabajo del alumno:

Reto 3.0 - MuertesAntes de iniciar el reto:

Debes haber completado la simulación básica de Contagio que permite a las personas aliviarse después de un cierto tiempo.

Diseño del reto:

Para enfermedades serias (como el Ebola o el Zika) no todo el mundo se alivia, algunas personas mueren.

Cambia tu juego para que un pequeño porcentaje de personas mueran.

Primero, cambia el método Percibe agregando una regla que haga que los agentes Persona mueran. En la condición de la regla de muerte, verifica si el Reloj_De_Enfermedad de una persona enferma se ha agotado y puedes, ya sea crear una nueva propiedad de simulación llamada Rango_Muerte y después agregar a la regla de muerte una acción de porcentaje basada en esta propiedad de simulación (percentage-chance @Rango_Muerte) o simplemente coloca la regla de muerte abajo de la regla de recuperación y todas aquellas personas que no se recuperan morirán.

La acción para la regla de muerte en el método Percibe establece un atributo de agente llamado Morir en 1.

Después agrega una regla en el método Actuar que revise a los agentes Persona que tengan el atributo Morir igual a 1, agrega algunas o todas las acciones que se muestran (a continuación) a esta regla:

1. Cambia la forma de Persona_Enferma a Persona_Muerta (crea una nueva forma/shape) en el agente Persona.

2. Espera un tiempo muy corto (0.2 segundos) para que el usuario vea la forma de la Persona_Muerta.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 54

Page 55: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

3. Borra la Persona_Muerta.4. Asegúrate de sumar 1 a la propiedad de simulación Numero_Muertos (agrega la propiedad) para llevar

un registro de cuántas personas han muerto antes de que la simulación termine. ¡Si no vas a borrar a las personas muertas, asegúrate de que no se muevan!

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 55

Page 56: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

Hoja de trabajo del alumno:

Reto 4.0 - Vacunas

Diseño del reto:

Mostrar el efecto de inmunidad por medio de vacunas.

Otra forma de dar inmunidad a las personas es vacunarlas antes de que enfermen.

¿Cómo agregarías vacunas a la simulación? Agrega una enfermera o un doctor que usa una búsqueda de ascenso de colinas para encontrar agentes Persona que se encuentran sanos. Los agentes Persona_Sana deben difundir su “aroma” a través de las losas del suelo de la ciudad.

Cuando la enfermera se encuentra junto a (next to) una persona sana, entonces esa persona puede convertirse en inmune a la enfermedad que está siendo modelada.

Otra forma es agregar un hospital y hacer que las personas sanas lo busquen y sean vacunadas cuando lleguen a él. ¿Qué pasa si la mayoría de las personas es inmune? ¿Se puede propagar la enfermedad?

“Inmunidad de grupo” significa que la mayoría de las personas vacunadas se han vuelto inmunes y aún si unas pocas personas enferman la enfermedad no puede propagarse fácilmente. Si la mayoría de las personas son inmunes a una enfermedad, aquellos que son muy jóvenes para enfermar o para vacunarse o aquellos cuyas vacunas fallaron estarán protegidos también.

Puedes modelar la inmunidad de grupo haciendo que las vacunas funcionen la mayoría del tiempo pero no siempre. Hazlo agregando una condición de porcentaje al método de la herramienta de mano.

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 56

Page 57: Un virus ha infectado tu mundo. A medida que las … · Web viewEl método al que se hace referencia en la emisión (broadcast) debe estar definido en el grupo de métodos del agente

¿Qué tan bien necesita funcionar la vacuna para proporcionar inmunidad de grupo y detener la propagación de la enfermedad?

Contagio: Guía del Maestro v1.0 Diseño de Juegos Escalable México 57