Você está na página 1de 61

UNIVERSIDAD TECNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja


Escuela de Ciencias de la Computacin Carrera de Sistemas Informticos y Computacin

Programacin de Algoritmos

Profesional en Formacin:

Castillo Cevallos Miguel Eduardo

Docente:

Ing. Quezada Sarmiento Pablo Alejandro

Loja Ecuador

2012

CONTENIDOS Tabla de contenidos.... Tema... Objetivos Justificacin... Alcance...... I Ii Iii Iv Vi

Limitaciones.......... Vii Marco Terico... Anlisis y diseo de la aplicacin.. Anlisis de Requisitos.. Anlisis y Diseo preliminar 1 13 13 16

Diseo. 22 Implementacin Arquitectura de la aplicacin grafica y descripcin de componentes.. 26 29

Prototipos... 34 Descripcin de la aplicacin... Codificacin... Conclusiones. Recomendaciones Bibliografa. 36 37 47 50 51

Trivia de Programacin de Algoritmos en Java

ii

OBJETIVOS: General: Hacer uso de un juego de trivia para ayudar en la formacin de los estudiantes de la Escuela de Sistemas Informticos y Computacin de la Universidad Tcnica Particular de Loja. Especficos: Fortalecer los conocimientos en el uso de ficheros en java Ayudar a fortalecer los conocimientos en computacin de los estudiantes con el uso de un juego de trivia. Fortalecer los conocimientos del uso de interfaces graficas en Java.

iii

JUSTIFICACION Los juegos en donde se pone a prueba la capacidad de razonamiento y memoria de los estudiantes son muy utilizados en la actualidad como y una herramienta en el aprendizaje. Anteriormente se crea que el tiempo que las personas utilizaban para jugar era una perdida de tiempo y no se adquiran conocimientos durante este tiempo; es decir era tiempo que el estudiante perda. Esta afirmacin depende del tipo de juegos que se le presente al estudiante sea este del nivel que sea; ya que el juego logra estimular los sentidos de los estudiantes para poder lograr superarse en el mismo, de manera que puedan subir en los niveles en el juego y as poder organizar competencia en donde se comparara los puntajes obtenidos o niveles alcanzados por cada uno de los estudiantes. En la actualidad en algunas instituciones educativas se usa el juego como un mtodo para el reforzamiento en el proceso de la educacin de nios y

jvenes; entonces contrario a lo que se pensaba anteriormente sobre el juego quedaron desechadas ya se con la ayuda de este se pudo reforzar En base a estos antecedentes se pens en el desarrollo de este proyecto para que sea usado a manera de herramienta de reforzamiento de los conocimientos en la materia de Programacin de Algoritmos. El presente proyecto constara de diferentes categoras en las cuales se encontrara una serie de preguntas que podrn ser cambiadas de manera muy sencilla debido a la utilizacin de ficheros que permitan un mejor manejo de las mismas. El uso de ficheros para la realizacin de este proyecto fue para poder tener un mejor manejo del espacio durante la ejecucin de la aplicacin, debido a que si cargamos toda la informacin que contiene los ficheros en la memoria de la computadora podemos hacer que esta sea mas lenta al momento de la realizacin de los procesos de la aplicacin o podemos con ello provocar que el computador se cuelgue y se daen todas las actividades que se encuentre realizando el usuario al momento de la ejecucin del mismo.

iv

Se pens hacerlo utilizando ficheros de manera que el profesor, tutor o cualquier usuario pueda realizar cambios en las preguntas sin la necesidad que al momento de hacer los cambios este presente un programador. Esto ayudara 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 al usar ficheros es que para la correccin de errores en las preguntas u opciones no se tiene que revisar todo el cdigo para encontrar las lneas de cdigo a modificar si no que se realizaran en el fichero, en el cual podemos utilizar las opciones de bsqueda que tienen cada uno de los programas que se usan para la administracin de los mismos

ALCANCE El alcance del presente proyecto se definir de la siguiente manera: La aplicacin que se desarrollara en el lenguaje de programacin java con el uso de Netbeans es un juego de trivia en java en cual tendr algunas caractersticas que se irn detallando durante el desarrollo del presente alcance. La aplicacin constara de una primera ventana en donde se dar la bienvenida al usuario con un botn para poder ingresar al juego, luego de ello se le

presentara al usuario una ventana en donde deber poner el nombre que lo identificara durante el juego, una vez que se haya seleccionado el nombre, y pulsado el botn de JUGAR al usuario se le presentara la ventana del juego propiamente dicha en donde tendremos los siguientes elementos grficos: Un panel con los nombres y puntuacin 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 categoras con las que cuenta el juego. En la parte inferior al panel de Datos de Jugadores se encontraran los botones de opcin correspondientes a las apuestas que se puede realizar. En la parte baja de la aplicacin tendremos 2 partes; en la parte izquierda tendremos las preguntas que sern seleccionadas de forma aleatoria con sus respectivas opciones. La pregunta se presentara en un etiquetas y las opciones sern presentadas en botones de opcin en donde el usuario podr seleccionar la respuesta que considere correcta, tambin se tendr un botn 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 tambin de color sea su respuesta. Como ya se indico anteriormente para el manejo de las preguntas se usaran ficheros por su facilidad de realizar cambios sin la necesidad de modificar el cdigo fuente de la aplicacin. Es decir el juego se convertira en un juego
vi

netamente dinmico ya que si el usuario considere que las preguntas que tiene la aplicacin no estn acordes con sus necesidades, se podr hacer los cambios respectivos sin la necesidad de que este recurra a un gasto econmico para que un programador realice los cambios en el cdigo fuente de la aplicacin debido a que esto representara un uso de recursos tanto en tiempo como en dinero para el usuario, debido a que no podra tener listo el material para su clase por la dificultad para realizar los cambios en la aplicacin.

vii

LIMITACIONES Dentro de las limitaciones que pueden darse durante el transcurso del desarrollo del presente proyecto estn 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 utilizacin de interfaces graficas. El programa solo podr ser usados en ordenadores con sistemas operativos Windows El nombre de las categoras debe ser cambiado desde el cdigo de la aplicacin. La versin de la maquina virtual de java (JVM), debe ser la misma con la que se desarrollo la aplicacin.

viii

MARCO TEORICO Entre los conceptos que se usaran para el desarrollo del siguiente proyecto estn los siguientes:

TRIVIA Se denomina trivia a una pregunta o serie de preguntas con tres opciones de respuesta que normalmente van enfocadas a un concurso

EXCEPCIONES EN JAVA Se conoce con el nombre de excepcin a una condicin anormal que surge en una secuencia de cdigo durante la ejecucin de un programa Para la gestin de errores java cuenta con palabras reservados como son: try/catch/finally/throw/throws; estn se analizaran mas adelante. Cuando un mtodo provoca una excepcin, tiene una de las 2 siguientes posibilidades:

Gestionarla el mismo.- Es decir, el mtodo en donde ocurri la excepcin deber capturarlo o detectarlo al error producido y tratar de darle una solucin. Pasarla a otro mtodo.- El mtodo que ha producido un error tiene la posibilidad de pasar el objeto tipo excepcin al mtodo que lo invocase. Una excepcin puede ser producida por el intrprete de Java o por el cdigo. La gestin de las excepciones en Java se realiza mediante un conjunto de palabras reservadas propias de los lenguajes de programacin. Todas las excepciones en Java son subclases de la clase Throwable que se divide en 2 partes que son:

