Download Sergio Andrés Muriel Echavarría
Document related concepts
no text concepts found
Transcript
Areasteroids Por: Sergio Andrés Muriel Echavarría A mi esposa. INDICE 1. 2. 3. 4. 5. Resumen Glosario Línea de investigación. Objetivos Manual técnico 5.1. Preanálisis 5.2. Análisis 5.3. Diseño 5.4. Construcción 5.5. Pruebas 5.6. Instalación 5.7. Publicación 6. Manual del usuario (Guía rápida) 7. Créditos 1. Resumen La construcción de Areasteroids fue motivada por el Primer Concurso de Software Educativo realizado por la Fundación Empresas Públicas de Medellín (Colombia). La idea original del juego fue basada en el antiguo juego tipo arcade Asteroids de Atari. El objetivo del juego es aprender a calcular el área de las figuras geométricas básicas mediante este software libre con licencia GNU-GPL, el cual puede correr virtualmente sobre cualquier plataforma y/o sistema operativo puesto que solo necesita un navegador que soporte applets de Java. 2. Glosario Applet: Programa corto escrito en Java. Se descarga desde un servidor (que puede ser la misma computadora local sin características especiales) para efectos de extender la funcionalidad de una página web ó del navegador utilizado para verla. GNU: Es un proyecto que se inició para desarrollar un sistema operativo tipo Unix con la condición de que fuese software libre. GNU es un acrónimo recursivo para “GNU’s Not Unix”, en español: “GNU No es Unix”. Java: Lenguaje de programación orientado a objetos desarrollado por Sun Microsystems que tiene como principal característica la posibilidad de ser ejecutado en casi cualquier sistema operativo. Navegador: Es un programa de computadora que permite desplazarse por la web y ver sus contenidos. Stand-alone: Aparato que puede funcionar por sí mismo de forma autónoma. Por ejemplo, una computadora que tiene todo lo necesario para funcionar independientemente, a diferencia de terminales que necesitan estar conectadas a una computadora central. Areasteroids puede ejecutarse perfectamente en una computadora stand-alone sin la necesidad de conectarse a un servidor por ejemplo. Web: Este término se utiliza por comodidad en vez de World Wide Web, que se define como una conexión global de documentos interconectados en la Internet. La web ofrece un sistema de hipermedios que puede almacenar datos tales como texto, audio, gráficas, etc. 3. Línea de investigación: Las áreas principales del conocimiento que tocan el planteamiento y desarrollo de este trabajo son las siguientes: Lenguajes de programación (Informática). Programación windows con Java (Informática). Animación 2D por computadora (Informática). Matemáticas de 9º grado (Geometría elemental). 4. Objetivos: General: Construir un programa de computadora que sirva para aprender a calcular el área de las figuras geométricas básicas. Específico 1: El usuario final (estudiante) deberá a aprender a calcular con facilidad el área de un rectángulo. Específico 2: El usuario final deberá a aprender a calcular con facilidad el área de un triángulo. Específico 3: El usuario final deberá a aprender a calcular con facilidad el área de un círculo. Específico 4: El programa debe poder correrse casi desde cualquier sistema operativo. Específico 5: El código fuente debe estar en inglés, pues es el idioma universal. Específico 6: El programa debe permitir fácil internacionalización (i18n) por cualquier otro programador que desee crear una nueva interfaz. Específico 7: El programa debe ser lúdico para el usuario final. Específico 8: El programa debe ser software libre. Específico 9: La instalación del programa debe ser lo más sencilla posible. Específico 10: El rendimiento del programa debe ser óptimo. 5. Manual técnico A continuación se exponen las diferentes etapas del proyecto mediante las cuales se lograron alcanzar los objetivos satisfactoriamente. 5.1. 5.2. 5.3. 5.4. Preanálisis Puesto que los organizadores del concurso enfatizaron con ahínco que el programa fuera lúdico, el autor pensó que lo mejor era desarrollar un juego (objetivo específico 7). Por esto, la idea original está basada en el conocido juego tipo arcade Asteroids. Análisis Esta fase sirvió para establecer los requerimientos del programa, las condiciones inherentes del mismo y los tipos de usuario que debían tenerse en cuenta (estudiantes de secundaria). Diseño En esta fase se decidió utilizar la tecnología Applets hechos con Swing de Java por las siguientes razones: En primer lugar, Java es quizás el lenguaje más portable que existe en el entorno de la programación de computadoras. En segundo lugar, la tecnología Swing de Java permite manejar ventanas gráficas (windows) independientemente de la plataforma; lo que no permitía la antigua tecnología AWT (Abstract Windowing Toolkit). Y en tercer y último lugar se tiene que los Applets se han popularizado tanto que casi cualquier navegador (ó browser) de la época soporta esta tecnología. Por esta razón Areasteroids puede ejecutarse virtualmente sobre cualquier plataforma y/o sistema operativo (objetivo específico 4), llámese Windows, Linux o Mac OS por nombrar solamente los más comunes, pues el bytecode generado por el JDK (Java Development Kit) solo necesita que la máquina virtual de java (JVM) esté instalada en ese sistema operativo para poder correr el programa. Construcción Todo el código fuente está escrito en inglés (objetivo específico 5), con el objetivo de no solamente poner en práctica las campañas referentes a que en la ciudad del autor (Medellín) se maneje fluidamente un segundo idioma; sino por que el inglés es el idioma universal por excelencia y así, en teoría, cualquier programador de computadoras en el mundo podría leer, modificar y/o entender fácilmente el programa como tal. Por otro lado, se tiene que casi cualquier persona con conocimientos básicos de programación podría adaptar las etiquetas (labels) de la interfaz gráfica de usuario del programa a su propio idioma, pues solo bastaría con crear otro archivo language.properties (el cual se encuentra en el directorio raíz del archivo Areasteroids.jar) con los sufijos (posfijos) adecuados (objetivo específico 6). Si un programador quiere profundizar en el tema, puede consultar la clase Locale de Java. Para mayor facilidad y claridad, el código está autodocumentado en un 100%. Breve explicación de las clases que componen el programa: 5.4.1.Areasteroids: Es la plataforma en la cual está montado el juego. 5.4.2.Animator: Es el componente que presenta la animación. 5.4.3.AreasteroidsCreator: Es la clase que está encargada de crear los asteroides (figuras geométricas) en posiciones y tamaños aleatorios. 5.4.4.ComponentsListener: Es la clase encargada de escuchar los eventos windows; es decir, las acciones de usuario tales como: clic en Jugar, presionar flecha derecha, presionar flecha izquierda, presionar tecla Enter, etc. 5.4.5.Game: Es la clase que contiene las reglas del juego y la encargada de manejar el mismo. 5.4.6.Mobile: Es una interfaz que debe implementar toda figura geométrica que pertenezca al juego. 5.4.7.geom/Rectangle: Es una figura geométrica que representa un rectángulo (objetivo específico 1). 5.4.8.geom/Triangle: Es una figura geométrica que representa un triángulo (objetivo específico 2). 5.5. 5.6. 5.7. 5.4.9.geom/Circle: Es una figura geométrica que representa un círculo (objetivo específico 3). 5.4.10. geom/Triangle2D: Es la representación del triángulo en el contexto gráfico 2D de Java. 5.4.11. ship/Ship: Es la nave espacial del juego. 5.4.12. ship/Missile: Son los misiles que dispara la nave. Pruebas Gracias a las características del programa y a las condiciones de trabajo se pudieron hacer pruebas individuales, unitarias y específicas a medida que se hacía el desarrollo con el objeto de agilizar el logro de los objetivos. El programa se probó y se ejecutó satisfactoriamente en los siguientes navegadores: Internet Explorer 5 y 6. Mozilla Firefox (versión actualizada a marzo de 2006). El programa se probó y se ejecutó satisfactoriamente en los siguientes sistemas operativos: Windows 98. Windows XP. El programa se probó y se ejecutó satisfactoriamente en la siguiente computadora personal: Computadora tipo IBM-PC con un procesador Pentium de 100 MHz y 48 Megabytes de memoria RAM. Con esta última prueba se garantiza un excelente rendimiento (objetivo específico 10). Instalación Sólo consiste en verificar que Java se encuentre instalado en el computador, luego se procede a descomprimir el archivo Areasteroids.zip en el disco duro y listo (objetivo específico 9). Para mayor información puede ver el manual de instalación. Si se quiere ejecutarlo, solo bastará con abrir el archivo Areasteroids.html con un navegador. Publicación Se entregará un CD con el programa, sus archivos fuentes y manuales a la Fundación Empresas Públicas de Medellín. Se incluirá la licencia GNU-GPL versión 2 (Junio 1991) en los archivos del programa (objetivo específico 8). 6. Manual del usuario (Guía rápida) Para empezar un nuevo juego, haga clic en el botón Jugar. Para rotar la nave espacial haga clic en la caja de texto Carga y presione las teclas flecha derecha ó flecha izquierda. Para disparar misiles digite el valor exacto del área de la figura apuntada por el Radar y luego presione la tecla Enter. ¿Cómo saber el valor exacto del área? Ejemplos: 1. Si se trata de un rectángulo y el Radar muestra: b=4; a=2 significa que la base de este rectángulo mide 4 unidades y su altura mide 2 unidades; por lo tanto, su área es: A = b x a = 4 x 2 = 8 2. Si se trata de un triángulo y el Radar muestra: b=4; a=2 significa que la base de este rectángulo mide 4 unidades y su altura mide 2 unidades; por lo tanto, su área es: A = (b x a)/2 = (4 x 2)/2 = 4 3. Si se trata de un triángulo y el Radar muestra: b=3; a=3 significa que la base de este rectángulo mide 3 unidades y su altura mide 3 unidades; por lo tanto, su área es: A = (b x a)/2 = (3 x 3)/2 = 4.5 (Recuerde escribir el punto). 4. Si se trata de un círculo y el Radar muestra: r=5; significa que el radio de este círculo mide 5 unidades; por lo tanto, su área es: A = r x r x PI = 5 x 5 x PI = 25PI (Recuerde escribir PI siempre después del número y sin espacios). 5. Si se trata de un círculo y el Radar muestra: r=1; significa que el radio de este círculo mide 1 unidad; por lo tanto, su área es: A = r x r x pi = 1 x 1 x pi = pi (Usted puede escribir PI en mayúsculas o en minúsculas). Créditos Asteroids 1979, 1993 es una marca registrada de Atari Corporation. Java es una marca registrada de Sun Microsystems. Applet es una tecnología Java. Swing es una tecnología Java. Windows es una marca registrada de Microsoft Corporation. Unix es una marca registrada de SCO (Santa Cruz Operation). Linux es GNU. "La geometría es Dios mismo." Johannes Kepler