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