domingo, 13 de diciembre de 2015
viernes, 11 de diciembre de 2015
proyectos del curso de Taller de Programación 1
Proyecto de herramientas con el SoftWare GreenFoot.
- Aquí se muestra como se hizo un aplicativo. en este caso es un juego, se hizo en grupo de 4 alumnos de la facultad de Ingeniería en Informática y Sistemas de la Universidad Agraria de la Selva (UNAS). Espero que sea de gran ayuda para ustedes. revisen y publiquen en los comentarios cualquier duda sobre como se hizo.
- nota: solo redirijan se al enlace de abajo
- En el siguiente proyecto se muestra un aplicativo que te permite registrar animales.
- Se hizo con todos los conocimientos adquiridos en el curso de TP1 espero que les sirva este material
- En el enlace encontraran información, imágenes, diapositiva y el código de los 2 programas asi como el programa GreenFoot y las librerías del registro de animales.
miércoles, 2 de diciembre de 2015
informe del grupo 6
2.
Introducción
Este
proyecto esta hecho por alumnos de la facultad de ingeniería informática y
sistemas de la universidad agraria de la selva UNAS los cuales trabajamos el
proyecto repartiendo las clases según su complejidad y pretende demostrar los
conocimientos de programación mediante el uso de la visualización de los
objetos representados por entidades dentro de la simulación de un clásico juego
de “PING PONG”, en el cual los objetos y clases cumplen las expectativas de
aprendizaje del curso y además logra expresar el funcionamiento de los conceptos
de clases métodos herencia y demás conocimientos adquiridos durante el curso
El
programa es simple y conciso tanto en su funcionalidad, programación y diseño
esta simplicidad deja ver lo simple que es el paradigma orientado a objetos.
El
juego en sí, es una representación de grafica de un partido de tenis, en donde
el actuador principal o jugador es una persona que controla una raqueta
mediante el teclado mientras que el adversario es una raqueta que tiene
movimientos basados en la pelota pero con un una velocidad menor, la pelota es
un objeto que tiene atributos que le permiten colisionar contra las paredes y
las raquetas. Esto es lo que vendría a ser el juego en sí y cada una de las
entidades del juego es representada por una clase y sus respectivos objetos
3.
INDICE
4. Objetivo (generales y específicos)
Generales: Desarrollar una aplicación, la cual nos permite observar gráficos y simulaciones
en 2d. En la cual usaremos nuestros conocimientos de aprendidos de programación
en java de manera más divertida e interactiva. Y de esta manera los usuarios puedan
divertirse y mostrar sus habilidades y destrezas en los juegos.
Específicos:
Investigar
sobre el lenguaje de programación que utilizaremos “GREENFOOT”.
Diseñar
una aplicación: diagrama de bloques, pantallas.
Desarrollar
e implementar los temas de manera concisa.
Realizar
la muestra del funcionamiento del juego.
5. Definición de la herramienta tecnológica
Greenfoot
es una herramienta didáctica de aprendizaje de programación en java. Es un
entorno integrado de desarrollo (IDE) y programación que facilita la escritura
de los juegos y simulaciones (en dos dimensiones) en lenguaje java con fines
educativos. El lenguaje incluye por defecto un buen número de escenarios de
ejemplos y documentación la cual permite que los menos expertos se familiaricen
con el manejo.
Greenfoot
es un proyecto de software libre y gratuito desarrollado en la Universidad De
Kent (UK) que combina por igual un entorno de desarrollo visual con forma de
rejilla bidimensional (adecuado para los principiante), y un editor
convencional para desarrollar código al estilo tradicional, con un visor de
clases, editor, compilador, ejecución, etc.
6. Descripción del programa a desarrollar
El
nombre viene por el sonido de Ping que hacia la pelota de celuloide al impactar
con las raquetas recubiertas en pergamino y el sonido de Pong al contacto de la
pelota con la mesa. Se requiere de una pelota, paletas, y una mesa.
El
ping pong puede ser jugado por dos personas o por dos parejas, debido a que es
un juego sumamente popular, y sobre todo en los países asiáticos. Y no hay que
olvidar que es una disciplina olímpica desde hace varios años lo que lo hace un
deporte de Mayor categoría.
Referente
a nuestra aplicación se tratara de emular lo necesario para que los usuarios
sientan satisfechos y la experiencia sea muy parecido a la realidad.
Clase Mundo:
Ping Pong:
Conformado por todos los objetos de la clase actor, la cual permite elegir
opciones como modo de jugador, variables de las teclas para el movimiento,
tamaño y color de los objetos, y también
muestra puntos necesario para ganar.
Clase Actores:
Ball: Representa a la bola
la cual se desplaza a cierta velocidad, tiene tamaño y color específicos la
cual emula una colisión con la bat (raqueta)
Bat: Conformado por dos
raquetas que se mueven eje “Y” la cual se puede contralar por jugador y la otra
por máquina.
Button:
Conformado por las opciones del juego que el usuario tendrá en cuenta al
momento de iniciar la aplicación.
InfoBar:
Muestra información detallada de los jugadores y una puntuación de cada
lanzamiento que se anota.
Menú: Muestra
la opciones generales del aplicación que estamos desarrollando al momento de iniciarlo.
7.Marco conceptual
a. Antecedentes (Donde lo utilizaron)
Esta
herramienta fue diseñada e implementada en la Universidad de Kent (Inglaterra)
y por la Universidad Deakin (Melbourne, Australia).
El
diseño de Greenfoot está inspirado originalmente considerando la combinación de
características de dos de los más populares tipos de entornos de enseñanza: “microworlds”
(micromundos), como “Karel te Robot” y entornos de interacción directa como el
BlueJ. Uno de los puntos fuertes de los “micromundos” es la visualización excelente
de los objetos, su estado y su comportamiento. Pero carece por otro lado, de un
medio para la interacción directa de los objetos.
b. Marco conceptual (5 hojas)
Concepto
Greenfoot
es un programa informático visual e interactivo que utiliza Java para crear
juegos, simulaciones y otros programas gráficos. Java utiliza la orientación a
objetos, un paradigma de programación que representa conceptos como objetos.
Los objetos tienen campos de datos que describen el objeto, así como los
procedimientos asociados que se hace referencia como métodos. Un programa
orientado a objetos se puede considerar como una colección de objetos que
interactúan mientras que un modelo de programación convencional se ve como una
lista de tareas que se llevan a cabo mediante programación.
El
entorno de desarrollo interactivo Greenfoot se puede utilizar para aprender
orientado a objetos de programación Java sin tener que crear un entorno de
programación que utiliza el lenguaje y reglas complejas. Usando Greenfoot,
puede crear objetos y luego crear instrucciones de programación para dar a los
objetos de la capacidad de interactuar con otros objetos en la ventana de
Greenfoot
Componentes
·
El
mundo. Se llama mundo al área más grande que ocupa la mayor
parte de la pantalla (una rejilla de color tierra en este caso). Es donde el
programa se ejecutará y verás lo que ocurre. Variará su apariencia
en función del escenario que carguemos, ya que cada uno tiene un Mundo por
defecto (en este caso es ‘WombatWorld“)
·
El
diagrama de clases. Se llama diagrama de clases al área de la
derecha con cajas y flechas de color beis. Ahí nos aparecen tanto las
clases de Mundo que tenemos disponibles y las clases de Actores (‘Wombat‘ y
‘Leaf’) a partir de las cuales crearemos los objetos que incluiremos en el
mundo elegido.
·
Los
controles de ejecución. Los controles de ejecución son los
botones Accionar, Ejecutar, y Reiniciar y la barra inferior para ajustar la
velocidad. Volveremos también más tarde con ellos.
Características
A
partir de ahí, se puede hacer clic izquierdo sobre las clases en el panel
derecho y elija si desea agregar al mundo (al seleccionar la opción y luego
seleccionando la celda para poner el objeto en), o si se debe abrir y editar el
código fuente. El editor de código lleva un par de características interesantes,
incluyendo "ir al número de línea", un buscador de ubicación en el
lado derecho, y los colores de fondo para determinar qué partes del código van
de la mano.
·
Hacer
objetos actúa: Haga clic en el botón ‘Act’ en los controles
de ejecución. Cada objeto ahora actúa – es decir: cada objeto hace lo quiere
hacer.Lo que se quiera hacer con los objetos depende de cómo se definen los
comportamientos de ellos, es decir, qué se puede hacer. En este ejemplo, las
hojas no definen comportamientos, mientras que Wombat avanza. Se recomienda
probar esta práctica, colocando dos osos australianos en el mundo, al pulsar el
botón ‘Act’, ambos se moverán.
A un
Wombat también le gusta comer hojas. Si al desplazarse, en su camino, encuentra
una hoja, se la puede comer.
·
Ejecutar
un escenario: Haga clic en el botón "Run". Esto
es equivalente a hacer clic en el botón de ‘Act’ una y otra vez, muy
rápidamente. Verá que el botón “Run” cambia a un botón de 'Pausa'. Este botón
permite detener temporalmente la ejecución.
El
control deslizante, que está junto a los botones de “Act” y “Run” establece la
velocidad. Para probar esto, hacer clic en “Run” y, a continuación, cambiar el
regulador y se verá el cambio en la velocidad.
·
Invoque
directamente métodos: En lugar de simplemente ejecutar el
escenario completo, también pueden invocar un solo método. Un método es una
acción que un objeto puede realizar.
Asegúrese
de que tiene un wombat en el mundo, y no se está ejecutando el escenario. A
continuación, haga clic en el wombat, y verá que los objetos del mundo también
tienen un menú emergente.
·
Invocar
un método de mundo: Hemos visto que los objetos en el mundo
tienen métodos que puede invocar a través de un menú emergente. El mundo es
también un objeto con métodos que se pueden invocar.
En
la sección anterior hemos visto cómo crear nuevos mundos. Ahora queremos
invocar un método del objeto World.
Sobre
el mundo hay un título que muestra el nombre del mundo: "WombatWorld"
en nuestro caso. Uno de los métodos de este menú es 'populate()'. Pruebe. Es un
método que crea varias hojas y osos australianos (wombat) y los coloca en el
mundo. A continuación, puede ejecutar el escenario.
Otro
método de mundo es 'randomLeaves(int howMany)'. Este método coloca algunas
hojas en el mundo en ubicaciones aleatorias. Tenga en cuenta que este método
tiene algunas palabras entre paréntesis tras su nombre: howMany int. Esto se
llama un 'parámetro'. Esto significa que debe especificar algunos bits adicionales
de información al invocar este método. El término 'int' le dice que se espera
un número entero, y 'howMany' sugiere que debe especificar cuántas hojas que
desee.
Al
invocar este método, un cuadro de diálogo aparecerá, el que le permite introducir
un valor para este parámetro. Introduzca un número y hacer clic en Aceptar.
Se
puede observar, si contamos, que a veces parece como si el número especificado
de hojas es menor que las que se crearon. Esto es porque algunas hojas pueden
estar en el mismo lugar y se encuentra
por encima de la otra.
·
Cambiar
el comportamiento de un objeto: Puede programar sus propios
objetos, Wombat, o cualquier cosa que te gusta, escribiendo código Java para la
clase del objeto. Eso es lo que haremos ahora.
Haga
doble clic en la clase Wombat en la pantalla de clase. Abre un editor de texto
y verá el código fuente de Java para la clase de Wombat.
Lo
primero que queremos hacer es cambiar el comportamiento del wombat modo que,
cuando no puede avanzar, resulta una dirección aleatoria en lugar de siempre
girando a la izquierda. Para lograrlo, primero agregamos un método
'turnRandom()'. Agregue el método siguiente a la clase Wombat:
A
continuación, se modifica el método 'act()' para hacer uso de turnRandom. El
método act() actualmente Lee:
Sustituir
la llamada a 'turnLeft()' en el final con una llamada a 'turnRandom()'.
Después
de hacer este cambio, se debe probar. Para esto hacer clic en el botón
'Compilar' en el editor. Si se muestran los errores, corregir y volver a
compilar. Repita esto hasta la clase compila sin errores. Ahora puede cerrar el
editor.
c. Definiciones operacionales (Palabras
claves)
·
Los objetos tienen métodos. Al invocarlos,
realizan una acción.
·
El tipo de vuelta de un método especifica lo
que la llamada a un método devolverá.
·
Un método con un tipo de vuelta void no
devuelve ningún valor.
·
Los métodos con tipos de vuelta void
representan órdenes; los métodos con tipos de vuelta diferentes de void
representan preguntas.
·
Un parámetro es un mecanismo para pasar datos
adicionales a un método.
·
Los parámetros y los tipos de vuelta tienen
tipos. Algunos ejemplos de tipos son int para números y boolean para valores
cierto/falso.
·
La especificación de un método, que muestra
su tipo de vuelta, nombre, y parámetros se llama signatura.
·
Los objetos que pueden ser colocados en el
mundo se conoce como actores.
·
Una subclase es una clase que representa una
especialización de otra. En Greenfoot, esto se muestra con una flecha en el
diagrama de clases.
·
Cada clase se define por su código fuente.
Este código define lo que los objetos de esta clase pueden hacer. Podemos ver
el código fuente abriendo el editor de la clase.
·
Los ordenadores no entienden código fuente.
Necesita ser traducido a código máquina antes de ejecutarlo. Esto se denomina
compilación.
8. PRUEBAS
DE DESARROLLO
En las pruebas de desarrollo dividimos en partes al juego
para encontrar más fácil los errores que pudiese surgir en la construcción del
juego
Así por ejemplo nos encontramos con este error cuando
comenzábamos a dibujar la bola no teníamos la forma deseada así que
investigando en internet encontramos que tenía que ser de la siguiente forma
para que la bola sea completamente redonda poner la posición de x e y en 0 para
que se ubique en el centro y el tamaño de la bola.
Una vez corregido esto
ubicamos la posición correctamente y dimos el tamaño adecuado
Como hacer que la
bola cambie de color cada vez que toque el Bat de cada uno de los jugadores: en un principio pensábamos hacer que la bola sea de un
solo color para el juego, pero luego vimos que sería mejor que cambiara de
color cada vez que toque el Bat para que el jugador pueda guiarse mejor así que
investigando implementamos este método para que haga lo deseado
9. IMPACTO ESPERADO
El impacto que obtuvimos al utilizar esta herramienta de
software no sabíamos cómo crear un escenario para crear el juego que teníamos
de idea, luego mediante tutoriales fuimos aprendiendo rápido para que servía cada
uno de las opciones que brindaba GreenFoot así como utilizar las imágenes que
tiene por defecto. La dificultad más grande que tuvimos sería poner el tamaño
de la bola y el bat y darle el movimiento. Pero en general fue fácil e
interactivo crear un juego en esta herramienta de software.
10.
CODIFICACION
Comenzamos a crear cada uno de los objetos por separado
para hacer que sea más rápido la creación del juego comenzamos con el principal
PingPong.
·
Importamos las
librerías que vamos a utilizar
·
Creamos los atributos
a utilizar
·
Creamos lo métodos de
la clase
BatState nos da el estado de cada uno de los jugadores
que hay en pantalla
GameState nos da cada uno de los componentes del juego
GameType tipo de jugador.
·
Teclas de los jugadores
·
Constructor del
PingPong
·
Método principal del
PingPong
Acá especificamos las direcciones, tamaño y posición de
los objetos creados como Ball, Bat, Button, InfoBar, Menú
Lo colocamos en casos para que especifique cada acción
que tenga el juego como ADDING_GAME, WAITING, RUNNING
·
Con GreenFoot se
puede poner de fondo las imágenes que tiene predeterminadas, importar otra
imagen o crear una de formato jpg
·
Obtener un punto
Este método hace que
si pasa la bola del bat se obtenfga un punto y vuelva al centro la bola.
·
Colocar el texto
Los siguientes
métodos don para direccionar el texto en la posición deseada
·
Obtiene el estado del
bat y retorna la tecla
·
Métodos para ubicar
la imagen
·
Getters y Setter de
objetos y atributos
El objeto Ball
·
Librerías y atributos
Colocamos final al
color de la bola porque cada vez que se comience la bola comenzara en negro una
vez que toque cada uno de los bates recién cambiara de color
·
Acciones de la bola
Se mueve a la velocidad que se le asigna en consola, así
como cambia de color al tocar cada bat y al obtener un punto regresa al centro.
·
Posiciones de la bola
Aquí se especifica
cuando toca el bat y gana un punto
·
Se pone el color,
posición, Angulo y se añade al principal
El objeto bat
·
Importamos las
librerías a usar y declaramos los atributos
·
Definimos la
dirección y posición del bat
·
Creamos los métodos
para dar la localización y hacia donde se moverá el bat.
goTo: acción para que se mueva el bat
setLocation: cambiar la dirección del bat
handleMovement: maneja el movimiento del bat
·
Agregar al principal
el bat
·
Métodos del bat
El objeto Button
·
Librerías y atributos
·
Métodos y acciones
del botón
MouseCliked: evento al hacer clic sobre el botón con el
mouse
addedToWorld: agrega al principal los botones
act: llama al evento al hacer clic con el mouse
El objeto InfoBar
·
Librerías y objeto
imagen
·
Acciones de la barra
de información
Act: dibuja la imagen las líneas y el texto
addedToWorld: agrega al principal la información de la
barra
getPingPong: envía la InfoBar al principal
El objeto Menú
·
Librerías y atributos
del menú
Se crea la imagen de tipo GreenFoot, los jugadores al
elegir el botón, el texto y estado del juego
·
Acá se escribe lo que
va a ir en el menú , generalmente se escribe las palabras que van en el juego,
como por ejemplo “Escoger con quien
jugar” o una vez que gane uno de los jugadores “Gano el jugador 1!!!”
·
Aquí se especifican
los métodos del menú
startGame:
aquí se agrega al principal los métodos
menú:
se da el parámetro de estado
11. Conclusión
La programación
orientada a objetos permite la optimización del código generado, gracias a que
mediante técnicas de herencia, atributos estáticos entre otros permiten, que el
código sea genérico de manera que sea reutilizable. Mediante la
técnica aprendida en el presente curso podemos establecer una solución
primitiva de un problema real, tan solo con relacionarlo con objetos lógicos
que serán usados para el desarrollo del software. Podemos dar a
conocer de una forma sencilla los mecanismos que se usan en este nivel de
programación, a personas que deseen una explicación rápida y sencilla de lo que
es la programación orientada a objetos. Tenemos los conocimientos necesarios
como para enfrentar un problema real y desarrollo en otro lenguaje de
programación, pues concebimos la idea de que el lenguaje C es la base de la
programación. Al trabajar con la programación orientada a
objetos sea esta desarrollada en otras plataformas de programación o en
lenguaje C, sabemos las formas de lograr un mejor rendimiento del equipo a
controlar y aplicar soluciones sencillas, de manera que sea fácilmente
digeribles para el usuario y/o destinatario del trabajo final.
12.
Recomendación
ü Tener conocimiento básico en micro controladores y
lenguaje de programación.
ü Java facilita el entendimiento y programación de las
sentencias.
ü Entienda
lo que está haciendo: Importante es enterarse de que está pasando y que estas
elaborando.
ü Domine
el paradigma de orientación a objetos.
ü Preste atención a los errores.
ü No
se acostumbre al copy & paste.
13.
Bibliografía
Suscribirse a:
Entradas (Atom)