martes, 29 de diciembre de 2020

Como se hizo. Continuación de partidas

Los juegos didácticos del Proyecto AJDA permiten guardar las partidas y continuarlas en otro momento. Comentamos los principales aspectos de la implementación de este característica en los juegos.

Los juegos están preparados para poder ser guardados en determinados momentos, esto se refleja en que el control "Guardar partida", situado en la parte superior centro, esté o no activado:


Cuando se acciona este control los datos significativos del juego se almacenan en un vector denominado GP1 (a cada linea del vector se la da un valor de un dato del juego que debe ser guardado, GP1[0]=var0; GP1[1]=var1; GP1[2]=var2;...), después  se aplican las instrucciones: guardarpartida() y _Save_('NOMBRE-FICHERO.txt',partida).

El algorítmo guardarpartida(), pasa todos los valores del vector GP1 a la variable partida de la siguiente forma:

inicio='partida=''; conter=0; maximopar=nº lineas necesarias' 

hacer='partida=(conter<maximopar-1)?(partida+GP1[conter]+'\n'):partida+GP1[conter]; conter=conter+1' 

mientras='conter<maximopar'

La instrucción _Save_('NOMBRE-FICHERO.txt',partida), guarda los datos de la variable partida en un fichero de texto, cuyo nombre por defecto es NOMBRE-FICHERO.txt.

Por tanto, tenemos guardados en un fichero de texto los datos que permiten continuar una partida y podemos guadar tantos ficheros como momentos de la partida queramos poder continuar.

Para continuar una partidas guardada, al comienzo del juego se presenta el botón "Continuar partida".


Al pulsar sobre se abrirá el explorador de archivos del navegador y podremos seleccionar un fichero con los datos guardados de una partida del juego que queramos continuar, utilizando la instrucción _Open_('abrirficheropar'), que además ejecuta el algoritmo abrirficheropar(), que en su campo hacer ejecuta las siguientes acciones:
  • Crear la variable cadenapar1, introduciendo <w1> y </w1> como primera y última línea y entre ellas el contenido del fichero que se acaba de cargar que se encuentra en DJS.fileContent.
cadenapar1='<w1>\n '+DJS.fileContent+'</w1>';

  • Pasa el contenido de la variable cadenapar1 al vector w1 mediante la  instrucción:

_StrToVector_(cadenapar1,'w1';)

  • Se establece una variable  PCAR que si su valor es 1, indica que se ha cargado correctamente.
  • Se asignan los datos del vector wp1 a las variables del juego que les corresponden,

jug1=(PCAR=1)?w1[2]:jug1 ; jug2=(PCAR=1)?w1[3]:jug2 ;  TIME=(PCAR=1)?w1[4]:TIME... 

El juego continuará ahora con los datos de la partida que se guardó. 

Como se hizo. Preguntas en ficheros de texto

La mayoría de los juegos didácticos del Proyecto AJDA permiten generar y almacenar las preguntas que se utilizarán en los juegos en ficheros de  texto, los cuales se cargan en los juegos cuando se desean utilizar. En este artículo vamos a analizar como se ha realizado ésto desde el punto de vista de la programación de DescartesJS.

Antes de empezar el juego (o durante el transcurso del mismo, si es necesario) se carga un fichero de texto con las preguntas y sus datos son introducidos en una variable llamada TOTALENVI. La pantalla de carga del fichero se muestra a continuación. Se trata de un iframe, programado en lenguaje javascript, e insertado en la escena de Descartes del juego. Esta parte la trataremos de forma específica en otro artículo.

Al iniciarse el juego se ejecuta automáticamente el algoritmo: FICHERO-PREGUNTAS, que en su campo hacer ejecuta las siguientes instrucciones:

cadena1b=TOTALENVI

cadena1='<VEC>\n '+cadena1b+'</VEC>'

SUBIRFICH=(CFI=0)?_StrToVector_(cadena1,'VEC'):' '

  • En la variable cadena1b se cargan los datos de la variable TOTALENVI que ha sido enviada al juego en el momento de su carga y que contiene los datos del fichero de preguntas que se cargarán en el juego.
  • La variable cadena 1, es la variable cadena1b a la que se la incluido al principio <VEC> (y un salto de línea \n) y al final </VEC>. Esto es necesario para que en la siguiente operación la cadena 3 pueda ser transformada en un vector.
  • La función SUBIRFICH convierte la cadena 1 en el vector VEC.
