ELO-330
Proyecto de Programación de sistemas
Juego
Educativo
Casa Embrujada en red
Ignacio Ferruzola rol: 2421052-9
Francisco Soto rol: 2323021-6
Profesor Agustín J. González V.
Índice
I.Diseño de la Casa Embrujada en Red.
II.Trabajo realizado y futuras implementaciones
Es sabido por todos que en la actualidad existen grandes deficiencias en el aprendizaje de las matemáticas en los niños, por lo cual resulta imprecindible generar nuevas herramientas que permitan mejorar este aspecto. En una asignatura anterior (elo329 1s2010) se desarrolló un software para contribuir a resolver tal falencia, con un juego lúdico que incentiva a los niños a resolver problemas matemáticos. Un profesor de enseñanza básica que implementase este sistema, quisiera llevar una estadística en su computador del progreso de los niños, por lo cual resulta imperioso comunicar un programa que lleve tal registro con el resto de los clientes.
El proyecto final consiste en modificar el juego “Casa Embrujada” de tal forma que los jugadores puedan conectarse a un servidor y enviar sus respuestas correctas y erróneas a un servidor, con esto se logra obtener una medida de las habilidades del usuario, así como centralizar los datos para el evaluador.
Se modificó la Casa Embrujada de tal forma que el usuario, al guardar la sesión, envía la cantidad de respuestas correctas e incorrectas, además del tiempo que el usuario estuvo jugando. El envío de información se hace a través del protocolo TCP/IP, asegurando con esto un correcto envío de los datos. En el servidor se tiene
El jugador crea una cuenta con sus datos, los cuales serán enviados al servidor de manera automática cuando guarde su sesión.
Figura 1. Interfaz gráfica Cliente, petición de datos.
Al guardar la sesión, se creara un socket con una dirección ip y un puerto predeterminado, este no puede ser modificado a menos que se modifique el código. El envío de datos se enviará a través de un ObjectOutputStream, si hubo algún error de escritura se notificará al usuario por la consola. En cualquier caso, luego de enviar la información o tener problemas de escritura, se cerrará la conexión. En la siguiente imagen se puede observar al software solicitando el número de lista del alumno.
Figura 2. Interfaz gráfica Cliente.
El servidor por su parte, consistirá en una cierta cantidad de botones, identificados por números, los cuales corresponderán al número de alumnos que posea el profesor. La cantidad de botones será consultada al usuario por medio de una ventana, con lo cual el profesor podrá tener a varios cursos con el mismo software.
Por otra parte, el servidor tendrá la capacidad de recibir múltiples conexiones, esto se realizó a través de la creación de hebras, con lo cual, el usuario al guardar sesión, creará una nueva hebra en el servidor para poder recibir correctamente la información de su juego.
Figura 3. Interfaz gráfica Servidor.
La implementación del cliente se llevo a cabalidad, envía correctamente la información del jugador y cierra las conexiones como es debido. No obstante, el servidor tiene problemas para recibir la conexión de cada jugador, para poder comprobar el correcto funcionamiento del cliente se utilizo un servidor TCP que muestra la información recibida por pantalla. Además de implementar correctamente las multihebras, se puede crear un servidor que guarde la información de los estudiantes en una base de datos o a través de properties, ya que el servidor al cerrar la sesión pierde la información recibida. A continuación se muestra la interfaz gráfica del servidor utilizado para realizar las pruebas al cliente.
Figura 4. Interfaz gráfica del Servidor de
prueba.
Este proyecto nos ha permitido observar funciones y como realizar conexiones TCP/IP en el lenguaje java, además de poder investigar futuras implementaciones para que el proyecto sea más robusto. El software puede ser fácilmente modificado debido a su simple implementación además de tener el código debidamente documentado, a través de comentarios y el respectivo javadoc del software.
El cliente presenta ciertas falencias, al igual que una tarea realizada en el ramo 'Programación orientada a objetos', no se pudo resolver. Al realizar la pregunta matemática, el usuario si presiona cancelar, la ventana se cerrará y podrá moverse una casilla, además de esto, si se ingresa una palabra, arrojará una excepción y podrá moverse libremente. No obstante no podrá salir de la casa si lo realiza al llegar a la puerta.