Exception Esta es aquella que representa excepciones que deben capturarse y tratarse. Una de las subclases de Exception es RuntimeException de la cual heredan otras excepciones.

Error Esta en cambio representa errores graves que generalmente no estn controlados y por consiguiente provocan que la aplicacin se detenga.
1

Entre las excepciones ms comunes se pueden encontrar las siguientes:

IOException.- Problema de entrada o salida de datos ArithmeticException.- Desbordamiento o divisin para cero NumberFormatException.- Conversin ilegal de un String a un entero. IndexOutOfBoundsException.- Acceso a un elemento inexistente de un vector o de un String NegativeArraySizeException.- Intento de creacin de un vector con longitud negativa. NullPointerException.- Intento de uso de una referencia nula SecurityException.- Violacin de la seguridad en tiempo de ejecucin.

UML Analizaremos gran parte de lo que es UML debido a que se usara mas adelante como una herramienta para el desarrollo del presente proyecto. Se conoce como UML a un lenguaje de modelo visual de propsito general orientado a objetos; el cual agrupa notaciones y conceptos provenientes de distintos tipos de mtodos orientados a objetos Podemos citar 2 caractersticas 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 UML o Es estndar o Se basa en el metamodelo con una semntica bien definida o Basado en una notacin grafica que es concisa, de fcil aprendizaje y uso. o Se puede usar para el modelado de sistemas de software en distintos dominios. o Es fcil extenderlo Las anteriormente descritas son algunas de las ventajas que ofrece UML, ahora veremos algunas de las desventajas del mismo. o o o No es una metodologa No cubre todas las necesidades de especificacin de un software Puede resultar complejo alcanzar un conocimiento completo del lenguaje.
2

Entre los tipos de diagramas UML que existen vamos a analizar aquellos que van a ser parte importante de la metodologa a utilizar (ICONIX). Entre ellos tenemos:

Diagrama de secuencia Los diagramas de secuencia son aquellos que modelan el flujo de la lgica dentro del sistema de forma visual, permitiendo al programador la documentacin y validacin. Pueden ser usados tanto en etapas de anlisis as como en las de diseo. La secuencia puede expresar un caso de uso en completo o quiz un caso de uso concreto del mismo, en el cual se pueden contemplar alternativas. Los diagramas de secuencia tambin nos ayudan a identificar cual de las clases de sistema van a ser las mas complejas de implementar. Los diagramas de secuencia poseen 2 caractersticas que los distinguen de los dems.

La lnea de vida.- Que es aquella que representa la existencia de un objeto a lo largo de un periodo del tiempo. Mediante el uso de la lnea de vida se puede indicar la creacin o destruccin de objetos o roles durante una iteracin.

Foco de control o barra de activacin.- Es aquella que representa el periodo de tiempo durante el cual un objeto realiza la ejecucin de una accin Su representacin en la lnea de tiempo es un rectngulo que tiene las

siguientes caractersticas: la parte superior se alinea con el principio de la accin, en cambio la parte inferior se alinea con la terminacin, la cual puede tener un mensaje de retorno Los focos de control no son necesarios colocarlos en el diagrama de secuencia, es decir son opcionales. Gracias al foco de control se puede observar el anidamiento de las llamadas Una vez que hemos analizado algunas de las caractersticas que tienen los diagramas ahora analizaremos los elementos que tienen los mismos, entre los que estn:

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 comunicacin con los objetos, por esta razn formaran parte de este diagrama.

Vida de objeto: Se indica la existencia de un objeto mediante el uso de una lnea discontinua, el fin del mismo se lo indica con un aspa. Activacin: Este elemento es aquel que nos indica cuando un objeto se encuentra realizando una accin en concreto. Mensaje: Al mensaje se lo pueden definir como la comunicacin entre los objetos y sus actividades.

Diagrama de clases El diagrama de clases es el mas conocido de todos los diagramas UML es aquel que nos permite la identificacin de la estructura de clases del sistema en donde se incluye las propiedades y mtodos de cada una de las clases Este tipo de diagrama tiene solo 2 elementos que son las clases y relaciones. Las clases en este diagrama se representan con un rectngulo divido en 3 parte en la parte superior va el nombre de la clase, en el rectngulo siguiente van los atributos y en el ultimo en cambio irn los mtodos de esta clase. Para el anlisis de las relaciones que pueden existir entre las clases se las dividir de la siguiente manera: Asociacin, Composicin, Dependencia, Generalizacin.

Asociacin.- Esta es aquella que representa la relacin genrica que existe entre 2 clases y la notacin es muy simple ya que es una lnea que las une en donde se puede indicar la multiplicidad que existe entre las 2 clases.

Composicin, agregacin.- Se habla de composicin cuando una clase esta compuesta de otras, donde las ultimas no pueden existir sin la primera. La agregacin en cambio se da cuando una clase incluye a la otra, pero la clase incluida tiene entidad en si misma.

Dependencia.- Se habla de dependencia cuando una clase depende de la otra en el sentido que la una clase la usa a la otra como atributo o parmetro de algn mtodo.

Generalizacin.- Se habla de generalizacin cuando es equivalente a la herencia o extensin tal como se ve en otros diagramas.

Diagramas de casos de uso Los diagramas de casos de uso son aquellos que muestran no solo un caso de uso sino todos los casos de uso de un sistema dado. Un caso de uso individual que se representa con un ovalo con su nombre, representa a su vez un tipo de tarea que tiene que soportar el sistema en el desarrollo. El diagrama de casos de uso muestra solo una parte de la informacin que se necesita, los diagramas de casos de uso se pueden ver como un resumen conciso de la informacin que contiene en todas las descripciones de los casos de uso. A mas de la representacin del caso de uso mediante un ovalo tenemos la representacin de un actor que es otra de las piezas claves en este diagrama, este en cambio se representa como un mueco, en estos diagramas tambin podemos encontrar una lnea que es la conexin entre el actor y los casos de uso.

Fig. 1

En la figura anterior podemos observar un ejemplo de un diagrama de uso para una aplicacin.

FICHEROS EN JAVA Un archivo o fichero se puede definir como una coleccin de datos homogneos que se almacenan en un soporte fsico del computador que puede ser permanente o voltil.

Algunas caractersticas generales que se deben tener en cuenta por el programador antes de utilizar este tipo de estructuras, estas son las siguientes: Todos los elementos de un fichero poseen una determinada posicin dentro de la secuencia de datos.

El tamao de un fichero a diferencia de otro tipo de estructuras no es fijo, pudiendo cambiar de forma dinmica 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 lgica al fichero fsico, 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 operacin que se realicen para el acceso a la informacin de un fichero pueden realizarse de 2 formas diferentes: Acceso secuencial Acceso directo o aleatorio.

Como en todas las operaciones dentro un lenguaje de programacin tenemos algunas clases bsicas para la manipulacin de los ficheros las cuales se resumirn el siguiente cuadro.