Ahora las preguntas y respuestas del fichero se encuentran en el juego en las distintas líneas del vector VEC (cada línea del fichero es una línea del enunciado, una opción de respuesta, una solución...), las cuales pueden ser incluidas en los textos, las soluciones dadas por los jugadores comparadas con las correctas, las preguntas pueden ser ordenadas aleatoriamente mediante algorítmos, etc.

Si durante el juego se necesita cargar otro fichero de preguntas, lo que se hace es actualizar de nuevo los valores de la variable TOTALENVI. Si se necesitan en un juego cargar varios ficheros de preguntas, se generan varias variables TOTALENVI1, TOTALENVI2, TOTALENVI3... y cada una de ellas se pasa  su correspondiente vector: VEC1, VEC2, VEC3,,,

Como se hizo. Interfaz multi-idioma

Una de las características de los juegos didácticos es que se puede seleccionar el idioma de la interfaz, en cualquier momento, a través del menú desplegable situado en la esquina superior derecha de todos los juegos.

A continuación se comentan los  principales aspectos de su implementación, teniendo en cuenta que las palabras o frases de cada idioma se introducen en un fichero de texto, manteniendo el mismo orden en todos ellos.

El citado menú de control , identificado como FICHIDM, contiene una opción para cada idioma. Al seleccionarse un determinado idioma a través del mismo se realizan las siguientes acciones:

  • Dar un valor a la variable FICHID, que adquirirá el dato del nombre del fichero de texto del idioma en cuestión (por defecto el idioma es español, esp, establecido como tal en las variables iniciales por defecto):

FICHID=(FICHIDM=0)?'esp':((FICHIDM=1)?'alb':((FICHIDM=2)?'ale':((FICHIDM=3)?'ara':((FICHIDM=4)?'ben':((FICHIDM=5)?'bul':.....:'esp')))))...

  • La última opción del menú permite cargar directamente el fichero de idioma a través del explorador del navegador, lo cuál permitiría utilizar ficheros de idioma diferentes a los existentes para el juego. La instrucción que se usa en este caso es:
cargaridm=((FICHIDM=43)?_Open_('abriridioma'):0)

  •  Se establece la variable que indica la ruta relativa completa del fichero de idioma TOTALID (donde RUTAID es la ruta relativa y EXT la extensión ".txt"):

TOTALID=RUTAID+FICHID+EXT

  • Se ejecuta la definición/algoritmo: FICHEROIDIOMA() 
El algorítrmo FICHEROIDIOMA(), en su campo hacer contiene las siguientes instrucciones, que se comentan a continuación:

cadena3b=(_Load_(TOTALID)#'')?_Load_(TOTALID):IDMDEFECTO
cadena3='<IDM>\n '+cadena3b+'</IDM>'
SUBIRIDM=(CID=0)?_StrToVector_(cadena3,'IDM'):' '

  • En la variable cadena3b se cargan los datos del fichero de idioma cuya ruta viene dada por la variable TOTALID (se hace una comprobación de que el fichero existe y si no carga el idioma por defecto).
  • La variable cadena 3, es la variable cadena3b a la que se la incluido al principio <IDM> (y un salto de línea \n) y al final </IDM>. Esto es necesario para que en la siguiente operación la cadena 3 pueda ser transformada en un vector.
  • La función SUBIRIDM convierte la cadena 3 en el vector IDM.
Ahora ya cada nombre de control o etiqueta de texto del juego debe incluir como nombre o texto a mostrar el dato del vector del fichero de idioma correspondiente. Para los nombre de controles debe ir entre corchetes [IDM[nº líne del texto]] y para los textos se introducen como variables, con el valor IDM[nº líne del texto].

lunes, 12 de octubre de 2020

Como se hizo. Números aleatorios diferentes en juegos

En este artículo presentamos como obtener varios números aleatorios diferentes para los juegos del Proyecto AJDA desde el punto de vista de su código DescartesJS. Esta opción es muy utilizada en los juegos, como por ejemplo para: que las preguntas que se hacen a los participantes sean diferentes y aleatorias, obtener diferentes cartas de una baraja, obtener diferentes fichas de dominó, seleccionar diferentes participantes para realizar una acción en un suelo, etc.

En primer lugar se crea un vector vacío, cuyas dimensión sea la del número aleatorio máximo que se puede obtener (se puede indicar un número o dejarlo como parámetro). En este ejemplo llamaremos al vector valores 2.


Se crea un algoritmo (que hemos llamado iniciaValores2()) que rellena cada una de las filas del vector creado anteriormente desde cero hasta la cifra máxima del número aleatorio, tal y como se indica a continuación.


Se genera un nuevo algoritmo (que hemos denominado permutar2()) que asigna a cada fila un valor entre el cero y la cifra máxima pero con una reordenación aleatoria. Comentamos el funcionamiento del algoritmo: se van a ir recorriendo las distintas filas del vector (valores2) por orden secuencial (desde cero a la Cifra-max) y en cada ciclo primero se obtiene un numero aleatorio entre cero y la cifra máxima, después se extrae el valor de la fila del vector dado por ese número aleatorio, a la fila extraída aleatoriamente se le da el valor de la fila que le corresponde por orden secuencial de la iteración y a ésta el valor de la fila sacada aleatoriamente. De esta forma en cada iteración se van permutando los números de las filas del vector de forma que tenemos un vector con un número aleatorio diferente en cada fila.


Cuando invoquemos los dos algoritmos creados (en el ejemplo iniciaValores2() y permutar2()) tendremos un vector (valores2) cuyas filas contienen números diferentes y con valores aleatorios entre el cero y la cifra máxima que podremos utilizar cuando necesitemos.

Como se hizo. Números aleatorios en juegos

En los juegos del Proyecto AJDA se utilizan muy frecuentemente los números aleatorios. Ya sea al tirar un dado, una moneda, sacar cartas, colocar casillas en un panel, etc. Vamos a analizar como se ha realizado desde el punto de vista del código de DescartesJS.

Cuando simplemente se quiere obtener un número entero aleatorio entre uno y una cifra máxima, se puede invocar la siguiente función:

Número aleatorio = ent(rnd*cifra máxima)+1

Un ejemplo concreto, la función a invocar para obtener una tirada de un dado de seis caras sería la siguiente:

DADO = ent(rnd*6)+1

Otro ejemplo, la función a llamar para sacar una carta de ka baraja española podría ser:

CARTA = ent(rnd*40)+1

La cifra máxima puede dejarse como parámetro o variable,de forma que pueda ser introducida a través de controles o determinada a través de un cálculo concreto. Un caso concreto podría ser determinar aleatoriamente el jugador que empieza una partida. Teniendo en cuenta que el número de jugadores es una variable que se introduce mediante un control (por ejemplo, NJ), la función quedaría de la siguiente forma:

EMPIEZA = ent(rnd*NJ)+1

En el caso de que se quieran obtener varios números aleatorios de forma independiente, es suficiente con invocar tantas funciones de este tipo como necesitemos. Por ejemplo, si lanzamos tres dados simultáneamente, las funciones podrían ser:

DADO1 = ent(rnd*6)+1

DADO2 = ent(rnd*6)+1

DADO3 = ent(rnd*6)+1

Otra cuestión sería obtener varios números aleatorios diferentes entre si, la cual la dejaremos para otro artículo.


domingo, 20 de septiembre de 2020

Planifica el curso académico 2020-2021 con el Proyecto AJDA

El curso 2020-2021 se presenta lleno de interrogantes y después de más de seis meses sin la realización de enseñanzas presenciales. Por ello, en este principio de curso, entre otras, hay dos tareas importantes que realizar: una de ellas consiste en evaluar la situación académica de nuestro alumnado y los aprendizajes esenciales no adquiridos, la otra en cuidar los aspectos emocionales de nuestro discípulos en la situación excepcional que hemos vivido y que todavía sufrimos. Para ambos aspectos la utilización de los juegos didácticos del Proyecto AJDA puede ser altamente positiva, ya que a través de ellos se pueden desarrollar diferentes actividades que permitan determinar aquellos aspectos curriculares que los discentes aun no han desarrollado y a la vez hacerlo de una forma lúdica, divertida, emocionalmente favorable y permitiendo interaccionar con los demás cumpliendo los protocolos sanitarios.
 
Mediante una adecuada selección de juegos didácticos adaptada al contexto de la clase y una correcta preparación de los contenidos y preguntas para los mismos se pueden realizar múltiples actividades que contribuyan a realizar una buena, enriquecedora y entretenida evaluación inicial.
 
Del mismo modo, se pueden desarrollar a lo largo de todo el año académico actividades basadas en  estos juegos didácticos,  ya sea para la presentación de unidades o temas, repaso, evaluación, refuerzo, ampliación, etc.
 
Otra característica importante de los juegos didácticos del Proyecto AJDA es que se pueden desarrollar perfectamente a través de vídeo-conferencia, ya que a ellos pueden acceder muchos participantes de forma simultánea y participar en su dinámica sin mayores problemas. Esto es una gran ventaja en un contexto en el que las enseñanzas pueden tener que desarrollarse de forma semipresencial o no presencial.
 
Lógicamente hay que introducir las adaptaciones metodológicas debidas al medio en el que se están llevando a cabo, pero su implementación no implica ninguna dificultad especial, simplemente hay que preparar y desarrollar los juegos en este contexto, en el cual se pueden utilizar además del juego las herramientas propias de la aplicación con la que se realizan las vídeo-conferencias, tales como cronómetros, sondeos, pulsadores, etc, permitiendo opciones adicionales. En esta ocasión no se necesita pizarra digital o cañón proyector, siendo suficiente un equipo informático y la herramienta para realizar la vídeo-conferencia.
 


miércoles, 19 de agosto de 2020

Proyecto de investigación en AJDA (II)

La línea de investigación del Proyecto AJDA llevada a cabo en colaboración con varios profesores del departamento de Ingeniería Telemática de la Escuela Técnica Superior de Ingenieros Industriales de la Universidad de Sevilla sigue adelante.

En julio de 2020 se ha publicado el Trabajo Final de Grado titulado "Aplicación de gestión de juegos para la educación con framework Spring y Primefaces" y realizado por Ana María Lobón Roldán. En el mismo se ha desarrollado parte de una plataforma para la gestión y el uso de juegos del Proyecto AJDA.

Actualmente están en desarrollo nuevos TFG, continuación de los anteriores y cuyo principal objetivo es completar los trabajos ya desarrollados y obtener productos totalmente funcionales.

Además se trabaja en el Proyecto de Investigación "Estudio Integral del Impacto de la Gamificación Digital (GAIMS)" que pretende ahondar en la investigación científica y técnica de esta temática..

sábado, 4 de julio de 2020

Juegos didácticos a través de vídeo-conferencia

En 2020 las vídeo-conferencias han pasado a formar parte de la cotidianidad de los profesores para los procesos de enseñanza-aprendizaje, para los de coordinación y para los de administración y gestión.
 
Hemos podido comprobar que los juegos didácticos del Proyecto AJDA, también se pueden utilizar e integrar perfectamente a través de vídeo-conferencia, ya que estos pueden ser compartidos sin ningún tipo de problema entre los diferentes participantes y se pueden desarrollar sin problemas.
 
Lógicamente hay que introducir las adaptaciones metodológicas debidas al medio en el que se están desarrollando, pero su implementación no conlleva ningún tipo de problema. Comentaremos algunas ventajas y desventajas de este procedimiento de uso de juegos.
 
Ventajas.
 
  • Permite la utilización de las herramientas propias de la aplicación con la que se realiza la vídeo-conferencia, como por ejemplo el uso de temporizadores, cuestionarios, herramientas de participación, etc.
  • Se puede sistematizar mejor la forma de participación y de turnos de palabra.
  • Permite la introducción de nuevas dinámicas de juego, permitiendo respuestas simultáneas, realización de grupos separados, competiciones paralelas, etc.
  • Se produce otra forma de interacción y de desarrollo de competencias que también es bastante interesante.
  • Se puede desarrollar sin limitación de tiempo, espacio, PDI, etc, es decir, sin necesidad de ajustarse a las limitaciones de la enseñanza presencial.
Desventajas.
  • Los participantes afectados por la brecha digital tienen mayor dificultad al acceso y uso de estos recursos.
  • Se pierde la interacción personal directa, que en algunos juegos es muy interesante.
Como en toda actividad docente la práctica y la experiencia será la que más nos ayude a avanzar y a optimizar el uso de este nueva forma de poner en práctica los juegos didácticos.
 
 

martes, 24 de diciembre de 2019

El broche final con juegos

Un momento en el que el uso de los juegos didácticos suele ser muy útil suele ser al final de una evaluación o del curso. Cuando un periodo finaliza, lo habitual es que el alumnado esté cansado y deseando de tomar las vacaciones. En muchas ocasiones he preparado determinados juegos didácticos para realizar en estas sesiones finales, obteniendo una respuesta muy favorable por parte de mis discípulos.

Paso a comentar algunas de las ventajas y efectos positivos que he encontrado con la utilización de estos recursos:
  • La predisposición a realizar actividades con juegos en este contexto es mucho más favorable que para realizar actividades "tradicionales".
  • Se puede aprovechar para realizar un repaso de los aspectos estudiados.
  • Se pueden trabajar aspectos y competencias básicas generales más allá de los contenidos específicos de la materia o asignatura en cuestión.
  • Se pueden introducir juegos que favorezcan la interacción, la convivencia y las buenas relaciones entre los participantes.
  • El buen ambiente en la integración suelen ser la tónica general durante el desarrollo de los mismos.
  • Se pueden añadir aspectos que vayan más allá del ámbito estrictamente académico y más lúdico-festivos.
  • Pueden ser considerados como actividades adicionales para mejorar la calificación del alumnado.
Una vez preparado y contextualizado, cualquier juego didáctico del Proyecto AJDA puede servir para este fin. Como ejemplo cito tres juegos que he utilizado recientemente en el contexto comentados: Password 10, Caída y Carrera elimatoria.




miércoles, 4 de diciembre de 2019

Prueba inicial con juegos didácticos

Otra posibilidad de los juegos didácticos es utilizarlos en la realización de pruebas iniciales de evaluación. Con este tipo de pruebas se pretende evaluar el nivel de partida de los alumnos, sus puntos fuertes y débiles, sus ideas y conocimientos previos, etc.

A continuación comento la experiencia desarrollada al respecto con alumnos de segundo de bachillerato en la materia de Física, consistente en la realización de un programa completo del concurso de televisión "Boom", el cual fue grabado con teléfonos móviles.
El profesor avisó con varios días de antelación de la realización del concurso, les explico la dinámica, preparó los contenidos y comprobó que el funcionamiento de los juegos era correcto.

Los alumnos formaron dos equipos de cuatro jugadores cada uno, eligieron el nombre del equipo y su "grito de guerra".

Comenzó el juego con la presentación y el sorteo de comienzo. Seguidamente se fueron desarrollando las distintas pruebas del concurso, siguiendo las mismas reglas que en el programa de televisión, las cuales versaron sobre la materia de Física y Química de primero de bachillerato y fueron:
  • Bombas negras.
  • Bomba estratégica.
  • Bomba clasificatoria.
  • Bomba dorada.
Tras la realización de cada prueba se guardó el fichero que genera el juego con los resultados obtenidos en el mismo. El desarrollo completó duró unas dos horas y al finalizar se proclamó el equipo ganador.

La evaluación de la experiencia fue valorada muy positivamente por los alumnos y por el profesor, concretándose en los siguientes aspectos:
  • Es una excelente forma de romper el hielo y crear una buena dinámica de grupo al principio del curso.
  • Se realiza una prueba de evaluación inicial motivadora, entretenida, divertida y participativa.
  • Los alumnos no se sienten presionados o tensos al realizar las pruebas.
  • El hecho de competir les lleva a intentar obtener los mejores resultados.
  • Se puede observar como los alumnos funcionan individualmente y en equipo.
  • Se trabajan diferentes tipos de competencias clave.
  • El profesor obtiene gran cantidad de información y de distinta índole para la realización de la evaluación inicial.