UNIVERSIDAD TECNICA PARTICULAR DE LOJA                    La Universidad Católica de Loja               Escuela de Ciencia...
CONTENIDOSTabla de contenidos……………………………………………………………....                             ITema……………………………………………………………………………......
Trivia de Programación de   Algoritmos en Java            ii
OBJETIVOS:    ◦   General:        Hacer uso de un juego de trivia para ayudar en la formación de los        estudiantes de...
JUSTIFICACIONLos juegos en donde se pone a prueba la capacidad de razonamiento ymemoria de los estudiantes son muy utiliza...
Se pensó hacerlo utilizando ficheros de manera que el profesor, tutor ocualquier usuario pueda realizar cambios en las pre...
ALCANCEEl alcance del presente proyecto se definirá de la siguiente manera:La aplicación que se desarrollara en el lenguaj...
netamente dinámico ya que si el usuario considere que las preguntas que tienela aplicación no están acordes con sus necesi...
LIMITACIONESDentro de las limitaciones que pueden darse durante el transcurso deldesarrollo del presente proyecto están la...
MARCO TEORICOEntre los conceptos que se usaran para el desarrollo del siguiente proyectoestán los siguientes:TRIVIASe deno...
Entre las excepciones más comunes se pueden encontrar las siguientes:   IOException.- Problema de entrada o salida de dat...
Entre los tipos de diagramas UML que existen vamos a analizar aquellos quevan a ser parte importante de la metodología a u...
   Objeto: Dentro de los diagramas de secuencia se le conoce como objeto a    una instancia de una clase que se puede emp...