En el cuadro anterior se pueden observar algunas de las clases de excepciones 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 el cual se asociara a un flujo de bytes o caracteres. El lenguaje de programacin java crea tres objetos flujo los cuales se asocian con dispositivos cuando un programa java empieza su ejecucin; 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 error en la pantalla.

Claro que no siempre se aplica las definiciones antes descritas ya que cada uno de estos flujos tiene la capacidad de redirigirse. Es as como System.in tiene la capacidad de leer bytes desde un origen distinto, los otros 2 en cambio pueden permitir que la salida se envi a una ubicacin distinta, como por ejemplo a un archivo en disco. La clase System proporciona algunos mtodos para la redireccin de flujos estndar 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.io el cual posee definiciones para las clases de flujos como las siguientes: FileOutputStream FileReader FileWriter
7

Todos los archivos se abren gracias a que se crean objetos de estas clases de flujos, que heredan de las siguientes clases: InputStream OutputStream Reader Writer

Para la realizacin de entrada y salida de datos pueden usarse objetos de las clases siguientes: ObjectInputStream ObjectOutputStream FileInputStream FileOutputStream

Para las operaciones de entrada y salida que se basan en caracteres se las puede llevar a cabo con las siguientes clases: Scanner Formatter

La primera se usa en forma extensa la cual recibe datos desde teclado, claro que tambin puede ser usada para leer datos desde archivos; la segunda en cambio permite la visualizacin de datos con formato por pantalla o enviarlos a un archivo.

JAVA Java es un lenguaje de programacin y la primera plataforma informtica que fue desarrollada por Sun Microsystem en 1995. Es la tecnologa que permite el uso de programas punteros como herramientas, juegos y aplicaciones. Java Virtual Machine es nicamente un aspecto del software de Java, que es utilizado especficamente para interaccin en la web.

ARREGLOS EN JAVA Se conoce como un arreglo a una coleccin de elementos que son del mismo tipo agrupados bajo un nombre de variable, a los cuales se los puede diferenciar entre si por el numero de ndice, cada celda de este tipo de variables es numerada del 0 hasta n-1; donde n es la longitud del arreglo. A los vectores que poseen una sola dimensin se les conoce como arreglos unidimensionales o vectores; en cambio a los arreglos que pueden tener 2 dimensiones se les conoce como arreglos bidimensionales o matrices. A un arreglo se lo puede declarar de varias maneras entre las que estn: Int calif [ ] = new int [50]; String diaSem [ ] = {lun,mar,mie,jue,vie,sab}; Los 2 ejemplos anteriores son formas correctas de declarar un arreglo. A continuacin se va a analizar como se puede obtener el tamao de un arreglo. La dimensin de un arreglo se lo puede obtener mediante la siguiente sentencia: Int longitud = arreglo.length; Lo que se ha hecho es declarar una variable longitud en donde se almacenara la longitud de dicho arreglo despus colocamos nombre del arreglo seguida de un punto y la palabra reservada length que nos retornara el tamao del arreglo. A un arreglo se lo puede recorrer mediante un ciclo repetitivo con el fin de tener acceso a cada una de las posiciones del mismo.

JAVA.IO Java.io es un paquete de clases el cual provee la entrada y salida del sistema a travs de flujos de datos Serializacin y sistemas de archivos. Entre las clases que posee este paquete para el manejo de informacin se analizaran las que van a ser usadas en el presente proyecto.

FileWriter. La clase FileWriter ayuda a que sea posible escribir un archivo como una secuencia de caracteres. La clase FileWriter se basa en caracteres, la clase FileWriter posee constructores que permiten especificar el archivo para la escritura de diversas formas.

Si en el supuesto caso de que el archivo que se especifica ya existe entonces este se sobrescribe.

IOException. La clase IOException del paquete java.io se nuestra cuando un error de entrada o salida de datos a ocurrido. La clase IOException es una clase general para las excepciones de entrada o salida de datos

BufferedReader. La clase BufferedReader es la encargada de leer el texto de un flujo de caracteres de entrada, el tamao del buffer puede ser especificado o puede usarse el tamao por defecto el cual es lo suficientemente grande como para la mayor parte de los propsitos.

MTODOS EN JAVA En java un mtodo es un bloque de cdigo que se define dentro de una clase que proporciona un mecanismo para la realizacin de una accin. Un mtodo tiene acceso a todos los atributos de su clase. En java un mtodo puede llamar a otro mtodo; pero no se puede definir un mtodo dentro de otro; un programa realizado en java se ejecuta partiendo de su mtodo main.

Definicin de mtodos Un mtodo se lo puede definir de la siguiente manera: <tipo de retorno> <nombre mtodo> (<parmetros>) { Instrucciones } En donde <tipo de retorno> es en donde se encontrara el tipo de valor que devolver el mtodo, en <nombre mtodo> se escribe el nombre del mtodo; <parmetros> esta parte de la declaracin de los mtodo encontraremos todos los parmetros que usara el mtodo los cuales se componen de un tipo y un argumento y que son separados por comas.

10

El ultimo de los componentes de un mtodo son las <instrucciones> las instrucciones son aquellas que implementan la tarea que debe realizar el mtodo. Si el mtodo usado va a devolver un valor debe finalizar con la palabra reservada return. El valor que vaya seguido de la palabra return debe ser el mismo del tipo de retorno que se puso al momento de crear el mtodo. Dentro de cada uno del mtodo se pueden declarar variables locales segn sea el caso. La finalizacin de la ejecucin de un mtodo es hasta llegar a la palabra reservada return o hasta llegar al final del mtodo.

Mtodos que no retornan valor Aquellos mtodos que no regresan valor son aquellos que ejecutan operaciones especificas y no poseen la palabra reservada return dentro de las funcionalidad del mtodo, estos mtodo poseen en su parte de tipo de retorno tienen la palabra void.

Metodos que retornan valor Estos metodos adems de ejecutar operaciones especificas poseen la palabra reservada return dentro de las funcionalidades del metodo, adems en la parte de tipo de retorno debe ir el tipo de dato que el metodo devolver.

Variables Se conoce como variable a un valor modificable, son nombres que representan un 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 globales Un algoritmo que usa mtodos, se pueden declarar variables tanto dentro de la clase antes de los mtodos o de manera local en cada uno de los mtodos. A las variables que se definen antes de la declaracin de los mtodos se les conoce como variables globales o variables de clase, estas pueden ser usadas por cualquier mtodo de la clase.
11

Variables locales Las variables locales a diferencia de las variables locales se definen dentro de cada uno de los mtodos que puede tener una clase, estas variables pueden ser usadas por el mtodo en donde fueron definidas.

Parmetros. Se conoce como procedimiento a una variable que puede pasar su valor a un procedimiento a partir del principal o de otro procedimiento. Dado que en ocasiones es necesario mandar a un procedimiento ciertos valores para que estos sean usados en algn proceso es aqu donde se usan los parmetros. Dentro de la programacin en java se puede considerar 2 tipos de parmetros: parmetros por referencia, parmetros por valor.

Parmetros por referencia A los parmetros por referencia tambin se les conoce como parmetros variables, son variables locales de un mtodo que se definen como parmetros dentro del encabezado del mismo, esta sirve de conexin con otra variable a travs de su contenido, al momento de llamarse o invocarse el mtodo es el que establece la conexin, esto significa que si se le hace algn cambio a la variable local del mtodo llamado lo mismo le suceder a la variable del mtodo con la cual fue conectada; esto se debe a que ambas ocupan la misma posicin de memoria.

