INTRODUCCIÓN
El objetivo o el propósito de este proyecto es hacer utilización de una
herramienta tecnológica para el aprendizaje de POO con la finalidad de que entendamos y
aprendamos más sobre el lenguaje de programación tanto teóricamente como
sintaxis.
En
este caso se eligió la herramienta de Greenfoot con las
funciones de compilación y ejecución de programas en Java; en la cual creamos
un juego haciendo uso de la POO.
En
este proyecto se hablara sobre Greenfoot sus funciones, como usarlo y donde se
desee detallar la aparición de objetos y la comunicación entre éstos de una
forma visual.
I.
OBJETIVOS
1.1.
OBJETIVO GENERAL
Ø Proporcionar con
la ayuda de la herramienta Greenfoot un mecanismo visual que
permita la representación de ciertos conceptos de la orientación objetos en
Java mediante la simulación de un escenario.
Ø
Aprender
un método en el juego que estemos haciendo con Greenfoot.
1.2.
OBJETIVOS ESPECIFICOS
Ø
Diferenciar entre clase y objeto.
Ø
Entender el comportamiento
de los objetos.
2.1.
GREENFOOT
El
sistema Greenfoot es una combinación de framework y entorno para la creación de
aplicaciones de simulación interactivas en un plano bidimensional en el
lenguaje de programación Java. Es adecuado para nuevos programadores. En
Greenfoot la visualización de objetos y la interacción entre ellos son los
elementos clave.
Una
manera de visualización del sistema es como una extensión del banco de objetos
de BlueJ. Greenfoot extiende la idea del banco de objetos al mundo de los
objetos. En este mundo los objetos tienen una apariencia gráfica y una posición
en el mundo. La interacción directa con estos objetos es todavía posible, como
en el original BlueJ pero el
comportamiento de los objetos puede ser ahora observado directamente al ver los
cambios en la posición y apariencia individual de los objetos. El propio mundo de los objetos (visible como
área subyacente detrás de los objetos Greenfoot) llega a ser un objeto
programable, interactivo integrado en la estructura de la aplicación.Además
de los conceptos de diferenciación entre clase y objeto, la invocación a
métodos y el acceso al estado y comportamiento de los objetos, al igual que en
BlueJ, el entorno de desarrollo integrado, junto con el editor “built-in” ayuda
a los usuarios a afianzar pequeños conceptos generales de computación tales
como código fuente, compilación ejecución, etc.
III. DESCRIPCIÓN DEL PROGRAMA A
DESARROLLAR
El
programa que estamos realizando en Greenfoot es un juego.

Es un juego con la cual adquirimos más experiencia con la programación orientado objeto.
Greenfoot
nos representa gráficamente los objetos; en este cado nuestro objeto Word de
tipo Mundo que va contener nuestra clase padre donde va estar las demás subclases en este caso los actores
que son espacio y dentro de espacio esta, tablero, final, persona, vidas,
marciano y disparo.
Para
este juego creamos un escenario. Todo ocurre en el espacio. Donde un astronauta
es atacado por 5 marcianos, por eso el astronauta tiene como defensa una arma
para dispararlos y así ir aniquilándolos uno por uno evitando que los marcianos
lo aniquilen a él, el juego cuenta con 3 vidas, es decir el astronauta tendrá 3
oportunidades para ganar el juego, y si el astronauta es vencido será fin del juego.
Al
astronauta se le mueve con las flechas direccionales del teclado, dispara con
la tecla X y en el caso de los marcianos
ellos se mueven por si solos en ángulos aleatorios programados.
Para
la clase World debemos crearle una clase hija que heredara de la clase World, a
esta subclase le pusimos el nombre de espacio, al momento de crear la subclase
nos aparece una ventana en la cual elegimos una imagen que representara a esa
subclase, la imagen fue un espacio.
Luego
pasamos a crear los actores:
Tablero,
persona para la cual elegimos una imagen de un astronauta, vidas en donde
pusimos la cantidad de vida que tendrá el astronauta, persona donde elegimos la
imagen de un marciano, disparo donde elegimos imagen de una bola de disparo y
GameOver en la que no elegimos ninguna
imagen ya que ahí se dará el fin del juego si el astronauta es aniquilado por
los marcianos.
(Gómez, 2009) La realización de
este proyecto me ha aportado una introducción a la plataforma Java y a
numerosas herramientas de aprendizaje que existen de la POO. La introducción a
Java, es una de las causas principales de mi interés por este proyecto ya que
en la titulación que he cursado no se me introduce a esta plataforma. Me ha
sorprendido descubrir la cantidad de herramientas que existen para el apoyo al
aprendizaje de la POO y lo intuitivas y fáciles en su uso que pueden llegar a
ser. Con la realización de este proyecto, he afianzado conceptos de este tipo
de programación, con lo cual yo valoro personalmente que si a mí me ha sido
útil, puede ser útil a más estudiantes en el futuro. La solución propuesta al
comienzo era muy diferente y no permitía una portabilidad fácil de código a los
estudiantes como la solución actual, lo cual chocaba con los requisitos del
cliente. La mayor dificultad por tanto, ha estado en cumplir con los requisitos
del cliente que se iban modificando a medida que avanzaba el proyecto, lo cual
es algo que pasa todos los días en el mundo real. Desarrollo de un escenario
basado en la herramienta Greenfoot para el apoyo de la enseñanza temprana de la
Programación Orientada a Objetos .La implementación del sistema no me ha
supuesto mucha dificultad, puesto que he realizado escenarios previos a esta
solución donde he cogido soltura y conocimiento en el manejo de la herramienta
y he podido mejorar en la medida de lo posible la presentación de una solución
adecuada. Por último, considero que la realización de este proyecto me ha
producido una mayor atracción hacia el descubrimiento de Java y sus
posibilidades, que pueden ser infinitas y de las que solo he visto una mínima
parte.
(Losada, 2012) Greenfoot una herramienta
orientada al aprendizaje del mecanismo de creación de objetos en Java. También
hemos descrito la forma de generar, corregir y comentar problemas. Hemos
realizado una evaluación controlada, con resultados satisfactorios a nivel
general, puesto que se ha demostrado su eficacia educativa. Podemos
mejorar las plantillas para que haya más
variabilidad. En primer lugar, podrían generalizarse algunas partes de la
plantilla. Por ejemplo, si permitiera tener atributos de tipos distintos, el
número máximo de constructores aumentaría considerablemente. Así, con dos
atributos de distintos tipos se pueden tener cinco constructores y con tres
atributos, hasta 16. También podríamos aumentar la complejidad de los problemas
para que incluyan otros mecanismos de creación de objetos en Java, como
inicializadores de atributos, bloques de inicialización, herencia, las palabras
clave this y super, o polimorfismo. Una última mejora consistiría en que las
opciones de respuesta no se generen de forma aleatoria pura, sino que tengan en
cuenta errores frecuentes de los alumnos. Otras experiencias han seguido esta
línea, aunque de forma manual.




