La pandemia ocasionada por el coronavirus ha sido todo un fenómeno. Y aunque tenemos un problema por solucionar, lo primero es poder informar los hechos, la verdad, para no caer en especulaciones e incluso en noticias falsas («fake news»).

Una forma de informarse es a través de Internet, buscando sitios serios, profesionales, muchas veces institucionales, que son en alguna medida garantía de información veraz.

Una estupenda simulación del Washington Post

Es claro pues que la información es clave en estos momentos. El Washington Post, por ejemplo, publicó un artículo en donde se hace la simulación de las epidemias. El sistema muestra un rectángulo (2 dimensiones), que contiene puntos de un color gris.

Estos puntos se mueven y rebotan en la pantalla. Pero aparecen unos puntos cafés, que son los individuos infectados por un virus. En la simulación, cada vez que un punto café toca a uno gris, le cambia de color (le infecta), y este nuevo punto se vuelve un nuevo foco para infectar a otros puntos.

En la parte superior de la pantalla se muestra una gráfica que indica cómo la infección va creciendo y la cantidad de puntos infectados. Puede verse que el crecimiento de la curva es exponencial. Esto quiere decir que primero hay pocos infectados, pero estos infectan a otros que a su vez infectan a otros más y el número empieza a crecer rápidamente.

En este mismo sistema del Washington Post se modela también que el virus infecta, sí, pero se mantiene cierto tiempo en las personas infectadas, pues estas se curan en unos 15 días. La simulación entonces muestra cómo los puntos grises, que pasaron a ser cafés con la infección, de pronto se convierten en morados, que es el color que los define como curados, sin la infección y que además, ya no pueden ser focos de infección.

Una simulación más muestra cómo la epidemia tarda más en crecer (aplana la curva), cuando los individuos están separados por una «sana distancia». Vemos así que las medidas de protección tienen que ver con qué tan cerca están los individuos unos con otros y es por ello que se recomienda no tener interacción cercana con otras personas, porque eso crece la posibilidad de infectarse.

El programa simulador del Washington Post es muy ilustrativo. El periódico no lo comparte pero permite, a través del artículo, crear nuevas simulaciones. El reto lúdico es hacer un programa que se comporte como el del Washington Post y lo ponga en código abierto. La idea es que tenga las funciones que tiene el programa del periódico mencionado.

Quien se acerque más a ello será el ganador. Teniendo un software de código abierto, que simula las epidemias, nos puede permitir agregarle funcionalidad sobre situaciones que el software del Washington Post no contempla porque simplemente hay cosas que no sabemos cómo se van a seguir desarrollándose.

¿De qué va este reto?

El reto es interesante porque es relativamente fácil. Hay que hacer una serie de pelotitas que choquen en un rectángulo (bouncing balls), las cuales, al chocar entre ellas, cambien de color de acuerdo a alguna regla.

En alguna medida es un programa relativamente sencillo pero desde luego, hay que pensar en la estructura de datos de cada pelotita, pues cada una de ellas debe contener: su posición actual, su velocidad, qué tanto se desplaza en X y Y (positivo y negativo) y el color de la misma.

Teniendo estos datos, hacer la gráfica correspondiente es trivial. Yo pensaría en un objeto «pelota» con ciertas propiedades y con los métodos como moverse y colisión, entre otros.

El ganador (si es de la Ciudad de México), se hará acreedor a una taza con el logotipo de la Morsa. Si es de otro país o de provincia, le mandaremos un USB de al menos 16 GB.

Cabe señalar que este concurso busca simplemente alentar el trabajo de la programación y mostrar que puede ser lúdica. Es un concurso de buena fe. Si hay, por ejemplo, dos o más respuestas satisfactorias, ganará quien la haya mandado primero.

El ganador cede su código fuente a la comunidad. Los que estén interesados deberán mandar sus programas a [email protected]. Quien resulte ganador deberá entregar el código fuente para compartirlo con la comunidad.

Digamos que la idea es promover la creación de software y además, hacer que ésta sea de código abierto. Si el autor decide no poner su código accesible, perderá su premio.