Parmetros por valor Es una variable local de un mtodo que se define como parmetro en el encabezado del mismo y sirve de conexin entre otra variable de otro mtodo mediante el envi de su valor, al momento que se hace la llamada del mtodo se rompe la relacin de estas variables; despus de esto lo que le suceda a la variable que paso como parmetro no afectara a la otra variable.

12

ANALISIS Y DISENO DE LA APLICACIN EN FUNCIN DE UNA METODOLOGIA DE LA PROGRAMACIN ICONIX

Antes de comenzar el anlisis de la aplicacin usando el mtodo escogido se har un anlisis del mtodo escogido de manera que se puede tener una idea clara de como se va a trabajar en la aplicacin con el uso de este mtodo.

El mtodo ICONIX se lo define como un proceso de desarrollo practico, este mtodo se encuentra entre la complejidad que presenta y la simplicidad que posee el XP, esto es sin descartar el anlisis y el diseo que XP no tiene contemplado.

Al ser ICONIX un proceso simplificado en comparacin con otros procesos tradicionales, los cuales unifican un conjunto de mtodos de orientacin a objetos esto se hace con el objetivo de abarcar todo el ciclo vida del proyecto. Las tareas que realiza el mtodo ICONIX son las siguientes: Anlisis de requisitos Anlisis y diseo preliminar Diseo Implementacin

Como se pueden ver las tareas del mtodo ICONIX con 4 en las cuales se pretende abarcar todo lo necesario para que la aplicacin desarrollada se encuentre acorde con las necesidades del jugador. Sin mas en adelante con concentraremos en aplicar estas tareas para el desarrollo de nuestra aplicacin

1. Anlisis de requisitos 1.1. Requerimientos de los usuarios En el anlisis de requisitos de nuestra aplicacin se tomara en cuenta los requisitos que los usuarios consideraran para que un juego tenga la debida aceptacin entre sus consumidores. Entre dichos requerimientos tendremos los siguientes: 1. El juego tiene que ser de fcil acceso 2. Debe permitir al usuario elegir el nombre que usura al largo del juego
13

3. Debe permitir al usuario observar cual es su puntuacin durante el juego 4. Debe permitir al usuario elegir la categora 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. Prototipacin Rpida En esta fase del anlisis de requisitos se presentaran de manera rpida un prototipo de diseo de lo que ser nuestra aplicacin.

Cabe mencionar que las interfaces que se presentan a continuacin estn sostenidas a cambios que se darn durante en desarrollo de la aplicacin.

1.2.1. Interfaz de usuario. Bienvenida a la aplicacin

Fig. 1. Bienvenida al juego


14

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 juego Esta es la interfaz que se presentara antes de que los jugadores empiecen a jugar.

15

1.2.4. Interfaz de usuario. Interfaz Final.

Fig. 4. Informacin de resultados del juego

2. Anlisis y diseo preliminar En esta segunda etapa de la metodologa ICONIX consiste en los procesos que desarrollara nuestro juego, se proceder a la realizacin de los diagramas necesarios para que reflejen las interfaces de usuario que se presentaron en el literal anterior.

2.1. Diseo de diagramas de casos de uso Antes de analizar los diagramas de casos de uso debemos tener en consideracin, que en el caso de jugar contra la computadora esta ser el jugador 1 y los dems jugadores le seguirn segn 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

Descripcin 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 podrn ingresar.

2.1.2. Caso de uso. Seleccionar Apuesta

Fig. 6 Caso de uso. Seleccionar Apuesta

Descripcin de caso de uso. Seleccionar Apuesta Una vez que los jugadores ingresaron al juego mediante el ingreso de sus nombres, podrn ver la interfaz de usuario en donde podrn seleccionar la apuesta por la pregunta que la aplicacin les har dependiendo de la categora que hayan seleccionado.

2.1.3. Caso de uso. Seleccionar Categora.

Fig. 7. Caso de uso. Seleccionar Categora.

17

En esta caso de uso como se podr observar los jugadores una vez que seleccionaron una apuesta para la ronda de preguntas correspondientes entonces tendrn que seleccionar la categora de la cual la aplicacin seleccionara una pregunta la cual tendr que contestar el usuario segn las opciones que tenga la misma.

2.1.4. Caso de uso. Contestar Pregunta.

Fig. 8. Caso de uso. Contestar Pregunta

Descripcin de caso de uso. Contestar Pregunta. Como se podr ver en la Fig. 8 para la elaboracin del Caso de uso. Contestar Pregunta, se ha unificado este caso de uso con el anterior; Una vez que se haya seleccionado la categora de la pregunta la aplicacin le mostrara al usuario una pregunta con 3 opciones de respuesta la cual deber contestar. La aplicacin le permitir al usuario verificar su respuesta y ver la puntacin 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

Para la elaboracin de los diagramas de robustez es muy necesario completar el paso anterior, es decir la identificacin y graficacin de los casos de uso ya que en base a estos se har los diagramas de robustez.

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 estn destinados para el nombre se encuentren llenos. Si los campos de nombres no estn llenos el programa lanzara una advertencia y nos llevara de nuevo a la interfaz para ingresar los datos faltantes. Si los campos de nombres estn 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

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 Apuesta

2.2.3. Diagrama de robustez. Seleccionar Categora En el diagrama de robustez de seleccionar categora se ha tomado en cuenta lo siguiente: Se dirige a la interfaz trivia en la cual el usuario deber pulsar en el botn correspondiente a la categora que desee jugar. Se obtiene el nombre de la categora. Si ningunos de los botones de la categora es pulsado el jugador no podr avanzar en el juego.
20

Fig. 11. Diagrama de robustez. Seleccionar Categora

2.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 botn verificar entonces la apuesta ser positiva en consecuencia el usuario tendr una puntuacin mas alta; si la respuesta seleccionada es falsa entonces la apuesta ser negativa en consecuencia la puntuacin del usuario bajara.

21

Fig. 11. Diagrama de robustez. Contestar Preguntas

3. Diseo Para continuar con los anlisis necesarios para que nuestra aplicacin tenga el xito deseado se continuara con los siguientes pasos que nos llevaran a un correcto anlisis del diseo de nuestra aplicacin antes de poder pasar al ltimo paso que seria la implementacin

3.1. Diagrama de secuencia Uno de los primeros pasos a analizar dentro del diseo de una aplicacin es el diagrama de secuencia. En nuestra aplicacin se encontraran los siguientes diagramas de secuencias. Los diagramas a continuacin sern representados solamente en forma grafica.

3.1.1. Diagrama de secuencia. Ingreso Jugadores

Fig. 12. Diagrama de secuencia. Ingreso de jugadores


22

3.1.2. Diagrama de secuencia. Seleccionar Apuesta

Fig. 13. Diagrama de secuencia. Seleccionar Apuesta

3.1.3. Diagrama de secuencia. Seleccionar Categora

Fig. 14. Diagrama de secuencia. Seleccionar Categora

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 aplicacin entonces procederemos a modificar el diagrama de clases con los
23

cambios que se puedan tomar en cuenta segn los diagramas antes realizados

