sábado, 2 de octubre de 2021
Empezando con un juego. Password 10
sábado, 11 de septiembre de 2021
Planifica el curso académico 2021-2022 con el Proyecto AJDA
- Se han publicado más 500 juegos didácticos y más de 1500 ficheros de preguntas.
- Se ha Introducido en los juegos con opciones de respuesta (345 juegos), la posibilidad de que el orden de las opciones sea aleatorio.
- Mejora en la unificación de los diferentes tipos de juegos, de forma que los ficheros de preguntas se puedan usar en más juegos diferentes.
- Se han introducido cambios y mejoras en algunos de los juegos más utilizados del proyecto (La ruleta de la fortuna, Ahorcado multijugador, 50x15, 10x10, Millonario...).
- Se ha intensificado el trabajo dentro del proyecto de investigación I+D+I titulado "Estudio Integral del Impacto de la Gamificación Digital (GAIMS)" en colaboración con el departamento de Ingeniería Telemática de la Universidad de Sevilla.
- Se ha mejorado y ampliado la Web, el Blog, el DVD y el canal de YouTube de AJDA.
- Se ha continuado con la realización de actividades de formación del profesorado basadas en juegos didácticos.
- Se han realizado nuevas puestas en práctica en el aula de metodologías basadas en los juegos didácticos.
- Se han actualizado los cursos de formación del Proyecto AJDA.
- Se ha continuado con la publicación mensual de artículos en el Blog de Descartes.
martes, 31 de agosto de 2021
Proyecto de investigación en AJDA (III)
En Julio de 2021 se ha defendido y publicado un nuevo Trabajo Final de Grado dentro del Proyecto de Investigación que llevan conjuntamente el departamento de Ingeniería Telemática de la ETSI de la Universidad de Sevilla y el Proyecto AJDA.
Su autor ha sido Guillermo Mejías Climent y se titula "Aplicación web para la educación mediantegamificación sobre el Proyecto AJDA (Aplicaciónde Juegos Didácticos en el Aula) confuncionalidades de gestión de ficheros de preguntas". Este trabajo profundiza y amplía el realizado por Carlos Ramos León, 2019 y se centra en la gestión de ficheros de preguntas de la juegos didácticos de AJDA.
A continuación citamos las principales aportaciones y mejoras del mismo:
- Se desarrolla y mejora el generador de ficheros de preguntas para los distintos tipos de juegos de AJDA.
- Se implementa la posibilidad de importar y exportar estos ficheros de preguntas a diferentes formatos: pdf, doc, csv, xml, txt.
- Se mejora e introducen nuevas funcionalidades en el buscador de ficheros y de preguntas.
lunes, 5 de abril de 2021
El Cazador. A la caza de los secretos de la Alquimia
Una cuestión fundamental a la hora de utilizar juegos didácticos es la forma de ponerlos en práctica. El diseño, la preparación previa, la contextualización, los recursos, etc, son aspectos fundamentales para su buen funcionamiento. Pero podemos ir un paso más allá, utilizando los juegos aplicando metodologías de gamificación, sumergiendo a los participantes en un entorno, mecánicas y dinámicas que potencian y enriquecen el proceso de una forma significativa. En este artículo vamos a tratar como hemos realizado una actividad gamificada utilizando los juegos del Proyecto AJDA y presentaremos un vídeo donde se muestra su resultado, su título es:
“El Cazador. A la caza de los secretos de la
Alquimia”
- Primera fase. Cada jugador, recibirá durante un minuto preguntas por parte del presentador, y por cada acierto conseguirá 1.000 puntos.
- Segunda fase. Con los puntos conseguidos el participante se enfrentará en un duelo de preguntas individual al “cazador o cazadora” (oponente experto/a). El cazador hará una oferta de puntos por encima y otra por debajo de los conseguidos por el concursante, que según la propuesta elegida estará a cuatro, cinco o seis casillas de llegar a “casa”. A continuación empieza “La caza”, concursante y cazador recibirán preguntas que deberán responder de forma simultánea e independiente. Por cada acierto avanzarán una casilla. El objetivo del jugador es llegar a “casa” y el del cazador atraparlo antes. Cada uno de los cuatro jugadores realizará de forma individual las dos primeras fases, los participantes que sean “cazados” en la segunda fase serán eliminados y los que lleguen “a casa” sumarán al bote común del equipo los puntos ganados en la segunda fase y se enfrentarán al cazador en la “caza final”.
- Tercera fase (“caza final”). Durante dos minutos los jugadores no eliminados recibirán preguntas por parte del presentador. Cada una deberá ser respondida por un solo jugador, el que primero dé al pulsador (si responde otro la respuesta se considerará fallada). Cada acierto dará al equipo de jugadores una casilla de ventaja. Además el equipo partirá con una ventaja inicial de tantas casillas como jugadores haya clasificados. Después llega el turno del “cazador”, que durante dos minutos recibirá preguntas. Si el cazador falla una pregunta habrá rebote para el equipo de jugadores, que de forma conjunta podrá responder, y si acierta hará retroceder una casilla al “cazador”. El equipo de jugadores gana si el cazador no logra igualar las casillas de ventaja que los jugadores han conseguido y el premio se reparte a partes iguales entre los participantes no eliminados.
Una característica del concurso es que cada día el programa adquiere como hilo conductor una temática de forma que concursantes, cazador y presentador adquieren los papeles de la misma a lo largo del programa, y en nuestro caso es la Alquimia.
La puesta en práctica se llevó a cabo en el laboratorio de Física y Química, utilizando tres juegos didácticos del Proyecto AJDA, cada uno de los cuales se corresponde con una de las etapas del concurso, para los que se elaboraron en torno a 300 preguntas de Física y Química de Bachillerato, contando con los siguientes participantes:
- Alquimistas aprendices (Concursantes): Paracelso Morandine, Willian Bacon, Blas Trimigesto y Javier Avicena (alumnos de la asignatura de Física de 2º Bachillerato).
- Gran Maestra alquimista (Cazadora): Vanessa León (Profesora de Química).
- Amo del Calabozo (Narrador y presentador): Jesús Muñoz (Profesor de Física).
- Sauron (Cámara y testigo omnisciente): Marcos Rodríguez (Profesor de Biología).
- Pueblo medieval: Alumnos de Biología.
Los alquimistas aprendices obtendrán por cada 1.000 puntos conseguidos una insignia de la asignatura de Física de cualquiera de las tres evaluaciones. El resultado de la experiencia se muestra en la siguiente composición:
jueves, 31 de diciembre de 2020
Como se hizo. Envío de datos a un juego desde un iframe html embebido en él
Los juegos del Proyecto AJDA y las escenas de descartes en general, pueden contener páginas html integradas en ellos, de forma que un espacio del juego sea una página html. Vamos a analizar como se envían datos al juego desde el iframe html que está embebido en él,lo cual tiene diversas utilidades que trataremos en otros artículos
El iframe que está embebido será una sencilla página html, que llamaremos hijo.html y que contiene en su cuerpo dos elementos de entrada de datos, un campo de texto (con identificador CT) y un selector (con identificador SL):
<input name="textfield" type="text" id="CT" value="Campo de texto" >
<select name="selec" id="SL">
<option value="0" selected></option>
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
<option value="4">D</option>
</select>
Para que se puedan enviar los datos al juego, en la cabecera del iframe embebido en el juego se debe incluir el siguiente código:
miércoles, 30 de diciembre de 2020
Como se hizo. Envío de datos desde un juego a la página que lo contiene
Un juego puede enviar datos a la página html que lo contiene, es más, desde los juegos se pueden ejecutar sentencias no complejas de javascript. La forma de realizarlo se indica en este artículo.
En un evento o control, se ejecuta la acción abrir URL y en parámetro se introduce javascript:void(); poniendo dentro de los paréntesis la instrucción javascript que se desea ejecutar. Si se repite la instrucción javascript:void(); con su correspondiente instrucción javascript, dichas instrucciones se ejecutarán sucesivamente.
acción='abrir URL'
parámetro='javascript:void(INSTRUCCIONES JAVASCRIPT);
Vamos a incluir un ejemplo. En el cuerpo html de la página que contiene un juego tenemos los siguientes tres elementos cada uno con su id:
<span id="textoRecibido1">
<span id="textoRecibido2">
<span id="textoRecibido3">
Desde el juego, a través de un control o un evento vamos a ejecutar la acción abrir URL y a través de su parámetro invocaremos instrucciones javascrit con javascript:void(); a través de la cual enviaremos información a los elementos html desde el juego que la contiene:
- Enviamos al elemento textoRecibido1 el valor 50 al ejecutar la acción abrir URL.
acción='abrir URL' parámetro='javascript:void(document.getElementById('textoRecibido1').textContent = '50');'
- Enviamos al elemento textoRecibido2 la fecha actual a través de la función Date() al ejecutar la acción abrir URL.
acción='abrir URL' parámetro='javascript:void(document.getElementById('textoRecibido2').textContent = Date());'
- Enviamos al elemento textoRecibido3 el valor de la variable del juego [SAM] al ejecutar la acción abrir URL.
acción='abrir URL' parámetro='javascript:void(document.getElementById('textoRecibido3').textContent = [SAM]);'
Como hemos comentado inicialmente, no sólo se pueden enviar datos, sino que se pueden ejecutar funciones javascript de distinta naturaleza, como por ejemplo:
- Cambiar los estilos de la página:
javascript:void(document.body.style.backgroundColor='yellow');
- Poner mensajes emergentes, que pueden incluir variables númericas o de texto:
javascript:void(alert(('Mensaje emergente'));
javascript:void(alert(([variableNumerica]);
javascript:void(alert(('[variableTexto]'));
- Abrir una ventana nueva:
javascript:void(alert(window.open('http://newton.proyectodescartes.org/juegosdidacticos/','','scrollbars=1,with=400, height=300'));
- Pasar datos una web independiente:
javascript:void(alert(window.open(' 'web-receptora.html?= '+dat1+';@&'+dat2+'@&'+dat3+'&'+dat4','','with=300, height=300' '));
Como se hizo. Envío de datos desde un juego a un iframe html embebido en él
Los juegos del Proyecto AJDA y las escenas de descartes en general, pueden contener páginas html embebidas en ellos, es decir, que un espacio del juego sea una página html. Esto se ha utilizado en los juegos para cargar ficheros de preguntas a través de una página html (con contenido javascript) embebida en ellos.
Partamos de una sencilla página html, que llamaremos hijo.html y que contiene dos elementos identificados como: textoRecibido1 y textoRecibido2.
- Inicialmente se incluye un manejador (listener –oyente–) de eventos que actúa en este caso cuando se genera un mensaje (evento message) ejecutando la función que hemos llamado funcionQueManejaLosMensajes, es decir, que cuando el iframe recibe un mensaje (en este caso del juego, se ejecuta la función que maneja los mensajes, en este caso recibe los datos).
- A continuación, desde el juego se han enviado dos variables que son recibidas como VIHIJ y V2HIJ. En los dos casos, en la condición lógica de la instrucción if, se identifica que data.type sea set y qué control ha sido el activado comparando data.name con V1HIJ o V2HIJ (estos son los nombres que se ponen entre comillas en el primer parámetro de la función set). Después se actúa de acuerdo a lo especificado en cada caso. Esa acción se inicia capturando el elemento de la página html cuyo id coincide con el indicado en document.getElementById("textoRecibido1"), en este caso "textoRecibido1" se corresponde con el id del elemento de hijo.html (análogamente pasa con "textoRecibido2"). La acción que se ejecuta en este ejemplo es cambiar el contenido de los elementos identificados como "textoRecibido" por el valor recibido del juego que está en data.value.
- En los dos casos se ve cómo se gestiona respectivamente el evento mensaje generado por los controles V1HIJ y V2HIJ mediante la función set (en este caso el mensaje generado por update() no realiza nada, pues no se usa en el juego, recordamos que la función de update es actualizar la página después de cargar los datos).
Como se hizo. Envío de datos desde un juego embebido en un iframe a la página que lo contiene
Estudiemos el caso en el que tenemos un juego contenido en un iframe de otra página padre y que desde el juego se quieren enviar datos de algunas de sus variables a la página html padre que lo contiene.
- Los eventos iniciales window.addEventListener son los que permiten que el navegador este preparado para enviar y recibir los datos en cuanto se de la orden.
- La define la variable data, en la que se recogerán la información de las variables que se reciban y envíen.
- La instrucción condicional if ((data.type === "set")&&(data.name === "NOMBRE VARIABLE")) {...} comprueba que el nombre de la variable espera recibir y el tipo, si estos son correctos ejecuta la acción que se le encomiende, en este caso cambiar el valor de un elemento por el de la variable recibida (document.getElementById("textoRecibido1").textContent = data.value).
- En el momento del juego en el que se quiera enviar el valor de la variable debe indicarse mediante la instrucción: parent.set('VARIABLE RECIBIDA POR LA PÁGINA PADRE.',VARIABLE ENVIADA POR EL JUEGO). Al ejecutarse parent.set en el juego los valores son automáticamente recibidos por la página padre.
Como se hizo. Envío de datos a un juego embebido en un iframe desde la página que lo contiene
- Los eventos iniciales window.addEventListener son los que permiten que el navegador este preparado para enviar y recibir los datos en cuanto se de la orden.
- La define la variable data, en la que se recogerán la información de las variables que se reciban y envíen.
- Después se ha definido la variable o variables cuyo/s contenido se quiere enviar (contenido, contenido1, contenido2) y en las cuales se ha introducido el valor de los diferentes controles creados en la página padre.
- En la variable iframe se ha introducido el elemento iframe en el que se encuentra el juego.
- Mediante el evento variable.addEventListener("acción", function(evt) {...} se indica que al realizar la "acción" indicada sobre la variable se ejecutará la función (en este caso el envío de datos).
- La acción de enviar los datos se realiza mediante iframe.contentWindow.postMessage, en la cual se indica los datos de la variable cuyo valor se envía y el nombre de la variable que la recibe.
iframe.contentWindow.postMessage({ type: "set", name: "NOMBRE DE LA VARIABLE QUE SE USARÁ EN EL JUEGO Y QUE RECIBE LOS DATOS", value: VARIABLE DE LA PÁGINA PADRE CUYOS DATOS SE QUIEREN ENVIAR.value }, '*');iframe.contentWindow.postMessage({ type: "update" }, '*');
Cuando se realicen los eventos indicados, el juego recibirá los valores de los variables y los podrá utilizar. En el código utilizado, las variables recibidas sería: enviofecha, enviocurso y m1.
Este intercambio de información entre juego y página html que lo contiene es importante para poder enviar y recibir datos desde dispositivos externos a los juegos, aumentando la interactividad de los mismos.
Como se hizo. Envío de datos a un juego desde la página que lo contiene
Los juegos didácticos del proyecto AJDA son escenas de DescartesJS que se encuentran dentro de una página o documento html.
Pongamos que tenemos una página html en cuyo cuerpo están los siguientes elementos:
En algunas ocasiones puede ser necesario pasar datos de variables desde el documento html al juego. El código javascript que debe insertarse en la cabecera de la página html que contiene el juego es el siguiente:
En juego recibirá las variables: enviofecha, enviocurso y m1, cuando se desencadenen los eventos correspondientes que disparan su envío.
Detallamos la instrucción que realiza el envío de las variables:
window.postMessage({
name: "VARIABLE QUE RECIBIRÁ EL JUEGO",
value: VARIABLE DEL DOCUMENTO HTML QUE SE QUIERE PASAR AL JUEGO
}, '*');
window.postMessage({
type: "update"
}, '*');