Definir una abstracción significa describir una entidad del mundo real,
no importa lo compleja que pueda ser, y a continuación utilizar esta
descripción en un programa.


Una
sentencia switch permite a una variable ser probada por una lista de
condiciones. Cada condición se llama case. La sentencia
switch es una forma de expresión de un creación múltiple de sentencias if
-else. Su uso no puede considerarse, por tanto, estrictamente necesario, puesto
que siempre podrá ser sustituida por el uso de if. No obstante, a veces nos
resultará útil al introducir mayor claridad en el código.
El valor de
la expresión y de las constantes tiene que ser de tipo char, byte, short o int.
No hay lugar para booleanos, reales ni long porque, en la ejecución, todos los
valores que incorporamos se transforman en valores de tipo int.
En
resumen, un ciclo for es una estructura iterativa para ejecutar un mismo
segmento de código una cantidad de veces deseada; conociendo previamente un
valor de inicio, un tamaño de paso y un valor final para el ciclo.



De
esta manera, para acceder a un atributo static, no necesitamos crear
una instancia de la clase, ya que podemos acceder a ellos mediante el nombre de
la clase.
Se
puede declarar una clase como final, cuando no nos interesa crear clases
derivadas de dicha clase.
Ø Compilación: (PEREZ,
2013)
Consiste en que el compilador traducirá el código fuente a código máquina, también llamado código objeto, siempre y
cuando, el propio compilador no detecte ningún error en dicho código fuente.
Ø
Simulación:
(GALICIA, 2011)
Es una técnica para analizar y estudiar sistemas complejos.
Ø
Framework:
(JORDISAN, 2006)Marco
de trabajo.
Ø
BlueJ: (DAVID,
2010) Es un
entorno integrado de desarrollo (de sus siglas en inglés IDE - Integrated
Development Environment) para el lenguaje de programación Java, desarrollado
principalmente con propósitos educacionales, pero también es adecuado para el
desarrollo de software a pequeña escala.
Que se
empiece hacer el uso de las herramientas de apoyo, ya que son una gran ayuda,
ya que visualmente se puede aprender muchas características la POO, que no se
conformen solo con saber programar en C++, Neatbeans, entre otros; cuando hay
herramientas de apoyo que son muy útiles.
En muchas ocasiones los
alumnos se conforman con los recursos que les ofrecen los profesores en las
clases. Son pocos los que ponen en práctica ese espíritu investigador y de
querer saber más, que caracteriza a los estudiantes de ciencias y es por ello
que quizá el uso de esta herramienta les invite a pensar en buscar una
herramienta que consideren adecuada para cada momento, en la cual ellos se
sientan cómodo trabajando y sientan que con la ayuda de esa herramienta entienden
más acerca de POO.
7.1.
CLASE
ESPACIO
7.6. CLASE SHOT(BALAS)
Este
trabajo se hizo, se plantea y se basa en objetivos ya mencionados antes de
empezar este proyecto, tanto como generales y específicos; a continuación se
muestra como se cumplen los objetivos:
Generales:
Ø Greenfoot
pretende proporcionar a los usuarios una comprensión de distintos y variados
conceptos de la programación orientada a objetos, así como la sintaxis Java.
Todo ello principalmente mediante la visualización de objetos, pues es esta
visualización la que permite fijar conceptos que normalmente se encuentran en
la imaginación de los usuarios que comienzan en el mundo de la programación
orientada a objetos y que no resulta tan intuitiva como la visualización.
Gracias a Greenfoot se puede
aprender didácticamente. Greenfoot es una herramienta que ya viene incluido la
parte de Herencia y Abstracción; para eso nosotros tuvimos ya una base en
cuenta a eso, y en esta herramienta lo pudimos entender más aun de una manera
práctica, visualizándolo al momento de crear nuestra superclase World y Actores
ya que ahí no se puede crear objetos porque es abstracta; y como la sub clase Myworl
hereda automáticamente de World los parámetros de la ventana.
Ø Un
método que aprendimos a utilizar en Greenfoot cuando desarrollábamos nuestro
juego es isKeyDown, tiene como función de mover al
objeto según la flecha de teclado que se haya presionado, funciona al momento
de presionar la tecla.
Grafica3.Greenfoot.isKeyDown
Específicos:
Ø Muchos
confunden el significado entre clase y objeto, es importante saber diferenciarlo.
Greenfoot nos proporciona una visualización de los objetos creados a través de
la invocación de los constructores, los cuales serán invocados desde la clase,
lo cual permite una mejor diferenciación entre los conceptos de clase y objeto.
Grafica4.Diferencia entre
clase y objeto
Ø En
Neatbeans cuando creamos nuestro objeto y poníamos sus métodos como por
ejemplo: Acelera (), Frena (); entre otros nosotros solo nos imaginábamos que
el comportamiento de nuestro objeto carro, que el carro al avanzaría,
aceleraría y si va muy rápido frenaría. Tenemos que entender que para que nuestro objeto realice una tarea es necesario enviarle un
mensaje.
Figura5.El comportamiento del objeto
Con esta herramienta de
Greenfoot podemos entender el comportamiento de nuestros objetos creados ,el
ver cómo se comportan nuestros objetos ,despierta el interés de querer que
nuestros objeto hague más cosas y así meternos más a lo que es programación.
Ø Si
quieren hacer el uso de la herramienta de
Greenfoot tienen que tener ya una base de lo que es herencia su característica y para qué sirve, al igual con abstracción; ya que Greenfoot al crear un objeto automáticamente se hereda y heredan de las Superclase la cual es abstracta; por eso se recomienda estudiar esos temas para que así no haiga inconvenientes al momento e hacer uso de la herramienta Greenfoot
Greenfoot tienen que tener ya una base de lo que es herencia su característica y para qué sirve, al igual con abstracción; ya que Greenfoot al crear un objeto automáticamente se hereda y heredan de las Superclase la cual es abstracta; por eso se recomienda estudiar esos temas para que así no haiga inconvenientes al momento e hacer uso de la herramienta Greenfoot
Ø Greenfoot
no es la única herramienta de a poyo existen varias y Cada herramienta aporta
distintas funcionalidades que pueden ayudarnos a cubrir nuestros propios
objetivos, y aumentar nuestro conocimiento, a medida que aumenta el nivel de
conocimiento, estos objetivos pueden variar considerablemente. Estas
herramientas te proveerán una introducción a la programación y a la
codificación de programas
A continuación se les
recomiendas estas:
Figura6.Herramientas
propuestas
X.
BIBLIOGRAFIA
DAVID, J. (21 de OCTUBRE de 2010). Obtenido
de BLUEJ:
http://www.lab.dit.upm.es/~fprg/2009-2010/entorno/mipc/bluej/index.html
DEITEL, PAUL J.,
& HARVEY M. DEITEL. (2008).
JAVA COMO PROGRAMAR. MEXICO: PEARSON.
GALICIA, B. (21 de MARZO de 2011). SLIDESHARE.
Obtenido de http://es.slideshare.net/brissiayuss/simulacion-definiciones
Gómez, R. R. (2009). Desarrollo de un
escenario basado en la. MADRID .
GUEVARA, J. M. (2011). FUNDAMENTOS DE
PROGRAMACION JAVA. MADRID: EME.
JORDISAN. (29 de SEPTIEMBRE de 2006). JORDISAN.NET.
Obtenido de http://jordisan.net/blog/2006/que-es-un-framework/
Losada, I. H. (2012). Diseño de software
educativo para la enseñanza de la POO. Móstoles,.
PEREZ, C. (15 de ENERO de 2013). CARLOSPES.COM.
Obtenido de CARLOSPES.COM:
http://es.slideshare.net/brissiayuss/simulacion-definiciones
SANCHEZ, J. (2014). JAVA 2.
XI.
REFERENCIA ELECTRÓNICA
[1]Greenfoot
[2]Manual de Uso Greenfoot
[3]Escribir programas en Java con Greenfoot
Presentado por:
CORREA PEREZ, GREYS
CHIPANA RAMOS VLADIMIR
FASABI MORALES GILMAR
MELENDRES MARIANO ANDREA
Asesor:
Ing. CRISTHIAN GARCIA VILLEGAS