Fig. 16. Diagrama de clases

3.3. Verificacin del diseo Una vez que se ha realizado todos los anlisis que contempla la metodologa 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 fcil acceso El juego que se presenta es de fcil acceso para el usuario debido a que para el acceso al mismo solamente tiene al iniciar la aplicacin solamente tiene que pulsar un botn que posteriormente lo llevara a la venta en donde colocara el nombre de los jugadores segn 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

3. Debe permitir al usuario observar cual es su puntuacin 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 puntuacin que variara a lo largo del juego.

4. Debe permitir al usuario elegir la categora sobre en la cual desea participar. En la interfaz principal del juego tenemos varios botones que representan las categoras 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 puntuacin 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 tambin 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 botn 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 botn para poder salir de la aplicacin

25

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 estadsticas del juego

9. Debe permitir al usuario jugar contra la computadora La aplicacin tambin posee la opcin de jugar contra la computadora ya sea un jugador contra la computadora o 2 jugadores contra la computadora

4. Implementacin Una vez que se han cumplido con todos los pasos anteriores de la metodologa ICONIX, el ltimo de los pasos que debemos completar es la implementacin de nuestra aplicacin.

Para poder realizar una correcta implementacin de nuestra aplicacin deberemos cumplir con los siguientes procesos los cuales nos llevaran a una mejor implementacin de nuestra aplicacin.

4.1. Escribir/Generar Cdigo En este apartado se encontrara una breve descripcin del cdigo que va a contener cada uno de los mdulos de nuestra aplicacin; un resumen del cdigo se podr encontrar en uno de los siguientes apartados.

Para facilitar aun ms la comprensin del cdigo de la aplicacin lo describiremos segn las interfaces que la componen. Adems tendremos que aclarar que se tomara en cuenta tanto en este apartado como en los dems en los que tengamos que referirnos al cdigo de la aplicacin, solo se tomara en cuenta las partes mas importantes del mismo descartando el cdigo que el asistente de la herramienta genera automticamente

26

4.1.1. Interfaz de Bienvenida Esta es una de las ms sencillas ya que solo contendr el cdigo del nombre de la ventana, el cdigo necesario para que la ventana se muestre en el centro de la pantalla, adems de un botn el cual contendr el cdigo necesario para redirigirnos a la ventana siguiente. Y contendr el cdigo de un botn 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 cdigo correspondiente a las propiedades de la ventana que se mostraran al usuario.

Tambin contendr el cdigo de cada uno de las acciones de los mens los cuales permitirn mostrar los cuadros para el ingreso de los datos de los jugadores segn sea el caso.

4.1.3. Interfaz Trivia Esta interfaz es aquella que contendr mas cdigo debido a que todos los procesos referentes a la administracin de los ficheros que contienen las preguntas y las respuestas as como la verificacin de las respuestas seleccionadas por el usuario sern administrados por esta interfaz mediante el uso de diferentes elementos que contendr la interfaz.

A mas de ello para evitar cambios bruscos durante la ejecucin de la aplicacin se ha programado para la aplicacin bloquee algunos de los elementos de forma temporal con los cdigos 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

fichero correspondiente as como los datos del juego de la interfaz anterior.

A mas de ello tendremos el cdigo que nos mostrara cual fue el usuario que gana al finalizar el juego

28

ARQUITECURA DE LA APLICACIN GRAFICA Y DESCRIPCION DE LOS COMPONENTES En este apartado veremos lo referente a la arquitectura de la aplicacin y una breve descripcin de los componentes que la constituyen.

La arquitectura que se usara para la represente aplicacin ser la de 3 capas que comprende el dominio, la lgica y la interfaz grafica.

Las capas de esta comprenden las siguientes capas: Cliente de la aplicacin Servidor de aplicaciones Servidor de datos.

Una vez que hemos enumeramos cuales son las capas que comprenden la arquitectura de 3 capas entonces ahora procederemos a describirlas una a una dependiendo de los componentes de nuestra aplicacin.

Para empezar a analizar la arquitectura de nuestra aplicacin comenzaremos con el analizar de lo que ser el servidor de datos. En nuestro caso el servidor de datos sern los ficheros que contiene la informacin acerca de las preguntas y respuestas que se usaran en nuestra aplicacin, es decir que el servidor de base de datos lo compondrn los siguientes archivos: OpcionesPreguntasC1 OpcionesPreguntasC2 OpcionesPreguntasC3 OpcionesPreguntasC4 OpcionesPreguntasC5 preguntascategoria1 preguntascategoria2 preguntascategoria3 preguntascategoria4 preguntascategoria5 jugadores
29

Estos son los 10 archivos que conformaran nuestro servidor de datos estos a su vez se conectaran con la siguiente capa que ser la de servidor de aplicaciones en el que tendremos la lgica de nuestra aplicacin la cual servir a manera de un puente entre el servidor de base de datos y la interfaz de usuario.

Es decir en esta parte se encontrara toda la codificacin que contendr la aplicacin que lograra que nuestra aplicacin se conecte de forma correcta entre el servidor de datos y la interfaz.

A continuacin se mostrara un diagrama de lo que ser la comunicacin de los mdulos de nuestra aplicacin:

Fig. 1

En la Fig. 1 se muestra como interactuaran tanto la base de datos que en nuestro caso sern ficheros, el servidor de datos que en nuestro caso ser el cdigo los diferentes mdulos que componen nuestra aplicacin como son: el modulo de bienvenida, el modulo de opciones de usuario, el trivia y el modulo de presentacin de resultados.

En primer lugar los mdulos que componen el servidor de aplicaciones segn sea el caso se conectaran con el servidor de datos para la entrada o salida de datos segn sea el caso.

30

En el caso del primer modulo que corresponde a la bienvenida este no contendr ninguna interaccin con la base de datos de nuestra aplicacin; en segundo modulo de nuestra aplicacin que se encargar del manejo de la informacin de los jugadores antes del juego ser uno de los primeros en comunicarse con el servidor de datos debido a que una vez que este modulo recibe la informacin va al fichero correspondiente donde posteriormente se almacenara. Esta operacin se ilustra en la Fig. 2.

Fig. 2

Otra de las comunicaciones que se hacen con el servidor de datos es la que hace el modulo principal que comprende todo el cdigo que maneja la aplicacin en donde se conecta no solo al servidor de datos para la recuperacin de los datos de los jugadores sino tambin los datos de las preguntas y opciones de respuestas que tiene nuestra aplicacin. Esto se ilustra en forma grafica en la Fig. 3.

31

Fig. 3

Y la ultima interaccin que tiene el servidor de datos con el servidor de aplicacin ser la que hace cuando el modulo para la presentacin de resultados inicia sus operaciones. Este modulo no solo interacta con el servidor de datos sino tambin con su modulo predecesor de manera que se puedan presentar los datos del jugador que no estn en el servidor de datos esta ultima interaccin se ilustrara en el Fig. 4.

Fig. 4

Esta es principalmente la manera como se comunican cada uno de los componentes de nuestra aplicacin. Una vez que se ha visto la manera como se comunican cada uno de los modulos de la aplicacin ahora ilustraremos en la Fig. 5 como quedara todo el diagrama de la arquitectura de nuestra aplicacin desde el servidor de datos hasta lo que ser la interfaz de usuario.
32