Dependencia.- Se habla de dependencia cuando una clase depende de la otraen el sentido que la una clase la usa a la otra c...
FICHEROS EN JAVAUn archivo o fichero se puede definir como una colección de datoshomogéneos que se almacenan en un soporte...
En el cuadro anterior se pueden observar algunas de las clases deexcepciones que se pueden dar durante el manejo de los fi...
Todos los archivos se abren gracias a que se crean objetos de estas clases deflujos, que heredan de las siguientes clases:...
ARREGLOS EN JAVASe conoce como un arreglo a una colección de elementos que son del mismotipo agrupados bajo un nombre de v...
Si en el supuesto caso de que el archivo que se especifica ya existe entonceseste se sobrescribe.IOException.La clase IOEx...
El ultimo de los componentes de un método son las <instrucciones> lasinstrucciones son aquellas que implementan la tarea q...
Variables localesLas variables locales a diferencia de las variables locales se definen dentro decada uno de los métodos q...
ANALISIS Y DISENO DE LA APLICACIÓN EN FUNCIÓN DE UNAMETODOLOGIA DE LA PROGRAMACIÓN ICONIXAntes de comenzar el análisis de ...
3. Debe permitir al usuario observar cual es su puntuación durante el      juego   4. Debe permitir al usuario elegir la c...
1.2.2. Interfaz del usuario. Nombre de los jugadores                          Fig. 2. Ingreso de nombres de jugadores     ...
1.2.4. Interfaz de usuario. Interfaz Final.                    Fig. 4. Información de resultados del juego2. Análisis y di...
Descripción de caso de uso. Ingreso de 2 o 3 Jugadores    Los jugadores realizan el registro en el juego colocando el nomb...
En esta caso de uso como se podrá observar los jugadores una vez       que seleccionaron una apuesta para la ronda de preg...
Para la elaboración de los diagramas de robustez es muy necesariocompletar el paso anterior, es decir la identificación y ...
2.2.2. Diagrama de robustez. Seleccionar Apuesta    En el diagrama de robustez de seleccionar apuesta se ha tomado    en c...
Fig. 11. Diagrama de robustez. Seleccionar Categoría2.2.4. Diagrama de robustez. Contestar Pregunta    En el diagrama de r...
Fig. 11. Diagrama de robustez. Contestar Preguntas3. Diseño  Para continuar con los análisis necesarios para que nuestra a...
3.1.2. Diagrama de secuencia. Seleccionar Apuesta        Fig. 13. Diagrama de secuencia. Seleccionar Apuesta   3.1.3. Diag...
cambios que se puedan tomar en cuenta según los diagramas antes   realizados                          Fig. 16. Diagrama de...
3. Debe permitir al usuario observar cual es su puntuación durante   el juego.   Una vez que se han cumplido los 2 pasos a...
8. Debe presentarle al usuario los resultados del juego antes de        salir completamente del juego.        Antes de sal...
4.1.1. Interfaz de Bienvenida      Esta es una de las más sencillas ya que solo contendrá el código      del nombre de la ...
fichero correspondiente así como los datos del juego de la interfazanterior.A mas de ello tendremos el código que nos most...
ARQUITECURA DE LA APLICACIÓN GRAFICA Y DESCRIPCION DE LOSCOMPONENTESEn este apartado veremos lo referente a la arquitectur...
Estos son los 10 archivos que conformaran nuestro servidor de datos estos asu vez se conectaran con la siguiente capa que ...
En el caso del primer modulo que corresponde a la bienvenida este nocontendrá ninguna interacción con la base de datos de ...
Fig. 3Y la ultima interacción que tiene el servidor de datos con el servidor deaplicación será la que hace cuando el modul...
Fig.5 33
PROTOTIPOSEn este apartado podrán encontrar capturas de todos los módulos queconforman la aplicación. Una vez que ya se ha...
Fig. 4 Interfaz Trivia. Dos jugadores durante el juego            Fig. 5. Interfaz de Resultados                          35
DESCRIPCION DE LA APLICACIÓNEn este apartado trataremos de dar una breve descripción de la aplicación unavez que ha pasado...
CODIFICACIONEn esta sección se encontrara el código de cada uno de los módulos denuestra aplicación, debido a que para el ...
anteriormente y con la última hacemos invisible la ventana de      Bienvenida.      c.   Método de la acción del botón Ayu...
3. Interfaz trivia       a. Importamos las clases necesarias para la interfaz       Para el correcto funcionamiento de est...
Entre las variables globales que se usaran se tendrá que tenervariables tipo String para categoría, respuestas, preguntas,...
incrementar el contador correspondiente al numero de preguntas dela categoría seleccionada.En este método también se desha...
g. Método btnSalirMouseClickedEn este método se encontrara una llamada al método deguardarDatos para que se realice los pr...
k.   Método SeleccionarCategoriaComputadorEn este método se inicializara la variable numCat usando unnumero aleatoria que ...
que hacer son el nombre de la variable que se colocara en dondeva el nombre del fichero que se desea abrir y el arreglo do...
color del panel de verificación, y la asignación de un valor a lavariable esCorrecto según sea el caso; además de un llama...
r.   Método Jugar      En este método comprobaremos si el jugador actual es la      computadora entonces nos dirigiremos a...
c.   Método ResultadosDebido a que este es el primer método de la interfaz entonces aquíencontraremos la llamada al método...
e.   Método mostrarGanadorEn este método se hará una comparación con los valores de laspuntuaciones de los jugadores y se ...
CONCLUSIONESComo conclusiones una vez terminado este proyecto tenemos las siguientes:      La utilización de ficheros par...
RECOMENDACIONESEntre las recomendaciones que se pueden dar acerca de este proyecto setienen las siguientes:      Se debe ...
BIBLIOGRAFIARB1: Yahoo Respuestas en español (s.f). Recuperado el 11 de abril del 2012dehttp://espanol.answers.yahoo.com/q...
RB18: Camacho Fernández, D. (Coordinador); Valls Ferrán, J. M.; GarcíaHerrero J.; Molina López, J.; Bueno Rodríguez, E (20...
Próxima SlideShare
Cargando en…5
×

Informe proyecto trivia java

4.343 visualizaciones

Publicado el

Publicado en: Educación
0 comentarios
1 recomendación
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
4.343
En SlideShare
0
De insertados
0
Número de insertados
2
Acciones
Compartido
0
Descargas
130
Comentarios
0
Recomendaciones
1
Insertados 0
No insertados

No hay notas en la diapositiva.

Informe proyecto trivia java

  1. 1. UNIVERSIDAD TECNICA PARTICULAR DE LOJA La Universidad Católica de Loja Escuela de Ciencias de la Computación Carrera de Sistemas Informáticos y Computación Programación de AlgoritmosProfesional en Formación:Castillo Cevallos Miguel EduardoDocente:Ing. Quezada Sarmiento Pablo Alejandro Loja – Ecuador 2012
  2. 2. CONTENIDOSTabla de contenidos…………………………………………………………….... ITema……………………………………………………………………………... IiObjetivos…………………………………………………………………………… IiiJustificación………………………………………………………………………... IvAlcance…………………………………………………………………………...... ViLimitaciones………………………………………………………………….......... ViiMarco Teórico……………………………………………………………………... 1Análisis y diseño de la aplicación……………………………………………….. 13 Análisis de Requisitos…………………………………………………….. 13 Análisis y Diseño preliminar……………………………………………… 16 Diseño………………………………………………………………………. 22 Implementación…………………………………………………………… 26Arquitectura de la aplicación grafica y descripción de componentes……….. 29Prototipos…………………………………………………………………………... 34Descripción de la aplicación……………………………………………………... 36Codificación………………………………………………………………………... 37Conclusiones………………………………………………………………………. 47Recomendaciones………………………………………………………………… 50Bibliografía…………………………………………………………………………. 51 i
  3. 3. Trivia de Programación de Algoritmos en Java ii
  4. 4. OBJETIVOS: ◦ General: Hacer uso de un juego de trivia para ayudar en la formación de los estudiantes de la Escuela de Sistemas Informáticos y Computación de la Universidad Técnica Particular de Loja. ◦ Específicos:  Fortalecer los conocimientos en el uso de ficheros en java  Ayudar a fortalecer los conocimientos en computación de los estudiantes con el uso de un juego de trivia.  Fortalecer los conocimientos del uso de interfaces graficas en Java. iii
  5. 5. JUSTIFICACIONLos juegos en donde se pone a prueba la capacidad de razonamiento ymemoria de los estudiantes son muy utilizados en la actualidad como y unaherramienta en el aprendizaje.Anteriormente se creía que el tiempo que las personas utilizaban para jugar erauna perdida de tiempo y no se adquirían conocimientos durante este tiempo; esdecir era tiempo que el estudiante perdía.Esta afirmación depende del tipo de juegos que se le presente al estudiantesea este del nivel que sea; ya que el juego logra estimular los sentidos de losestudiantes para poder lograr superarse en el mismo, de manera que puedansubir en los niveles en el juego y así poder organizar competencia en donde secomparara los puntajes obtenidos o niveles alcanzados por cada uno de losestudiantes.En la actualidad en algunas instituciones educativas se usa el juego como unmétodo para el reforzamiento en el proceso de la educación de niños yjóvenes; entonces contrario a lo que se pensaba anteriormente sobre el juegoquedaron desechadas ya se con la ayuda de este se pudo reforzarEn base a estos antecedentes se pensó en el desarrollo de este proyecto paraque sea usado a manera de herramienta de reforzamiento de losconocimientos en la materia de Programación de Algoritmos. El presenteproyecto constara de diferentes categorías en las cuales se encontrara unaserie de preguntas que podrán ser cambiadas de manera muy sencilla debido ala utilización de ficheros que permitan un mejor manejo de las mismas.El uso de ficheros para la realización de este proyecto fue para poder tener unmejor manejo del espacio durante la ejecución de la aplicación, debido a que sicargamos toda la información que contiene los ficheros en la memoria de lacomputadora podemos hacer que esta sea mas lenta al momento de larealización de los procesos de la aplicación o podemos con ello provocar que elcomputador se cuelgue y se dañen todas las actividades que se encuentrerealizando el usuario al momento de la ejecución del mismo. iv
  6. 6. Se pensó hacerlo utilizando ficheros de manera que el profesor, tutor ocualquier usuario pueda realizar cambios en las preguntas sin la necesidadque al momento de hacer los cambios este presente un programador. Estoayudara al usuario final a tener varias posibilidades de cambios en el programa.Otra de las ventajas que tanto el usuario final como el programador tienen alusar ficheros es que para la corrección de errores en las preguntas u opcionesno se tiene que revisar todo el código para encontrar las líneas de código amodificar si no que se realizaran en el fichero, en el cual podemos utilizar lasopciones de búsqueda que tienen cada uno de los programas que se usan parala administración de los mismos v
  7. 7. ALCANCEEl alcance del presente proyecto se definirá de la siguiente manera:La aplicación que se desarrollara en el lenguaje de programación java con eluso de Netbeans es un juego de trivia en java en cual tendrá algunascaracterísticas que se irán detallando durante el desarrollo del presentealcance.La aplicación constara de una primera ventana en donde se dará la bienvenidaal usuario con un botón para poder ingresar al juego, luego de ello se lepresentara al usuario una ventana en donde deberá poner el nombre que loidentificara durante el juego, una vez que se haya seleccionado el nombre, ypulsado el botón de JUGAR al usuario se le presentara la ventana del juegopropiamente dicha en donde tendremos los siguientes elementos gráficos:  Un panel con los nombres y puntuación de todos los jugadores resaltado en negrita el jugador activo  Se encontrara junto al panel de Datos de Jugadores tendrá el panel con las diferentes opciones de categorías con las que cuenta el juego.  En la parte inferior al panel de Datos de Jugadores se encontraran los botones de opción correspondientes a las apuestas que se puede realizar.  En la parte baja de la aplicación tendremos 2 partes; en la parte izquierda tendremos las preguntas que serán seleccionadas de forma aleatoria con sus respectivas opciones. La pregunta se presentara en un etiquetas y las opciones serán presentadas en botones de opción en donde el usuario podrá seleccionar la respuesta que considere correcta, también se tendrá un botón en donde el usuario podrá comprobar sus respuestas. En la segunda parte o parte izquierda tendrá un cuadro con un mensaje que mostrara si su respuesta es correcta o incorrecta, este panel a su vez cambiara también de color sea su respuesta.Como ya se indico anteriormente para el manejo de las preguntas se usaranficheros por su facilidad de realizar cambios sin la necesidad de modificar elcódigo fuente de la aplicación. Es decir el juego se convertiría en un juego vi
  8. 8. netamente dinámico ya que si el usuario considere que las preguntas que tienela aplicación no están acordes con sus necesidades, se podrá hacer loscambios respectivos sin la necesidad de que este recurra a un gastoeconómico para que un programador realice los cambios en el código fuente dela aplicación debido a que esto representaría un uso de recursos tanto entiempo como en dinero para el usuario, debido a que no podría tener listo elmaterial para su clase por la dificultad para realizar los cambios en laaplicación. vii
  9. 9. LIMITACIONESDentro de las limitaciones que pueden darse durante el transcurso deldesarrollo del presente proyecto están las siguientes:  Las rutas de los ficheros deben ser tratadas de forma absoluta de manera para evitar errores de archivos no encontrados.  El control de las excepciones que se puedan dar debido a los ficheros.  El control de las excepciones que se puedan dar debido a la utilización de interfaces graficas.  El programa solo podrá ser usados en ordenadores con sistemas operativos Windows  El nombre de las categorías debe ser cambiado desde el código de la aplicación.  La versión de la maquina virtual de java (JVM), debe ser la misma con la que se desarrollo la aplicación. viii
  10. 10. MARCO TEORICOEntre los conceptos que se usaran para el desarrollo del siguiente proyectoestán los siguientes:TRIVIASe denomina trivia a una pregunta o serie de preguntas con tres opciones derespuesta que normalmente van enfocadas a un concursoEXCEPCIONES EN JAVASe conoce con el nombre de excepción a una condición anormal que surge enuna secuencia de código durante la ejecución de un programaPara la gestión de errores java cuenta con palabras reservados como son:try/catch/finally/throw/throws; están se analizaran mas adelante.Cuando un método provoca una excepción, tiene una de las 2 siguientesposibilidades:Gestionarla el mismo.- Es decir, el método en donde ocurrió la excepcióndeberá capturarlo o detectarlo al error producido y tratar de darle una solución.Pasarla a otro método.- El método que ha producido un error tiene laposibilidad de pasar el objeto tipo excepción al método que lo invocase.Una excepción puede ser producida por el intérprete de Java o por el código.La gestión de las excepciones en Java se realiza mediante un conjunto depalabras reservadas propias de los lenguajes de programación.Todas las excepciones en Java son subclases de la clase Throwable que sedivide en 2 partes que son:ExceptionEsta es aquella que representa excepciones que deben capturarse y tratarse.Una de las subclases de Exception es RuntimeException de la cual heredanotras excepciones.ErrorEsta en cambio representa errores graves que generalmente no estáncontrolados y por consiguiente provocan que la aplicación se detenga. 1
  11. 11. Entre las excepciones más comunes se pueden encontrar las siguientes: IOException.- Problema de entrada o salida de datos ArithmeticException.- Desbordamiento o división para cero NumberFormatException.- Conversión ilegal de un String a un entero. IndexOutOfBoundsException.- Acceso a un elemento inexistente de un vector o de un String NegativeArraySizeException.- Intento de creación de un vector con longitud negativa. NullPointerException.- Intento de uso de una referencia nula SecurityException.- Violación de la seguridad en tiempo de ejecución.UMLAnalizaremos gran parte de lo que es UML debido a que se usara masadelante como una herramienta para el desarrollo del presente proyecto.Se conoce como UML a un lenguaje de modelo visual de propósito generalorientado a objetos; el cual agrupa notaciones y conceptos provenientes dedistintos tipos de métodos orientados a objetosPodemos citar 2 características importantes UML que son: UML es independiente del proceso de desarrollo Cubre las diferentes vistas de la arquitectura de un sistema.Ahora analizaremos algunas de las ventajas y desventajas que tiene UMLo Es estándaro Se basa en el metamodelo con una semántica bien definidao Basado en una notación grafica que es concisa, de fácil aprendizaje y uso.o Se puede usar para el modelado de sistemas de software en distintos dominios.o Es fácil extenderloLas anteriormente descritas son algunas de las ventajas que ofrece UML,ahora veremos algunas de las desventajas del mismo.o No es una metodologíao No cubre todas las necesidades de especificación de un softwareo Puede resultar complejo alcanzar un conocimiento completo del lenguaje. 2
  12. 12. Entre los tipos de diagramas UML que existen vamos a analizar aquellos quevan a ser parte importante de la metodología a utilizar (ICONIX). Entre ellostenemos:Diagrama de secuenciaLos diagramas de secuencia son aquellos que modelan el flujo de la lógicadentro del sistema de forma visual, permitiendo al programador ladocumentación y validación. Pueden ser usados tanto en etapas de análisis asícomo en las de diseño.La secuencia puede expresar un caso de uso en completo o quizá un caso deuso concreto del mismo, en el cual se pueden contemplar alternativas. Losdiagramas de secuencia también nos ayudan a identificar cual de las clases desistema van a ser las mas complejas de implementar.Los diagramas de secuencia poseen 2 características que los distinguen de losdemás.La línea de vida.- Que es aquella que representa la existencia de un objeto alo largo de un periodo del tiempo. Mediante el uso de la línea de vida se puedeindicar la creación o destrucción de objetos o roles durante una iteración.Foco de control o barra de activación.- Es aquella que representa el periodode tiempo durante el cual un objeto realiza la ejecución de una acciónSu representación en la línea de tiempo es un rectángulo que tiene lassiguientes características: la parte superior se alinea con el principio de laacción, en cambio la parte inferior se alinea con la terminación, la cual puedetener un mensaje de retornoLos focos de control no son necesarios colocarlos en el diagrama desecuencia, es decir son opcionales. Gracias al foco de control se puedeobservar el anidamiento de las llamadasUna vez que hemos analizado algunas de las características que tienen losdiagramas ahora analizaremos los elementos que tienen los mismos, entre losque están: 3
  13. 13.  Objeto: Dentro de los diagramas de secuencia se le conoce como objeto a una instancia de una clase que se puede empezar a identificar como participante en la secuencia de operaciones que representa un caso de uso. Actor: En cambio los actores son aquellos que pueden establecer comunicación con los objetos, por esta razón formaran parte de este diagrama. Vida de objeto: Se indica la existencia de un objeto mediante el uso de una línea discontinua, el fin del mismo se lo indica con un aspa. Activación: Este elemento es aquel que nos indica cuando un objeto se encuentra realizando una acción en concreto. Mensaje: Al mensaje se lo pueden definir como la comunicación entre los objetos y sus actividades.Diagrama de clasesEl diagrama de clases es el mas conocido de todos los diagramas UML esaquel que nos permite la identificación de la estructura de clases del sistema endonde se incluye las propiedades y métodos de cada una de las clasesEste tipo de diagrama tiene solo 2 elementos que son las clases y relaciones.Las clases en este diagrama se representan con un rectángulo divido en 3parte en la parte superior va el nombre de la clase, en el rectángulo siguientevan los atributos y en el ultimo en cambio irán los métodos de esta clase.Para el análisis de las relaciones que pueden existir entre las clases se lasdividirá de la siguiente manera: Asociación, Composición, Dependencia,Generalización.Asociación.- Esta es aquella que representa la relación genérica que existeentre 2 clases y la notación es muy simple ya que es una línea que las une endonde se puede indicar la multiplicidad que existe entre las 2 clases.Composición, agregación.- Se habla de composición cuando una clase estacompuesta de otras, donde las ultimas no pueden existir sin la primera. Laagregación en cambio se da cuando una clase incluye a la otra, pero la claseincluida tiene entidad en si misma. 4
  14. 14. Dependencia.- Se habla de dependencia cuando una clase depende de la otraen el sentido que la una clase la usa a la otra como atributo o parámetro dealgún método.Generalización.- Se habla de generalización cuando es equivalente a laherencia o extensión tal como se ve en otros diagramas.Diagramas de casos de usoLos diagramas de casos de uso son aquellos que muestran no solo un caso deuso sino todos los casos de uso de un sistema dado. Un caso de uso individualque se representa con un ovalo con su nombre, representa a su vez un tipo detarea que tiene que soportar el sistema en el desarrollo.El diagrama de casos de uso muestra solo una parte de la información que senecesita, los diagramas de casos de uso se pueden ver como un resumenconciso de la información que contiene en todas las descripciones de los casosde uso.A mas de la representación del caso de uso mediante un ovalo tenemos larepresentación de un actor que es otra de las piezas claves en este diagrama,este en cambio se representa como un muñeco, en estos diagramas tambiénpodemos encontrar una línea que es la conexión entre el actor y los casos deuso. Fig. 1En la figura anterior podemos observar un ejemplo de un diagrama de uso parauna aplicación. 5
  15. 15. FICHEROS EN JAVAUn archivo o fichero se puede definir como una colección de datoshomogéneos que se almacenan en un soporte físico del computador que puedeser permanente o volátil.Algunas características generales que se deben tener en cuenta por elprogramador antes de utilizar este tipo de estructuras, estas son las siguientes: Todos los elementos de un fichero poseen una determinada posición dentro de la secuencia de datos. El tamaño de un fichero a diferencia de otro tipo de estructuras no es fijo, pudiendo cambiar de forma dinámica el numero de elementos que almacena Cada uno de los ficheros podrá ser referenciado dentro del programa mediante un identificador, que se utilizara como una referencia lógica al fichero físico, o real, que se encuentra almacenado dentro de la memoria. En cada una de las operaciones de lectura/escritura sobre un fichero solo podrá leerse/escribirse un único registro. Las operación que se realicen para el acceso a la información de un fichero pueden realizarse de 2 formas diferentes:  Acceso secuencial  Acceso directo o aleatorio.Como en todas las operaciones dentro un lenguaje de programación tenemosalgunas clases básicas para la manipulación de los ficheros las cuales seresumirán el siguiente cuadro. 6
  16. 16. En el cuadro anterior se pueden observar algunas de las clases deexcepciones que se pueden dar durante el manejo de los ficheros en java.Los programas en java realizan la apertura de un archivo creando un objeto elcual se asociara a un flujo de bytes o caracteres. El lenguaje de programaciónjava crea tres objetos flujo los cuales se asocian con dispositivos cuando unprograma java empieza su ejecución; estos son: System.in, System.out,System.err.System.in.- Es aquel que permite a un programa recibir bytes desde teclado.System.out.- Es aquel que permite a un programa mostrar datos por pantalla.System.err.- Es aquel que permite a un programa mostrar un mensaje de erroren la pantalla.Claro que no siempre se aplica las definiciones antes descritas ya que cadauno de estos flujos tiene la capacidad de redirigirse. Es así como System.intiene la capacidad de leer bytes desde un origen distinto, los otros 2 en cambiopueden permitir que la salida se envié a una ubicación distinta, como porejemplo a un archivo en disco. La clase System proporciona algunos métodospara la redirección de flujos estándar de entrada, salida y error como son: setIn,setOut y setErr.El manejo de los archivos en java se da gracias a las clases del paquete java.ioel cual posee definiciones para las clases de flujos como las siguientes: FileOutputStream FileReader FileWriter 7
  17. 17. Todos los archivos se abren gracias a que se crean objetos de estas clases deflujos, que heredan de las siguientes clases: InputStream OutputStream Reader WriterPara la realización de entrada y salida de datos pueden usarse objetos de lasclases siguientes: ObjectInputStream ObjectOutputStream FileInputStream FileOutputStreamPara las operaciones de entrada y salida que se basan en caracteres se laspuede llevar a cabo con las siguientes clases: Scanner FormatterLa primera se usa en forma extensa la cual recibe datos desde teclado, claroque también puede ser usada para leer datos desde archivos; la segunda encambio permite la visualización de datos con formato por pantalla o enviarlos aun archivo.JAVAJava es un lenguaje de programación y la primera plataforma informática quefue desarrollada por Sun Microsystem en 1995. Es la tecnología que permite eluso de programas punteros como herramientas, juegos y aplicaciones.Java Virtual Machine es únicamente un aspecto del software de Java, que esutilizado específicamente para interacción en la web. 8
  18. 18. ARREGLOS EN JAVASe conoce como un arreglo a una colección de elementos que son del mismotipo agrupados bajo un nombre de variable, a los cuales se los puedediferenciar entre si por el numero de índice, cada celda de este tipo devariables es numerada del 0 hasta n-1; donde n es la longitud del arreglo.A los vectores que poseen una sola dimensión se les conoce como arreglosunidimensionales o vectores; en cambio a los arreglos que pueden tener 2dimensiones se les conoce como arreglos bidimensionales o matrices.A un arreglo se lo puede declarar de varias maneras entre las que están:Int calif [ ] = new int [50];String diaSem [ ] = {“lun”,”mar”,”mie”,”jue”,”vie”,”sab”};Los 2 ejemplos anteriores son formas correctas de declarar un arreglo. Acontinuación se va a analizar como se puede obtener el tamaño de un arreglo.La dimensión de un arreglo se lo puede obtener mediante la siguientesentencia:Int longitud = arreglo.length;Lo que se ha hecho es declarar una variable longitud en donde se almacenarala longitud de dicho arreglo después colocamos nombre del arreglo seguida deun punto y la palabra reservada length que nos retornara el tamaño del arreglo.A un arreglo se lo puede recorrer mediante un ciclo repetitivo con el fin de teneracceso a cada una de las posiciones del mismo.JAVA.IOJava.io es un paquete de clases el cual provee la entrada y salida del sistema através de flujos de datos Serialización y sistemas de archivos. Entre las clasesque posee este paquete para el manejo de información se analizaran las quevan a ser usadas en el presente proyecto.FileWriter.La clase FileWriter ayuda a que sea posible escribir un archivo como unasecuencia de caracteres. La clase FileWriter se basa en caracteres, la claseFileWriter posee constructores que permiten especificar el archivo para laescritura de diversas formas. 9
  19. 19. Si en el supuesto caso de que el archivo que se especifica ya existe entonceseste se sobrescribe.IOException.La clase IOException del paquete java.io se nuestra cuando un error deentrada o salida de datos a ocurrido. La clase IOException es una clasegeneral para las excepciones de entrada o salida de datosBufferedReader.La clase BufferedReader es la encargada de leer el texto de un flujo decaracteres de entrada, el tamaño del buffer puede ser especificado o puedeusarse el tamaño por defecto el cual es lo suficientemente grande como para lamayor parte de los propósitos.MÉTODOS EN JAVAEn java un método es un bloque de código que se define dentro de una claseque proporciona un mecanismo para la realización de una acción. Un métodotiene acceso a todos los atributos de su clase.En java un método puede llamar a otro método; pero no se puede definir unmétodo dentro de otro; un programa realizado en java se ejecuta partiendo desu método main.Definición de métodosUn método se lo puede definir de la siguiente manera:<tipo de retorno> <nombre método> (<parámetros>…) {Instrucciones…}En donde <tipo de retorno> es en donde se encontrara el tipo de valor quedevolverá el método, en <nombre método> se escribe el nombre del método;<parámetros> esta parte de la declaración de los método encontraremos todoslos parámetros que usara el método los cuales se componen de un tipo y unargumento y que son separados por comas. 10
  20. 20. El ultimo de los componentes de un método son las <instrucciones> lasinstrucciones son aquellas que implementan la tarea que debe realizar elmétodo.Si el método usado va a devolver un valor debe finalizar con la palabrareservada return. El valor que vaya seguido de la palabra return debe ser elmismo del tipo de retorno que se puso al momento de crear el método. Dentrode cada uno del método se pueden declarar variables locales según sea elcaso.La finalización de la ejecución de un método es hasta llegar a la palabrareservada return o hasta llegar al final del método.Métodos que no retornan valorAquellos métodos que no regresan valor son aquellos que ejecutanoperaciones especificas y no poseen la palabra reservada return dentro de lasfuncionalidad del método, estos método poseen en su parte de tipo de retornotienen la palabra void.Metodos que retornan valorEstos metodos además de ejecutar operaciones especificas poseen la palabrareservada return dentro de las funcionalidades del metodo, además en la partede tipo de retorno debe ir el tipo de dato que el metodo devolverá.VariablesSe conoce como variable a un valor modificable, son nombres que representanun valor de un determinado tipo y el valor asociado al nombre se puede variar.Dentro de las aplicaciones en java se pueden considerar 2 tipos de variables:globales y locales.Variables globalesUn algoritmo que usa métodos, se pueden declarar variables tanto dentro de laclase antes de los métodos o de manera local en cada uno de los métodos. Alas variables que se definen antes de la declaración de los métodos se lesconoce como variables globales o variables de clase, estas pueden ser usadaspor cualquier método de la clase. 11
  21. 21. Variables localesLas variables locales a diferencia de las variables locales se definen dentro decada uno de los métodos que puede tener una clase, estas variables puedenser usadas por el método en donde fueron definidas.Parámetros.Se conoce como procedimiento a una variable que puede pasar su valor a unprocedimiento a partir del principal o de otro procedimiento. Dado que enocasiones es necesario mandar a un procedimiento ciertos valores para queestos sean usados en algún proceso es aquí donde se usan los parámetros.Dentro de la programación en java se puede considerar 2 tipos de parámetros:parámetros por referencia, parámetros por valor.Parámetros por referenciaA los parámetros por referencia también se les conoce como parámetrosvariables, son variables locales de un método que se definen como parámetrosdentro del encabezado del mismo, esta sirve de conexión con otra variable através de su contenido, al momento de llamarse o invocarse el método es elque establece la conexión, esto significa que si se le hace algún cambio a lavariable local del método llamado lo mismo le sucederá a la variable delmétodo con la cual fue conectada; esto se debe a que ambas ocupan la mismaposición de memoria.Parámetros por valorEs una variable local de un método que se define como parámetro en elencabezado del mismo y sirve de conexión entre otra variable de otro métodomediante el envió de su valor, al momento que se hace la llamada del métodose rompe la relación de estas variables; después de esto lo que le suceda a lavariable que paso como parámetro no afectara a la otra variable. 12
  22. 22. ANALISIS Y DISENO DE LA APLICACIÓN EN FUNCIÓN DE UNAMETODOLOGIA DE LA PROGRAMACIÓN ICONIXAntes de comenzar el análisis de la aplicación usando el método escogido sehará un análisis del método escogido de manera que se puede tener una ideaclara de como se va a trabajar en la aplicación con el uso de este método.El método ICONIX se lo define como un proceso de desarrollo practico, estemétodo se encuentra entre la complejidad que presenta y la simplicidad queposee el XP, esto es sin descartar el análisis y el diseño que XP no tienecontemplado.Al ser ICONIX un proceso simplificado en comparación con otros procesostradicionales, los cuales unifican un conjunto de métodos de orientación aobjetos esto se hace con el objetivo de abarcar todo el ciclo vida del proyecto.Las tareas que realiza el método ICONIX son las siguientes:  Análisis de requisitos  Análisis y diseño preliminar  Diseño  ImplementaciónComo se pueden ver las tareas del método ICONIX con 4 en las cuales sepretende abarcar todo lo necesario para que la aplicación desarrollada seencuentre acorde con las necesidades del jugador. Sin mas en adelante conconcentraremos en aplicar estas tareas para el desarrollo de nuestra aplicación1. Análisis de requisitos 1.1. Requerimientos de los usuarios En el análisis de requisitos de nuestra aplicación se tomara en cuenta los requisitos que los usuarios considerarían para que un juego tenga la debida aceptación entre sus consumidores. Entre dichos requerimientos tendremos los siguientes: 1. El juego tiene que ser de fácil acceso 2. Debe permitir al usuario elegir el nombre que usura al largo del juego 13
  23. 23. 3. Debe permitir al usuario observar cual es su puntuación durante el juego 4. Debe permitir al usuario elegir la categoría sobre en la cual desea participar 5. Debe permitir al usuario la cantidad de puntos que juega en cada ronda de preguntas. 6. Debe permitir al usuario el poder verificar si la respuesta ingresada es la correcta. 7. Debe permitirle al usuario poder salir del juego cuando este así lo quisiera. 8. Debe presentarle al usuario los resultados del juego antes de salir completamente del juego. 9. Debe permitir al usuario jugar contra la computadora.1.2. Prototipación Rápida En esta fase del análisis de requisitos se presentaran de manera rápida un prototipo de diseño de lo que será nuestra aplicación. Cabe mencionar que las interfaces que se presentan a continuación están sostenidas a cambios que se darán durante en desarrollo de la aplicación. 1.2.1. Interfaz de usuario. Bienvenida a la aplicación Fig. 1. Bienvenida al juego 14
  24. 24. 1.2.2. Interfaz del usuario. Nombre de los jugadores Fig. 2. Ingreso de nombres de jugadores 1.2.3. Interfaz de usuario. Interfaz Principal Fig. 3. Interfaz del juegoEsta es la interfaz que se presentara antes de que los jugadores empiecen ajugar. 15
  25. 25. 1.2.4. Interfaz de usuario. Interfaz Final. Fig. 4. Información de resultados del juego2. Análisis y diseño preliminar En esta segunda etapa de la metodología ICONIX consiste en los procesos que desarrollara nuestro juego, se procederá a la realización de los diagramas necesarios para que reflejen las interfaces de usuario que se presentaron en el literal anterior. 2.1. Diseño de diagramas de casos de uso Antes de analizar los diagramas de casos de uso debemos tener en consideración, que en el caso de jugar contra la computadora esta será el jugador 1 y los demás jugadores le seguirán según el orden ingresado. 2.1.1. Caso de uso. Ingreso de 2 o 3 jugadores. Fig. 5. Caso de uso. Ingreso de 2 o 3 jugadores 16
  26. 26. Descripción de caso de uso. Ingreso de 2 o 3 Jugadores Los jugadores realizan el registro en el juego colocando el nombre con el que se identificaran a lo largo del juego. Luego de que hayan ingresado sus nombres en los campos respectivos podrán ingresar.2.1.2. Caso de uso. Seleccionar Apuesta Fig. 6 Caso de uso. Seleccionar Apuesta Descripción de caso de uso. Seleccionar Apuesta Una vez que los jugadores ingresaron al juego mediante el ingreso de sus nombres, podrán ver la interfaz de usuario en donde podrán seleccionar la apuesta por la pregunta que la aplicación les hará dependiendo de la categoría que hayan seleccionado.2.1.3. Caso de uso. Seleccionar Categoría. Fig. 7. Caso de uso. Seleccionar Categoría. 17
  27. 27. En esta caso de uso como se podrá observar los jugadores una vez que seleccionaron una apuesta para la ronda de preguntas correspondientes entonces tendrán que seleccionar la categoría de la cual la aplicación seleccionara una pregunta la cual tendrá que contestar el usuario según las opciones que tenga la misma. 2.1.4. Caso de uso. Contestar Pregunta. Fig. 8. Caso de uso. Contestar Pregunta Descripción de caso de uso. Contestar Pregunta. Como se podrá ver en la Fig. 8 para la elaboración del “Caso de uso. Contestar Pregunta”, se ha unificado este caso de uso con el anterior; Una vez que se haya seleccionado la categoría de la pregunta la aplicación le mostrara al usuario una pregunta con 3 opciones de respuesta la cual deberá contestar. La aplicación le permitirá al usuario verificar su respuesta y ver la puntación que le corresponde por la misma.2.2. Diagramas de Robustez Los diagramas de robustez se hacen con el fin de ilustrar de manera grafica las interacciones entre los objetos participantes de los casos de uso. 18
  28. 28. Para la elaboración de los diagramas de robustez es muy necesariocompletar el paso anterior, es decir la identificación y graficación de loscasos de uso ya que en base a estos se hará los diagramas derobustez.2.2.1. Diagrama de robustez. Ingreso Jugadores En el diagrama de robustez del ingreso de jugadores se ha tomado en cuenta lo siguiente.  Se dirige a la interfaz Opciones Jugadores e ingresa los nombres de los jugadores.  Se obtienen los nombres.  Para ello se revisa que todos los campos que están destinados para el nombre se encuentren llenos.  Si los campos de nombres no están llenos el programa lanzara una advertencia y nos llevara de nuevo a la interfaz para ingresar los datos faltantes.  Si los campos de nombres están llenados entonces el programa nos llevara a la siguiente parte del juego en donde nos mostrara el nombre del jugador. Fig. 9 Diagrama de robustez. Ingreso Jugadores 19
  29. 29. 2.2.2. Diagrama de robustez. Seleccionar Apuesta En el diagrama de robustez de seleccionar apuesta se ha tomado en cuenta lo siguiente.  Se dirige a la interfaz Trivia en la cual se ingresa el valor de la apuesta correspondiente.  Se obtiene el valor de la apuesta.  Se comprueba que al menos uno de los valores de apuesta este seleccionado.  Si ninguno de los campos de apuesta esta seleccionado se lanzara una advertencia pidiendo que se seleccione la apuesta. Fig.10 Diagrama de robustez. Seleccionar Apuesta2.2.3. Diagrama de robustez. Seleccionar Categoría En el diagrama de robustez de seleccionar categoría se ha tomado en cuenta lo siguiente:  Se dirige a la interfaz trivia en la cual el usuario deberá pulsar en el botón correspondiente a la categoría que desee jugar.  Se obtiene el nombre de la categoría.  Si ningunos de los botones de la categoría es pulsado el jugador no podrá avanzar en el juego. 20
  30. 30. Fig. 11. Diagrama de robustez. Seleccionar Categoría2.2.4. Diagrama de robustez. Contestar Pregunta En el diagrama de robustez de contestar pregunta se ha tomado en cuenta lo siguiente:  Se dirige a la interfaz trivia, en donde el jugador seleccionar la respuesta que considere correcta.  Se obtiene la respuesta del usuario.  Se consulta con el fichero correspondiente a las respuestas, si la respuesta es correcta y el jugador pulsa el botón verificar entonces la apuesta será positiva en consecuencia el usuario tendrá una puntuación mas alta; si la respuesta seleccionada es falsa entonces la apuesta será negativa en consecuencia la puntuación del usuario bajara. 21
  31. 31. Fig. 11. Diagrama de robustez. Contestar Preguntas3. Diseño Para continuar con los análisis necesarios para que nuestra aplicación tenga el éxito deseado se continuara con los siguientes pasos que nos llevaran a un correcto análisis del diseño de nuestra aplicación antes de poder pasar al último paso que seria la implementación 3.1. Diagrama de secuencia Uno de los primeros pasos a analizar dentro del diseño de una aplicación es el diagrama de secuencia. En nuestra aplicación se encontraran los siguientes diagramas de secuencias. Los diagramas a continuación serán representados solamente en forma grafica. 3.1.1. Diagrama de secuencia. Ingreso Jugadores Fig. 12. Diagrama de secuencia. Ingreso de jugadores 22
  32. 32. 3.1.2. Diagrama de secuencia. Seleccionar Apuesta Fig. 13. Diagrama de secuencia. Seleccionar Apuesta 3.1.3. Diagrama de secuencia. Seleccionar Categoría Fig. 14. Diagrama de secuencia. Seleccionar Categoría 3.1.4. Diagrama de secuencia. Contestar Pregunta Fig. 15. Diagrama de secuencia. Contestar Pregunta.3.2. Refinamiento de diagrama de clases. Una vez que hemos realizado una serie de diagramas los cuales nos han ayudado a comprender el funcionamiento de nuestra aplicación entonces procederemos a modificar el diagrama de clases con los 23
  33. 33. cambios que se puedan tomar en cuenta según los diagramas antes realizados Fig. 16. Diagrama de clases3.3. Verificación del diseño Una vez que se ha realizado todos los análisis que contempla la metodología utilizada para el presente proyecto se procederá a verificar si los requisitos que se identificaron en pasos anteriores se han cumplido en su totalidad. 1. El juego tiene que ser de fácil acceso El juego que se presenta es de fácil acceso para el usuario debido a que para el acceso al mismo solamente tiene al iniciar la aplicación solamente tiene que pulsar un botón que posteriormente lo llevara a la venta en donde colocara el nombre de los jugadores según el numero que se haya escogido. 2. Debe permitir al usuario elegir el nombre que usura al largo del juego. Como ya se explico brevemente en el paso anterior el usuario podrá colocar que usara mientras dure el juego, rellenando los campos correspondientes. 24
  34. 34. 3. Debe permitir al usuario observar cual es su puntuación durante el juego. Una vez que se han cumplido los 2 pasos anteriores el usuario podrá observar la interfaz principal del juego en donde podrá observar en la parte superior de la ventana su nombre de jugador y su puntuación que variara a lo largo del juego.4. Debe permitir al usuario elegir la categoría sobre en la cual desea participar. En la interfaz principal del juego tenemos varios botones que representan las categorías del juego.5. Debe permitir al usuario elegir la cantidad de puntos que juega en cada ronda de preguntas. Como se podrá observar debajo del nombre y la puntuación el usuario podrá observar varios campos correspondientes a la apuesta que hara en cada ronda de preguntas. Cada vez que el usuario tenga que contestar una pregunta puede seleccionar también el valor de puntos que desea apostar en la misma.6. Debe permitir al usuario el poder verificar si la respuesta ingresada es la correcta. Debajo de las opciones de respuesta el usuario podrá encontrar un botón que al pulsarlo comprobara y actualizara el mensaje de respuesta lo cual le permitirá saber si su respuesta es correcta o no.7. Debe permitirle al usuario poder salir del juego cuando este así lo quisiera. Debajo del mensaje que muestra si la respuesta ingresada por el usuario es correcta o no; se encontrara un botón para poder salir de la aplicación 25
  35. 35. 8. Debe presentarle al usuario los resultados del juego antes de salir completamente del juego. Antes de salir completamente del juego al usuario se le presenta una ventana con las estadísticas del juego 9. Debe permitir al usuario jugar contra la computadora La aplicación también posee la opción de jugar contra la computadora ya sea un jugador contra la computadora o 2 jugadores contra la computadora4. Implementación Una vez que se han cumplido con todos los pasos anteriores de la metodología ICONIX, el último de los pasos que debemos completar es la implementación de nuestra aplicación. Para poder realizar una correcta implementación de nuestra aplicación deberemos cumplir con los siguientes procesos los cuales nos llevaran a una mejor implementación de nuestra aplicación. 4.1. Escribir/Generar Código En este apartado se encontrara una breve descripción del código que va a contener cada uno de los módulos de nuestra aplicación; un resumen del código se podrá encontrar en uno de los siguientes apartados. Para facilitar aun más la comprensión del código de la aplicación lo describiremos según las interfaces que la componen. Además tendremos que aclarar que se tomara en cuenta tanto en este apartado como en los demás en los que tengamos que referirnos al código de la aplicación, solo se tomara en cuenta las partes mas importantes del mismo descartando el código que el asistente de la herramienta genera automáticamente 26
  36. 36. 4.1.1. Interfaz de Bienvenida Esta es una de las más sencillas ya que solo contendrá el código del nombre de la ventana, el código necesario para que la ventana se muestre en el centro de la pantalla, además de un botón el cual contendrá el código necesario para redirigirnos a la ventana siguiente. Y contendrá el código de un botón que nos mostrara un mensaje para el caso de que el usuario necesite ayuda sobre el juego.4.1.2. Interfaz Jugadores En esta interfaz al igual que en la anterior tendremos el código correspondiente a las propiedades de la ventana que se mostraran al usuario. También contendrá el código de cada uno de las acciones de los menús los cuales permitirán mostrar los cuadros para el ingreso de los datos de los jugadores según sea el caso.4.1.3. Interfaz Trivia Esta interfaz es aquella que contendrá mas código debido a que todos los procesos referentes a la administración de los ficheros que contienen las preguntas y las respuestas así como la verificación de las respuestas seleccionadas por el usuario serán administrados por esta interfaz mediante el uso de diferentes elementos que contendrá la interfaz. A mas de ello para evitar cambios bruscos durante la ejecución de la aplicación se ha programado para la aplicación bloquee algunos de los elementos de forma temporal con los códigos correspondientes.4.1.4. Resultados En la clase resultados tendremos programada una interfaz de usuario la cual recuperara los datos de nombres de jugadores del 27
  37. 37. fichero correspondiente así como los datos del juego de la interfazanterior.A mas de ello tendremos el código que nos mostrara cual fue elusuario que gana al finalizar el juego 28
  38. 38. ARQUITECURA DE LA APLICACIÓN GRAFICA Y DESCRIPCION DE LOSCOMPONENTESEn este apartado veremos lo referente a la arquitectura de la aplicación y unabreve descripción de los componentes que la constituyen.La arquitectura que se usara para la represente aplicación será la de 3 capasque comprende el dominio, la lógica y la interfaz grafica.Las capas de esta comprenden las siguientes capas:  Cliente de la aplicación  Servidor de aplicaciones  Servidor de datos.Una vez que hemos enumeramos cuales son las capas que comprenden laarquitectura de 3 capas entonces ahora procederemos a describirlas una a unadependiendo de los componentes de nuestra aplicación.Para empezar a analizar la arquitectura de nuestra aplicación comenzaremoscon el analizar de lo que será el servidor de datos. En nuestro caso el servidorde datos serán los ficheros que contiene la información acerca de las preguntasy respuestas que se usaran en nuestra aplicación, es decir que el servidor debase de datos lo compondrán los siguientes archivos:  OpcionesPreguntasC1  OpcionesPreguntasC2  OpcionesPreguntasC3  OpcionesPreguntasC4  OpcionesPreguntasC5  preguntascategoria1  preguntascategoria2  preguntascategoria3  preguntascategoria4  preguntascategoria5  jugadores 29
  39. 39. Estos son los 10 archivos que conformaran nuestro servidor de datos estos asu vez se conectaran con la siguiente capa que será la de servidor deaplicaciones en el que tendremos la lógica de nuestra aplicación la cual serviráa manera de un puente entre el servidor de base de datos y la interfaz deusuario.Es decir en esta parte se encontrara toda la codificación que contendrá laaplicación que lograra que nuestra aplicación se conecte de forma correctaentre el servidor de datos y la interfaz.A continuación se mostrara un diagrama de lo que será la comunicación de losmódulos de nuestra aplicación: Fig. 1En la Fig. 1 se muestra como interactuaran tanto la base de datos que ennuestro caso serán ficheros, el servidor de datos que en nuestro caso será elcódigo los diferentes módulos que componen nuestra aplicación como son: elmodulo de bienvenida, el modulo de opciones de usuario, el trivia y el modulode presentación de resultados.En primer lugar los módulos que componen el servidor de aplicaciones segúnsea el caso se conectaran con el servidor de datos para la entrada o salida dedatos según sea el caso. 30
  40. 40. En el caso del primer modulo que corresponde a la bienvenida este nocontendrá ninguna interacción con la base de datos de nuestra aplicación; ensegundo modulo de nuestra aplicación que se encargar del manejo de lainformación de los jugadores antes del juego será uno de los primeros encomunicarse con el servidor de datos debido a que una vez que este modulorecibe la información va al fichero correspondiente donde posteriormente sealmacenara. Esta operación se ilustra en la Fig. 2. Fig. 2Otra de las comunicaciones que se hacen con el servidor de datos es la quehace el modulo principal que comprende todo el código que maneja laaplicación en donde se conecta no solo al servidor de datos para larecuperación de los datos de los jugadores sino también los datos de laspreguntas y opciones de respuestas que tiene nuestra aplicación. Esto seilustra en forma grafica en la Fig. 3. 31
  41. 41. Fig. 3Y la ultima interacción que tiene el servidor de datos con el servidor deaplicación será la que hace cuando el modulo para la presentación deresultados inicia sus operaciones. Este modulo no solo interactúa con elservidor de datos sino también con su modulo predecesor de manera que sepuedan presentar los datos del jugador que no están en el servidor de datosesta ultima interacción se ilustrara en el Fig. 4. Fig. 4Esta es principalmente la manera como se comunican cada uno de loscomponentes de nuestra aplicación. Una vez que se ha visto la manera comose comunican cada uno de los modulos de la aplicación ahora ilustraremos enla Fig. 5 como quedaría todo el diagrama de la arquitectura de nuestraaplicación desde el servidor de datos hasta lo que será la interfaz de usuario. 32
  42. 42. Fig.5 33
  43. 43. PROTOTIPOSEn este apartado podrán encontrar capturas de todos los módulos queconforman la aplicación. Una vez que ya se han pulido dentro de las fases de lametodología escogida. Fig. 1. Interfaz Bienvenida Fig. 2. Interfaz Jugadores Fig 3. Interfaz Trivia. Dos Jugadores antes del juego 34
  44. 44. Fig. 4 Interfaz Trivia. Dos jugadores durante el juego Fig. 5. Interfaz de Resultados 35
  45. 45. DESCRIPCION DE LA APLICACIÓNEn este apartado trataremos de dar una breve descripción de la aplicación unavez que ha pasado por todo el proceso que se requiere antes de serimplementada.La presente aplicación fue desarrollada tomando como base el código de laaplicación trivia que se puede encontrar en la pagina mygnet.net; la aplicaciónque se tomo como base poseía algunas restricciones a mas de las yaespecificadas para el presente proyecto además la aplicación manejaba laspreguntas directamente en el código haciendo difícil para un usuario comúnpoderlas modificar; por el contrario trivia de programación Java no maneja estainformación en el código sino que lo hace a través de ficheros.La Trivia de Programación Java como se la ha llamado a la aplicación constade 4 ventanas las cuales se presentan al usuario en el orden en el cual fueronprogramadas.La primera ventana tendrá una imagen de entrada, un botón para podercontinuar navegando en la aplicación; además de un botón que mostrara dondeencontrar ayuda para la aplicación, en la siguiente ventana se encontrara unbarra de menú donde se podrá escoger dentro de el las opciones de jugadorespara esta aplicaciónLa siguiente ventana de la aplicación contendrá el juego en si, esta ventana seencuentra divida en varias secciones entre las que se encuentra las seccionessiguientes: Datos del jugador, Categorías, Apuesta, opciones de respuesta,pregunta, la de verificación de respuesta y además de ello algunos botones quepermitirán verificar la respuesta, avanzar al siguiente jugador y salir de estaventana.La ultima ventana que se presentara al usuario será la ventana en dondetendrá las estadísticas del juego o como mejor se le conocen los resultados deljuego. 36
  46. 46. CODIFICACIONEn esta sección se encontrara el código de cada uno de los módulos denuestra aplicación, debido a que para el desarrollo de la aplicación se uso elasistente de Netbeans para la implementación de las interfaces de usuario, setomara en cuenta solo el código principal de cada uno de los módulos para queel código no se haga muy extenso; ya que el asistente genera códigoautomáticamente según se le vayan agregando elementos a la ventana.Dentro de la codificación también encontraremos algunas partes de código quese repiten, en este caso solo se tomara una copia y se indicara en que partesse encontrara ese código.Una vez indicado el código que contendrá este apartado entoncesprocederemos a detallar el código según las interfaces empleadas paradesarrollar esta aplicación. 1. Interfaz de Bienvenida a. Primer Método de la interfaz Dentro de esta primera interfaz tendremos las 2 siguientes sentencias: this.setTitle("Bienvenida"); this.setLocationRelativeTo(null); Con la primera le podremos colocar un nombre a la ventana, con la segunda en cambio colocaremos la ventana al centro de la pantalla pasándole null como parámetro. b. Método de la acción del botón Siguiente Dentro de la acción del botón siguiente tendremos las sentencias siguientes: Con la primera sentencia creamos un objeto OpcionesJugadores, en la segunda sentencia hacemos visible el objeto que declaramos 37
  47. 47. anteriormente y con la última hacemos invisible la ventana de Bienvenida. c. Método de la acción del botón Ayuda. Dentro de la acción de este botón tenemos programado un JOptionPane que nos mostrara un aviso de donde podemos obtener ayuda sobre el juego.2. Interfaz Jugadores a. Primer método de la Interfaz Dentro de este método también se tendrá las sentencias para colocar el titulo y la localización de la ventana. También se encontrara en este método la inicialización de las cajas de texto para el ingreso de información; por el momento a estas se las inicializara con la sentencia de setVisible dándole como parámetro false. Una vez inicializado las cajas de texto; se podrá programar las acciones de cada uno de los menús para que según la opción de menú que se escoja se muestren las cajas de texto para el ingreso de la información de los jugadores. b. Método que controla la acción del botón Jugar En este método es en donde se creara el fichero de jugadores que contendrá por el momento los nombres de los jugadores. Y después de ellos nos llevara a la siguiente ventana que es la ventana principal de la aplicación. c. Método que controla la acción del botón salir En este método tendremos solo la sentencia que nos permitirá salir de la aplicación cuando el usuario pulse el botón salir. 38
  48. 48. 3. Interfaz trivia a. Importamos las clases necesarias para la interfaz Para el correcto funcionamiento de esta interfaz tendremos que importar algunas clases de los paquetes que posee java entre ellas estarán las siguientes: Del paquete java.io  BufferedReader Esta clase lee el texto de un flujo de entrada de caracteres  FileNotFoundException Esta clase es de un error muy común que sucede cuando se trabaja con ficheros y sucede cuando se ha fallado en un intento de abrir un archivo.  FileReader Esta clase nos ayuda a leer un archivo de caracteres  IOException Esta clase también es parte de las excepciones que pueden ocurrir al trabajar con ficheros y ocurre cuando ha ocurrido alguna excepción de entrada o salida. Del paquete javax.swing  JOptionPane La clase JOptionPane hace mas fácil el que aparezcan cuadros de dialogo estándar que pueden ser usados para el ingreso de datos o para la salida de mensajes de alerta. b. Declaración de variables globales Declaramos las variables globales que vamos a usar es decir aquellas que se usaran en cualquiera de los métodos de la clase según sea necesario. 39
  49. 49. Entre las variables globales que se usaran se tendrá que tenervariables tipo String para categoría, respuestas, preguntas,puntajes; entre otras se tendrá que declarar el suficiente número devariables globales para el correcto funcionamiento de estaaplicación.c. Método TriviaEste es el primer método que nos aparece después de importar lasclases necesarias y declarar las variables globales que se han denecesitar.En este método primeramente se encontrara una llamada al métodoinitComponents() después del cual se encontraran las sentenciaspara colocar un titulo en la ventana, mostrar la ventana en el centrode la pantalla y la que permite deshabilitar el botón de maximizar dela ventana.También se tendrá la llamada a los métodos siguientes:valoresIniciales, mostrarDatosJugadores, controlJugadores,después de lo cual se podrá inicializar el valor del limite depreguntas y los valores de los componentes del panel deverificación. También se encontrara la sentencia correspondiente altamaño de la ventana, el limite de preguntas del juego y lainicialización de otros elementos que no se da en el métodovaloresIniciales.d. Método btnSeleccionarMouseClickedEn este método en primer lugar se controlara la selección de lascategorías y las apuestas, para luego de ello según las opcionesseleccionadas inicializar el valor de categoría y resp con los valorescorrespondientes al nombre y extensión de los ficheros quecontienen la información de las preguntas de la trivia al igual que 40
  50. 50. incrementar el contador correspondiente al numero de preguntas dela categoría seleccionada.En este método también se deshabilitara el botón seleccionar y sehabilitara el botón de verificar; se hará también un llamado almétodo de preguntas trivia, pasando como parámetros los valoresde categoría y resp.e. Método btnVerificarMouseClicked En este método lo que se encontrara es un llamado al método verificar, además de la asignación de un nuevo valor al panel de respuesta.f. Método btnSiguienteMouseClickedEn este método en primer lugar tendremos una sentencia de controlque controlara si se selecciono previamente la opción de jugarcontra la computadora entonces si el jugador que esta activo es lacomputadora nos llevara al método controlJugadores; en casocontrario nos llevara al método valoresIniciales.Luego de lo cual se tendrá otra sentencia que permitirá controlar elnumero de preguntas que se han jugador en el caso que se hayaalcanzado el limite mostrara un mensaje de alerta y cerrara laventana principal de la trivia y mostrara la ventana de resultados;en caso que no se haya alcanzado el numero de preguntas limiteentonces habilitara las opciones de botón para el siguiente jugador.Además de lo antes indicado este método también contiene unllamado a un método con el nombre de PintarJugadorActual; quecoloca en negrita el jugador actual, los valores tanto de la etiquetacomo del panel de verificación. Y inicializara en vacio la etiqueta depregunta y las etiquetas de cada uno de los botones de opción delas preguntas. 41
  51. 51. g. Método btnSalirMouseClickedEn este método se encontrara una llamada al método deguardarDatos para que se realice los procesos allí del guardado dela información del juego.h. Método valoresInicialesEn este método se encontraran las sentencias en donde se agreganlos botones de opciones al grupo de botones correspondientes.Se inicializa el estado de los botones de opcion en falso, sedeshabilita los botones de verificar y siguiente; los valores de textode las etiquetas de jugador se las inicia como texto sin negrita, seinicializa en vacío la etiqueta de preguntas y las etiquetas de losbotones de opciónTambién se inicializan los valores de los componentes del panel deverificación.i. Método mostrarDatosJugadoresEn este método se tendrán las sentencias para la lectura del ficheroen donde se encuentran los nombres de los jugadores. Al igual queuna sentencia de control que servirá para el control de los mismosya que si son 2 jugadores en la ventana solo mostrara las etiquetassegún el numero de jugadores que sean.Inicializaremos el valor de numJug; que es el número de jugadoressegún el número de datos recuperados y se hará un llamado almétodo PintarJugadorActual.j. Método controlJugadoresEn este método se tendrá un llamado al método jugar. 42
  52. 52. k. Método SeleccionarCategoriaComputadorEn este método se inicializara la variable numCat usando unnumero aleatoria que vaya desde el 1 al 5, a continuación de ellotendremos los mismo controles como en el botón seleccionar, loscuales según el valor del numCat asignara una categoría alordenador.l. Método SeleccionarApuestaComputadorEn este método al igual que en el anterior se inicializara la variablenumApu con un valor aleatorio entre 1 y 5, según la opción que seseleccione se deshabilitaran los demás botones siguiendo el mismoproceso que si fuera un jugador mas.m. Método preguntasTriviaComo ya se dijo en un método pasado este método recibe 2parámetros el uno categorias y el otro resp, estos parámetroscontienen el nombre del fichero de preguntas y respuestasrespectivamente con sus extensiones los cuales se usaran en loposterior.Se declararan variables locales para el almacenamiento de algunosdatos importantes como son el número de líneas del fichero de laspreguntas, el número de líneas del fichero de opciones derespuesta, un contador para las preguntas, un contador para lasrespuestas, un arreglo en donde se almacenaran las preguntas, unarreglo en donde se almacenaran las respuestas.Se tendrá las sentencias para la lectura de un fichero en donde secoloca el nombre del fichero que se va a abrir se colocara el valorde la variable categoría. Seguidamente con la ayuda de un ciclorepetitivo almacenaremos los datos recuperados del fichero en unarreglo. Se sigue el mismo procedimiento para la recuperación delas opciones de pregunta del fichero los únicos cambios que hay 43
  53. 53. que hacer son el nombre de la variable que se colocara en dondeva el nombre del fichero que se desea abrir y el arreglo donde sealmacenaran los datos.Se inicializara la variable pregunta con un valor aleatorio que vayadesde el 1 hasta el 10 con usando Math.random.Seguidamente inicializara la variable cat con las preguntasrecuperadas según las posiciones del arreglo de preguntas.Seguidamente se encontrara un switch que tendrá la variablepregunta con la cual se controlara la visualización de las preguntassegún su número, como se tiene 10 preguntas por categoríaentonces el numero de case del switch será 10, entoncesdependiendo del numero de case se recuperara la pregunta y lasopciones de respuesta según las posiciones del arreglo tanto depreguntas como de respuestas y se los mostrara en las etiquetascorrespondientes en la interfaz grafica.Como las sentencias anteriores van a provocar algunasexcepciones propias del manejo de ficheros entonces el códigoanterior se tendrá que encapsular en sentencias try catch o en sudefecto controlar con algún otro método las excepcionesprovocadas.n. Método verificarEn este método se encontrara la habilitación de botón siguiente y ladeshabilitación del botón verificar, también se creara una variablebooleana llamada esCorrecto.Luego de lo cual se tendrá una serie de if’s anidados los cualesrealizaran el control de la respuesta seleccionada por el usuariosegún la categoría y la opción de respuesta que este hayaseleccionado, también se tendrá las sentencias para el cambio de 44
  54. 54. color del panel de verificación, y la asignación de un valor a lavariable esCorrecto según sea el caso; además de un llamado almétodo Puntuacion con el valor de la variable esCorrecto.o. Método PuntuacionEn este método en primer lugar recibirá una variable booleanallamada opción la cual necesitaremos en las sentencias posteriores.En primer lugar se tendra el control sobre los botones de apuestasegún cual sea la opuesta del jugador entonces se pasara a lasiguiente sentencia la cual controla el numero de jugadores y através de un switch usando la variable jugadorActual según elnumero de opcion dentro del switch entonces se tendra otro controlpero esta vez sobre la variable esCorrecto en la cual si esta esverdadera se sumara al jugador correspondiente la puntuaciónsegún la opcion seleccionada.p. Método SeleccionarRespuestaComputadorEn este método se asigna un numero aleatorio entre el 1 y 3 a lavariable numOpc, luego de lo cual según este numero seseleccionara el botón de opción correspondiente mediantesentencias if’s.q. Método guardarDatosEn el método guardar datos una vez que se haya realizado lasacciones del botón salir entonces tendremos las sentenciasnecesaria para guardar los datos del juego en el fichero deresultados de manera que puedan ser recuperados del fichero haciala ventana siguiente. Una vez que se complete la grabación de losdatos en el fichero entonces se colocaran las sentencias paradirigirnos a la siguiente ventana, y cerrar la ventana actual. 45
  55. 55. r. Método Jugar En este método comprobaremos si el jugador actual es la computadora entonces nos dirigiremos a los métodos que se encargan de realizar la jugada de la computadora, dentro del if que comprueba si el jugador actual es la computadora tendremos otro que en cambio maneje los métodos necesarios cuando los jugadores no son la computadora. s. Método PintarJugadorActual En este método se tendrá las sentencias necesarias con las cuales dependiendo del jugador que este actualmente activo se dará formato a las etiquetas correspondiente para que se puede distinguir al jugador activo de los demás jugadores.4. Interfaz Resultados a. Importamos las clases necesarias para la interfaz i. BufferedReader Esta clase lee el texto de un flujo de entrada de caracteres  FileReader Esta clase nos ayuda a leer un archivo de caracteres. b. Declaración de variables globales. Después de la clase se declararan las variables globales que se usaran que en este caso serán las siguientes: numLineas de tipo entero y la inicializaremos con el numero de líneas que tiene el fichero de jugadores posteriormente al guardar los datos del juego en este caso será 11; un contador para el control del numero de líneas esto de tipo entero, un arreglo para poder almacenar los datos recuperados del fichero, un objeto de tipo TriviaComputador y numJug de tipo entero. 46
  56. 56. c. Método ResultadosDebido a que este es el primer método de la interfaz entonces aquíencontraremos la llamada al método initComponents que es uno delos métodos que el asistente de interfaz grafica de Netbeansimplementa automáticamente después de ello tendremos lassentencias para colocar el nombre a la ventana y centrar la ventanaen el centro de la pantalla, al igual que 3 etiquetas que no tendránningún valor por el momento.Una vez que se haya hecho lo anteriormente explicado entonces setendrá que escribir posteriormente las sentencias para la lectura delfichero de jugadores que es en donde se encontraran los datos delos jugadores.Luego de ellos con la ayuda de un ciclo repetitivo se llenaran elarreglo que declaramos anteriormente con los datos que serecuperan del fichero.Una vez que el arreglo tenga los datos del fichero se hará unacomparación para comprobar cuantos jugadores existen y poder asímostrar los datos en las respectivas etiquetas; sea el caso que siexiste solo 2 jugadores es decir la posición 2 del arreglo seencuentra vacía entonces no se mostraran las etiquetascorrespondientes al jugador 3; caso contrario se las mostrara. Algoque se debe tomar en cuenta que siempre en un arreglo se empiezacontando desde la posición 0 hasta el final del mismo.Por ultimo se tendrá un llamado al método mostrarGanador.d. Método btnSalirMouseClickedAquí se encontrara la sentencia System.exit(0) que nos permitirásalir de la aplicación. 47
  57. 57. e. Método mostrarGanadorEn este método se hará una comparación con los valores de laspuntuaciones de los jugadores y se mostrara la etiqueta al frente deljugador con el mayor puntaje señalándolo como ganador. 48
  58. 58. CONCLUSIONESComo conclusiones una vez terminado este proyecto tenemos las siguientes:  La utilización de ficheros para administrar información es muy práctica cuando no se va a manejar grandes cantidades de información que requiere ser actualizada sin hacer cambios en la aplicación sobre la cual se usa.  La implementación de ficheros dentro de una aplicación puede ser tediosa en el caso de necesitar correr la aplicación en varios Sistemas Operativos.  El uso de arreglos para la recuperación de datos de un fichero es muy útil ya que permite administrar la información que se recupera de la manera más fácil posible sin incluir otras sentencias que complicarían más la aplicación y no se obtendría los resultados esperados.  Uso del asistente que posea la herramienta con la que se vaya a programas en determinado lenguaje es muy útil a la hora de la creación de interfaces graficas.  El uso de juegos para el reforzamiento de los conocimientos de los estudiantes es muy útil ya que permite al estudiante evaluar sus conocimientos personalmente en un ambiente de competencia sana.  No es posible implementar aplicaciones desarrolladas en java en ordenadores que tengan diferentes versiones de la JVM (Maquina Virtual de Java). 49
  59. 59. RECOMENDACIONESEntre las recomendaciones que se pueden dar acerca de este proyecto setienen las siguientes:  Se debe tener mucho cuidado con los errores que se puedan dar en la aplicación durante el periodo de prueba de la aplicación  Se debe tener nociones básicas del manejo de excepciones y manejos de las misma para realizar de la manera mas correcta la codificación de esta aplicación  Se debe seguir en forma secuencial cada uno de las fases de la metodología que se elija para la realización de un proyecto.  Se debe tener una constante interacción con el usuario final de la aplicación ya que este será el que juzgue si la aplicación que se ha desarrollado esta acorde con los requerimientos que este solicito.  Se debe tener en cuenta la versión de la maquina virtual de java del ordenador donde se realizada la aplicación y la versión de la misma del ordenador donde se la implementara. 50
  60. 60. BIBLIOGRAFIARB1: Yahoo Respuestas en español (s.f). Recuperado el 11 de abril del 2012dehttp://espanol.answers.yahoo.com/question/index?qid=20060829071835AAHkdXIRB2: Pereira González M (s.f). Excepciones. Recuperado el 11 de abril del2012 de http://ocw.uc3m.es/ingenieria-informatica/programacion/transparencias/tema8.pdfRB3: García Beltrán A, Arranz J. M (s.f). Otras Sentencias. Recuperado el 11de abril del 2012 de http://ocw.upm.es/lenguajes-y-sistemas-informaticos/programacion-en-java-i/Contenidos/LecturaObligatoria/7-otrassentencias.pdfRB4: López P, Ruiz F (s.f).Ingenieria de Software I Tema 2: Lenguaje unificadode modelado UML. Recuperado el 11 de abril del 2012 dehttp://ocw.unican.es/ensenanzas-tecnicas/ingenieria-del-software-i/materiales-de-clase-1/is1-t02-trans.pdfRB5: Garcia Peñalvo F, Conde Gonzalez M, Bravo Martin S (2008). Ingenieriadel Software Tema 2: Modelo objeto Una descripción de UML. Recuperado el11 de abril del 2012 de http://ocw.usal.es/ensenanzas-tecnicas/ingenieria-del-software/contenidos/Tema2-Modeloobjeto-1pp.pdfRB6: Lopez P, Ruiz F (s.f). Ingenieria del Software I Tema 7: Iteraciones delSistema (en el desarrollo de OO). Recuperado el 11 de abril del 2012 dehttp://ocw.unican.es/ensenanzas-tecnicas/ingenieria-del-software-i/materiales-de-clase-1/is1-t07-trans.pdfRB7: Aycart Perez D, Gibert Ginesta M, Hernandez Matias M, Mas HernandezJordi (s.f). Ingeniería del software en entornos de SL. Recuperado el 11 de abrildel 2012 de http://ocw.uoc.edu/computer-science-technology-and-multimedia/software-engineering-in-free-software-environments/software-engineering-in-free-software-environments/XP06_M2112_01486.pdfRB8: Package java.io. Recuperado el 11 de abril del 2012 dehttp://docs.oracle.com/javase/1.4.2/docs/api/java/io/package-summary.htmlRB17: Deitel P, Deitel H (2008). Java como programar. México: PearsonPrentice Hall. 51
  61. 61. RB18: Camacho Fernández, D. (Coordinador); Valls Ferrán, J. M.; GarcíaHerrero J.; Molina López, J.; Bueno Rodríguez, E (2003). Programación,Algoritmos y Ejercicios Resueltos en Java. Madrid: Pearson Educación S.A.RB19: Stevens P.; Polley R (2002). Utilización de UML en ingeniería deSoftware con objetos y componentes. Madrid: Pearson Educación S.A.RB9: ¿Qué es la tecnología Java y por qué lo necesito?. Recuperado el 22 deabril del 2012 de http://www.java.com/es/download/faq/whatis_java.xmlRB10: Salvador Vargas A. Arreglos en Java. Recuperado el 22 de abril del2012 de http://www.utim.edu.mx/~salvar73/material/java/Arreglos.pdfRB11: Jenkov J. Java IO: FileWriter. Recuperado el 22 de abril del 2012 dehttp://tutorials.jenkov.com/java-io/filewriter.htmlRB12: Clase BufferedReader. Recuperado el 22 de abril del 2012 dehttp://docs.oracle.com/javase/1.4.2/docs/api/java/io/BufferedReader.htmlRB13: Métodos en Java. Recuperado el 22 de abril del 2012 dehttp://www.slideshare.net/mtemarialuisa/mtodos-javaRB14: Variables Java. Recuperado el 22 de abril del 2012 dehttp://www.webtaller.com/construccion/lenguajes/java/lecciones/variables-java.phpRB15: Unidad 6: OPP Java Tema 2: Parámetros. Recuperado el 22 de abril del2012 de http://www.programacionfacil.com/java:parametrosRB16: Clase y objetos en Java Lógica de la Programación. Recuperado el 22de abril del 2012 de http://www.scribd.com/leonardo_cristancho/d/48801584-Clases-y-Objetos-en-Java 52

×