Con esta quinta unidad didáctica abordamos los contenidos de Inteligencia Colectiva en aplicaciones para dispositivos móviles, dando por finalizado el desarrollo en App Inventor de 6 de los bloque incluidos en los sistemas IA. La Inteligencia Colectiva se refiere a la respuesta de los sistemas IA colaborativos. Concretamente vamos a hablar de sistemas de Inteligencia Artificial Colectiva (ACI en adelante) como aquella inteligencia que surge de la interconexión de múltiples IA.
Si bien es cierto existen gran cantidad de literatura al respecto la conexión e interactividad de estos sistemas, podemos resumir que es posible crear sistemas ACI implementados en la misma máquina operando entre ellos a nivel local y con una determinada motivación (ACI Centralizada), existe una tendencia actual a llevar a cabo IA independientes pero interconectadas a través de la red con el fin de dar respuesta a una motivación colectiva (ACI Distribuida). En este sentido es por todos conocido el concepto de Internet of Things (IoT) y la relación con la IA creando el campo de AIoT (Artificial Internet of Things).
En resumen, vamos a tratar a través de la presente unidad los contenidos siguientes:
NECESIDADES:
Necesitamos que en los dispositivos móviles tengamos instalados estas dos aplicaciones:
RECURSOS:
Carpeta Drive con Imágenes y Proyecto
ENLACES:
Para el diseño de la App en lo que a componentes se refiere os dejo por aquí un vídeo con una introducción a aquellos que he añadido en esta segunda fase del desarrollo de la App [Colección]. Os recomiendo importar el proyecto que he dejado en la carpeta Drive anterior y de ese modo podáis ver con detenimiento cómo quedan las propiedades de cada componente.
Igualmente, insisto en que es más que recomendable empezar desde el duplicado de la App de la UD4 pues de ese modo nos enfrentamos a los problemas que tendrás nuestros estudiantes.
Decir, que en este caso sólo os voy a poner los bloques modificados o añadidos con respecto a la unidad anterior.
Comencemos con la programación y concretamente con la Screen 2 pues la primera no conlleva ninguna modificación. Incluiremos una nueva variable global con el nombre del jugador y vamos a modificar la secuenciación, incluyendo un primer paso para introducir el nombre del jugador y modificaremos los bloques de los pasos siguientes y de la inicialización de la Screen 2 para que en este caso cargue la disposición vertical del jugador en lugar del Paso 1 como estaba en la UD4.
Como podemos ver, simplemente hemos incluido la visibilidad o no de las 4 disposiciones que tenemos ahora al incluir el PasoJugador. Modificamos la Screen2, llamando primero a este paso antes de la cuenta atrás.
A continuación iniciamos la cuenta atrás, a través de la llamada al Paso1 siempre y cuando el usuario haya incluido el nombre en la caja de texto. Si no lo ha rellenado le mandamos una notificación. También llamamos a la base de datos para que limpie el posible registro de ese usuario por si ya hubiera jugado una partida anteriormente.
A continuación, el usuario pulsaría en el botón probar para ver si ha detectado el objeto, y desde la programación recordar que se llamaba a la librería PIC. Este bloque queda casi igual, pero hemos cambiado la llamada del bloque Conseguido a un procedimiento llamado Finalizar, pues lo necesitamos antes del procedimiento Conseguido. Es decir;
A continuación veamos cómo ha quedado modificado el procedimiento Objeto_Encontrado.
Como podemos ver, es prácticamente el mismo, sólo que le hemos incluido una escritura en la base de datos con el valor del objeto que estamos buscando. De la misma manera, en caso de haber encontrado el tercer objeto y de que el bloque de la Librería PIC llamara a Finalizar, realizaríamos la misma escritura en la base de datos pero del último objeto.
Ya casi hemos finalizado. Tener en cuenta que los bloque anteriores hacer escrituras en la base de datos. Pues bien, ahora vamos a meter un bloque que lo que hace es estar atento a estas escrituras. Es el bloque que veis a continuación y que se ejecuta siempre y cuando haya habido alguna escritura en la base de datos por alguno de los jugadores. En este caso, testearemos primero si ha sido el último objeto, momento en el que mostraremos que la búsqueda ha sido conseguida. En caso contrario, notificaremos al resto de participantes que uno de ellos/as ha conseguido un objeto.
En el procedimiento final, nombramos al ganador.