Fig.5

33

PROTOTIPOS En este apartado podrn encontrar capturas de todos los mdulos que conforman la aplicacin. Una vez que ya se han pulido dentro de las fases de la metodologa escogida.

Fig. 1. Interfaz Bienvenida

Fig. 2. Interfaz Jugadores

Fig 3. Interfaz Trivia. Dos Jugadores antes del juego

34

Fig. 4 Interfaz Trivia. Dos jugadores durante el juego

Fig. 5. Interfaz de Resultados

35

DESCRIPCION DE LA APLICACIN En este apartado trataremos de dar una breve descripcin de la aplicacin una vez que ha pasado por todo el proceso que se requiere antes de ser implementada.

La presente aplicacin fue desarrollada tomando como base el cdigo de la aplicacin trivia que se puede encontrar en la pagina mygnet.net; la aplicacin que se tomo como base posea algunas restricciones a mas de las ya especificadas para el presente proyecto adems la aplicacin manejaba las preguntas directamente en el cdigo haciendo difcil para un usuario comn poderlas modificar; por el contrario trivia de programacin Java no maneja esta informacin en el cdigo sino que lo hace a travs de ficheros.

La Trivia de Programacin Java como se la ha llamado a la aplicacin consta de 4 ventanas las cuales se presentan al usuario en el orden en el cual fueron programadas.

La primera ventana tendr una imagen de entrada, un botn para poder continuar navegando en la aplicacin; adems de un botn que mostrara donde encontrar ayuda para la aplicacin, en la siguiente ventana se encontrara un barra de men donde se podr escoger dentro de el las opciones de jugadores para esta aplicacin

La siguiente ventana de la aplicacin contendr el juego en si, esta ventana se encuentra divida en varias secciones entre las que se encuentra las secciones siguientes: Datos del jugador, Categoras, Apuesta, opciones de respuesta, pregunta, la de verificacin de respuesta y adems de ello algunos botones que permitirn verificar la respuesta, avanzar al siguiente jugador y salir de esta ventana.

La ultima ventana que se presentara al usuario ser la ventana en donde tendr las estadsticas del juego o como mejor se le conocen los resultados del juego.

36

CODIFICACION En esta seccin se encontrara el cdigo de cada uno de los mdulos de nuestra aplicacin, debido a que para el desarrollo de la aplicacin se uso el asistente de Netbeans para la implementacin de las interfaces de usuario, se tomara en cuenta solo el cdigo principal de cada uno de los mdulos para que el cdigo no se haga muy extenso; ya que el asistente genera cdigo automticamente segn se le vayan agregando elementos a la ventana.

Dentro de la codificacin tambin encontraremos algunas partes de cdigo que se repiten, en este caso solo se tomara una copia y se indicara en que partes se encontrara ese cdigo.

Una vez indicado el cdigo que contendr este apartado entonces procederemos a detallar el cdigo segn las interfaces empleadas para desarrollar esta aplicacin.

1. Interfaz de Bienvenida a. Primer Mtodo 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 pasndole null como parmetro.

b. Mtodo de la accin del botn Siguiente Dentro de la accin del botn siguiente tendremos las sentencias siguientes:

Con la primera sentencia creamos un objeto OpcionesJugadores, en la segunda sentencia hacemos visible el objeto que declaramos

37

anteriormente y con la ltima hacemos invisible la ventana de Bienvenida.

c.

Mtodo de la accin del botn Ayuda.

Dentro de la accin de este botn tenemos programado un JOptionPane que nos mostrara un aviso de donde podemos obtener ayuda sobre el juego.

2. Interfaz Jugadores a. Primer mtodo de la Interfaz

Dentro de este mtodo tambin se tendr las sentencias para colocar el titulo y la localizacin de la ventana.

Tambin se encontrara en este mtodo la inicializacin de las cajas de texto para el ingreso de informacin; por el momento a estas se las inicializara con la sentencia de setVisible dndole como parmetro false.

Una vez inicializado las cajas de texto; se podr programar las acciones de cada uno de los mens para que segn la opcin de men que se escoja se muestren las cajas de texto para el ingreso de la informacin de los jugadores.

b. Mtodo que controla la accin del botn Jugar En este mtodo es en donde se creara el fichero de jugadores que contendr por el momento los nombres de los jugadores. Y despus de ellos nos llevara a la siguiente ventana que es la ventana principal de la aplicacin.

c. Mtodo que controla la accin del botn salir En este mtodo tendremos solo la sentencia que nos permitir salir de la aplicacin cuando el usuario pulse el botn salir.

38

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 estarn 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 comn 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 tambin es parte de las excepciones que pueden ocurrir al trabajar con ficheros y ocurre cuando ha ocurrido alguna excepcin de entrada o salida.

Del paquete javax.swing JOptionPane

La clase JOptionPane hace mas fcil el que aparezcan cuadros de dialogo estndar que pueden ser usados para el ingreso de datos o para la salida de mensajes de alerta.

b. Declaracin de variables globales Declaramos las variables globales que vamos a usar es decir aquellas que se usaran en cualquiera de los mtodos de la clase segn sea necesario.

39

Entre las variables globales que se usaran se tendr que tener variables tipo String para categora, respuestas, preguntas, puntajes; entre otras se tendr que declarar el suficiente nmero de variables globales para el correcto funcionamiento de esta aplicacin.

c.

Mtodo Trivia

Este es el primer mtodo que nos aparece despus de importar las clases necesarias y declarar las variables globales que se han de necesitar.

En este mtodo primeramente se encontrara una llamada al mtodo initComponents() despus del cual se encontraran las sentencias para colocar un titulo en la ventana, mostrar la ventana en el centro de la pantalla y la que permite deshabilitar el botn de maximizar de la ventana.

Tambin se tendr la llamada a los mtodos siguientes: valoresIniciales, mostrarDatosJugadores, controlJugadores,

despus de lo cual se podr inicializar el valor del limite de preguntas y los valores de los componentes del panel de verificacin. Tambin se encontrara la sentencia correspondiente al tamao de la ventana, el limite de preguntas del juego y la inicializacin de otros elementos que no se da en el mtodo valoresIniciales.

d. Mtodo btnSeleccionarMouseClicked En este mtodo en primer lugar se controlara la seleccin de las categoras y las apuestas, para luego de ello segn las opciones seleccionadas inicializar el valor de categora y resp con los valores correspondientes al nombre y extensin de los ficheros que contienen la informacin de las preguntas de la trivia al igual que

40

incrementar el contador correspondiente al numero de preguntas de la categora seleccionada.

En este mtodo tambin se deshabilitara el botn seleccionar y se habilitara el botn de verificar; se har tambin un llamado al mtodo de preguntas trivia, pasando como parmetros los valores de categora y resp.

e.

Mtodo btnVerificarMouseClicked En este mtodo lo que se encontrara es un llamado al mtodo verificar, adems de la asignacin de un nuevo valor al panel de respuesta.

f.

Mtodo btnSiguienteMouseClicked

En este mtodo en primer lugar tendremos una sentencia de control que controlara si se selecciono previamente la opcin de jugar contra la computadora entonces si el jugador que esta activo es la computadora nos llevara al mtodo controlJugadores; en caso contrario nos llevara al mtodo valoresIniciales.

Luego de lo cual se tendr otra sentencia que permitir controlar el numero de preguntas que se han jugador en el caso que se haya alcanzado el limite mostrara un mensaje de alerta y cerrara la ventana principal de la trivia y mostrara la ventana de resultados; en caso que no se haya alcanzado el numero de preguntas limite entonces habilitara las opciones de botn para el siguiente jugador.

Adems de lo antes indicado este mtodo tambin contiene un llamado a un mtodo con el nombre de PintarJugadorActual; que coloca en negrita el jugador actual, los valores tanto de la etiqueta como del panel de verificacin. Y inicializara en vacio la etiqueta de pregunta y las etiquetas de cada uno de los botones de opcin de las preguntas.

41

g. Mtodo btnSalirMouseClicked En este mtodo se encontrara una llamada al mtodo de guardarDatos para que se realice los procesos all del guardado de la informacin del juego.

h. Mtodo valoresIniciales En este mtodo se encontraran las sentencias en donde se agregan los botones de opciones al grupo de botones correspondientes.

Se inicializa el estado de los botones de opcion en falso, se deshabilita los botones de verificar y siguiente; los valores de texto de las etiquetas de jugador se las inicia como texto sin negrita, se inicializa en vaco la etiqueta de preguntas y las etiquetas de los botones de opcin

Tambin se inicializan los valores de los componentes del panel de verificacin.

i.

Mtodo mostrarDatosJugadores

En este mtodo se tendrn las sentencias para la lectura del fichero en donde se encuentran los nombres de los jugadores. Al igual que una sentencia de control que servir para el control de los mismos ya que si son 2 jugadores en la ventana solo mostrara las etiquetas segn el numero de jugadores que sean.

Inicializaremos el valor de numJug; que es el nmero de jugadores segn el nmero de datos recuperados y se har un llamado al mtodo PintarJugadorActual.

j.

Mtodo controlJugadores

En este mtodo se tendr un llamado al mtodo jugar.

42

k.

Mtodo SeleccionarCategoriaComputador

En este mtodo se inicializara la variable numCat usando un numero aleatoria que vaya desde el 1 al 5, a continuacin de ello tendremos los mismo controles como en el botn seleccionar, los cuales segn el valor del numCat asignara una categora al ordenador.

l.

Mtodo SeleccionarApuestaComputador

En este mtodo al igual que en el anterior se inicializara la variable numApu con un valor aleatorio entre 1 y 5, segn la opcin que se seleccione se deshabilitaran los dems botones siguiendo el mismo proceso que si fuera un jugador mas.

m. Mtodo preguntasTrivia Como ya se dijo en un mtodo pasado este mtodo recibe 2 parmetros el uno categorias y el otro resp, estos parmetros contienen el nombre del fichero de preguntas y respuestas respectivamente con sus extensiones los cuales se usaran en lo posterior. Se declararan variables locales para el almacenamiento de algunos datos importantes como son el nmero de lneas del fichero de las preguntas, el nmero de lneas del fichero de opciones de respuesta, un contador para las preguntas, un contador para las respuestas, un arreglo en donde se almacenaran las preguntas, un arreglo en donde se almacenaran las respuestas.

Se tendr las sentencias para la lectura de un fichero en donde se coloca el nombre del fichero que se va a abrir se colocara el valor de la variable categora. Seguidamente con la ayuda de un ciclo repetitivo almacenaremos los datos recuperados del fichero en un arreglo. Se sigue el mismo procedimiento para la recuperacin de las opciones de pregunta del fichero los nicos cambios que hay
43

que hacer son el nombre de la variable que se colocara en donde va el nombre del fichero que se desea abrir y el arreglo donde se almacenaran los datos.

Se inicializara la variable pregunta con un valor aleatorio que vaya desde el 1 hasta el 10 con usando Math.random.

Seguidamente inicializara la variable cat con las preguntas recuperadas segn las posiciones del arreglo de preguntas.

Seguidamente se encontrara un switch que tendr la variable pregunta con la cual se controlara la visualizacin de las preguntas segn su nmero, como se tiene 10 preguntas por categora entonces el numero de case del switch ser 10, entonces dependiendo del numero de case se recuperara la pregunta y las opciones de respuesta segn las posiciones del arreglo tanto de preguntas como de respuestas y se los mostrara en las etiquetas correspondientes en la interfaz grafica.

Como

las

sentencias

anteriores

van

provocar

algunas

excepciones propias del manejo de ficheros entonces el cdigo anterior se tendr que encapsular en sentencias try catch o en su defecto controlar con algn otro mtodo las excepciones

provocadas.

n. Mtodo verificar En este mtodo se encontrara la habilitacin de botn siguiente y la deshabilitacin del botn verificar, tambin se creara una variable booleana llamada esCorrecto. Luego de lo cual se tendr una serie de ifs anidados los cuales realizaran el control de la respuesta seleccionada por el usuario segn la categora y la opcin de respuesta que este haya seleccionado, tambin se tendr las sentencias para el cambio de
44

color del panel de verificacin, y la asignacin de un valor a la variable esCorrecto segn sea el caso; adems de un llamado al mtodo Puntuacion con el valor de la variable esCorrecto.

o. Mtodo Puntuacion En este mtodo en primer lugar recibir una variable booleana llamada opcin la cual necesitaremos en las sentencias posteriores.

En primer lugar se tendra el control sobre los botones de apuesta segn cual sea la opuesta del jugador entonces se pasara a la siguiente sentencia la cual controla el numero de jugadores y a travs de un switch usando la variable jugadorActual segn el numero de opcion dentro del switch entonces se tendra otro control pero esta vez sobre la variable esCorrecto en la cual si esta es verdadera se sumara al jugador correspondiente la puntuacin segn la opcion seleccionada.

p. Mtodo SeleccionarRespuestaComputador En este mtodo se asigna un numero aleatorio entre el 1 y 3 a la variable numOpc, luego de lo cual segn este numero se seleccionara sentencias ifs. el botn de opcin correspondiente mediante

q.

Mtodo guardarDatos

En el mtodo guardar datos una vez que se haya realizado las acciones del botn salir entonces tendremos las sentencias necesaria para guardar los datos del juego en el fichero de resultados de manera que puedan ser recuperados del fichero hacia la ventana siguiente. Una vez que se complete la grabacin de los datos en el fichero entonces se colocaran las sentencias para dirigirnos a la siguiente ventana, y cerrar la ventana actual.

45

r.

Mtodo Jugar

En este mtodo comprobaremos si el jugador actual es la computadora entonces nos dirigiremos a los mtodos 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 mtodos necesarios cuando los jugadores no son la computadora.

s.

Mtodo PintarJugadorActual

En este mtodo 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 dems 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. Declaracin de variables globales. Despus de la clase se declararan las variables globales que se usaran que en este caso sern las siguientes:

numLineas de tipo entero y la inicializaremos con el numero de lneas 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 lneas 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

c.

Mtodo Resultados

Debido a que este es el primer mtodo de la interfaz entonces aqu encontraremos la llamada al mtodo initComponents que es uno de los mtodos que el asistente de interfaz grafica de Netbeans implementa automticamente despus de ello tendremos las sentencias para colocar el nombre a la ventana y centrar la ventana en el centro de la pantalla, al igual que 3 etiquetas que no tendrn ningn valor por el momento.

Una vez que se haya hecho lo anteriormente explicado entonces se tendr que escribir posteriormente las sentencias para la lectura del fichero de jugadores que es en donde se encontraran los datos de los jugadores.

Luego de ellos con la ayuda de un ciclo repetitivo se llenaran el arreglo que declaramos anteriormente con los datos que se recuperan del fichero.

Una vez que el arreglo tenga los datos del fichero se har una comparacin para comprobar cuantos jugadores existen y poder as mostrar los datos en las respectivas etiquetas; sea el caso que si existe solo 2 jugadores es decir la posicin 2 del arreglo se encuentra vaca entonces no se mostraran las etiquetas

correspondientes al jugador 3; caso contrario se las mostrara. Algo que se debe tomar en cuenta que siempre en un arreglo se empieza contando desde la posicin 0 hasta el final del mismo.

Por ultimo se tendr un llamado al mtodo mostrarGanador.

d. Mtodo btnSalirMouseClicked Aqu se encontrara la sentencia System.exit(0) que nos permitir salir de la aplicacin.

47

e.

Mtodo mostrarGanador

En este mtodo se har una comparacin con los valores de las puntuaciones de los jugadores y se mostrara la etiqueta al frente del jugador con el mayor puntaje sealndolo como ganador.

48

CONCLUSIONES Como conclusiones una vez terminado este proyecto tenemos las siguientes: La utilizacin de ficheros para administrar informacin es muy prctica cuando no se va a manejar grandes cantidades de informacin que requiere ser actualizada sin hacer cambios en la aplicacin sobre la cual se usa.

La implementacin de ficheros dentro de una aplicacin puede ser tediosa en el caso de necesitar correr la aplicacin en varios Sistemas Operativos.

El uso de arreglos para la recuperacin de datos de un fichero es muy til ya que permite administrar la informacin que se recupera de la manera ms fcil posible sin incluir otras sentencias que complicaran ms la aplicacin y no se obtendra 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 creacin 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

RECOMENDACIONES Entre las recomendaciones que se pueden dar acerca de este proyecto se tienen las siguientes: Se debe tener mucho cuidado con los errores que se puedan dar en la aplicacin durante el periodo de prueba de la aplicacin

Se debe tener nociones bsicas del manejo de excepciones y manejos de las misma para realizar de la manera mas correcta la codificacin de esta aplicacin

Se debe seguir en forma secuencial cada uno de las fases de la metodologa que se elija para la realizacin de un proyecto.

Se debe tener una constante interaccin con el usuario final de la aplicacin ya que este ser el que juzgue si la aplicacin que se ha desarrollado esta acorde con los requerimientos que este solicito.

Se debe tener en cuenta la versin de la maquina virtual de java del ordenador donde se realizada la aplicacin y la versin de la misma del ordenador donde se la implementara.

50

BIBLIOGRAFIA RB1: Yahoo Respuestas en espaol (s.f). Recuperado el 11 de abril del 2012 de http://espanol.answers.yahoo.com/question/index?qid=20060829071835AAHkd XI RB2: Pereira Gonzlez M (s.f). Excepciones. Recuperado el 11 de abril del 2012 de http://ocw.uc3m.es/ingenieriainformatica/programacion/transparencias/tema8.pdf RB3: Garca Beltrn A, Arranz J. M (s.f). Otras Sentencias. Recuperado el 11 de abril del 2012 de http://ocw.upm.es/lenguajes-y-sistemasinformaticos/programacion-en-java-i/Contenidos/LecturaObligatoria/7otrassentencias.pdf RB4: Lpez P, Ruiz F (s.f).Ingenieria de Software I Tema 2: Lenguaje unificado de modelado UML. Recuperado el 11 de abril del 2012 de http://ocw.unican.es/ensenanzas-tecnicas/ingenieria-del-software-i/materialesde-clase-1/is1-t02-trans.pdf RB5: Garcia Pealvo F, Conde Gonzalez M, Bravo Martin S (2008). Ingenieria del Software Tema 2: Modelo objeto Una descripcin de UML. Recuperado el 11 de abril del 2012 de http://ocw.usal.es/ensenanzas-tecnicas/ingenieria-delsoftware/contenidos/Tema2-Modeloobjeto-1pp.pdf RB6: Lopez P, Ruiz F (s.f). Ingenieria del Software I Tema 7: Iteraciones del Sistema (en el desarrollo de OO). Recuperado el 11 de abril del 2012 de http://ocw.unican.es/ensenanzas-tecnicas/ingenieria-del-software-i/materialesde-clase-1/is1-t07-trans.pdf RB7: Aycart Perez D, Gibert Ginesta M, Hernandez Matias M, Mas Hernandez Jordi (s.f). Ingeniera del software en entornos de SL. Recuperado el 11 de abril del 2012 de http://ocw.uoc.edu/computer-science-technology-andmultimedia/software-engineering-in-free-software-environments/softwareengineering-in-free-software-environments/XP06_M2112_01486.pdf RB8: Package java.io. Recuperado el 11 de abril del 2012 de http://docs.oracle.com/javase/1.4.2/docs/api/java/io/package-summary.html RB17: Deitel P, Deitel H (2008). Java como programar. Mxico: Pearson Prentice Hall.

51

RB18: Camacho Fernndez, D. (Coordinador); Valls Ferrn, J. M.; Garca Herrero J.; Molina Lpez, J.; Bueno Rodrguez, E (2003). Programacin, Algoritmos y Ejercicios Resueltos en Java. Madrid: Pearson Educacin S.A. RB19: Stevens P.; Polley R (2002). Utilizacin de UML en ingeniera de Software con objetos y componentes. Madrid: Pearson Educacin S.A. RB9: Qu es la tecnologa Java y por qu lo necesito?. Recuperado el 22 de abril del 2012 de http://www.java.com/es/download/faq/whatis_java.xml RB10: Salvador Vargas A. Arreglos en Java. Recuperado el 22 de abril del 2012 de http://www.utim.edu.mx/~salvar73/material/java/Arreglos.pdf RB11: Jenkov J. Java IO: FileWriter. Recuperado el 22 de abril del 2012 de http://tutorials.jenkov.com/java-io/filewriter.html RB12: Clase BufferedReader. Recuperado el 22 de abril del 2012 de http://docs.oracle.com/javase/1.4.2/docs/api/java/io/BufferedReader.html RB13: Mtodos en Java. Recuperado el 22 de abril del 2012 de http://www.slideshare.net/mtemarialuisa/mtodos-java RB14: Variables Java. Recuperado el 22 de abril del 2012 de http://www.webtaller.com/construccion/lenguajes/java/lecciones/variablesjava.php RB15: Unidad 6: OPP Java Tema 2: Parmetros. Recuperado el 22 de abril del 2012 de http://www.programacionfacil.com/java:parametros RB16: Clase y objetos en Java Lgica de la Programacin. Recuperado el 22 de abril del 2012 de http://www.scribd.com/leonardo_cristancho/d/48801584Clases-y-Objetos-en-Java

52

Você também pode gostar