Post on 13-Jun-2015
Dra. Sara Elena Garza
Segunda Entrega del Proyecto
“Programación de sistemas adaptativos”
Segunda entrega de proyecto
Integrantes del proyecto
Gisella Margarita Tamez González 1496111
Irma Patricia González Badillo 1481215
Jesús Eduardo Fermín Tamez 1482056
Juan Manuel Garza Garza 1452301
Resumen del Proyecto
Nuestro proyecto esta basado en una aplicación de android llamada line-runner, la cual consiste en un personaje que se encuentra corriendo sobre una línea horizontal y que al momento de presentársele un obstáculo, en este caso, un cuadrito, sea capaz de esquivarlo mediante un salto.
Planeación para la 2nda entrega
Actividad Descripción Fecha Recursos
Actividad 1 Lectura y aprendizaje de python
22/08/12 - adelante
Tutorial en línea de python (youtube)Libro: “Python para todos”Internet: aprenderpython.org
Actividad 2 Análisis de las librerías a utilizar
24/08/12 – 26/08/12
Internet:-python.org-http://docs.python.org/library/-Sugerencias y consejos de alumnos que cursaron la materia
Actividad 3 Investigación de pygame
Investigación de pybrain
27/08/12 - adelante Pygame.orgPybrain.org
Actividad 4 Desarrollo de la interfaz grafica (avance)
28/08/12 – 02/09/12
Pygame.orghttp://pythonmania.wordpress.com
Actividad Descripción Fecha Recursos
Actividad 5
Investigación de redes neuronales
03/09/12 – 07/09/12
Pybrain.orghttp://www.iac.es/sieinvens/SINFIN/Sie_Courses_PDFs/NNets/confiac.pdf
Actividad 6
Desarrollo del sprite de nuestro personaje principal
08/09/12 Gimp (programa para editar imágenes)
Entrega 2 - Resumen del proyecto- Avance- Recursos- Diseño de solución- Organización y
ortografía
18/09/12 Recursos mencionados en el transcurso de la presentación
¿Por qué es adaptativo?
Este proyecto es adaptativo desde el momento en que nuestro personaje estará familiarizado con el escenario en el cual se desarrollará el juego, y pueda ser capaz de identificar cuáles son los peligros a los cuales se va a tener que estar enfrentando, aquellos a los que tendrá que aprender a esquivar o evitar, para así lograr su objetivo.Al momento de hacer esto el personaje se encontrará adaptándose a su plataforma, razón por la cual éste proyecto será adaptativo.
Modificaciones Realizadas
En éste transcurso de tiempo, mientras fuimos averiguando más sobre nuestro proyecto, las herramientas necesarias y la información requerida para poder llevarlo acabo, nos encontramos con algunas dificultades al momento de usar java, ya que ninguno de nosotros ha trabajado con el anteriormente, por lo cual hemos decidimos cambiar ésta herramienta que habíamos elegido utilizar, por Python, ya que éste es un lenguaje de programación un poco más amigable, con el cual hemos estado trabajando en el laboratorio de ésta materia.
Avance¿Qué hemos Hecho?
Para empezar ya definimos el lenguaje que utilizaremos, que es Python, ya decidido esto definimos el método mediante el cual haremos que nuestro proyecto sea adaptativo, el cual es Redes neuronales, así que ya comenzamos a investigar más a fondo sobre el tema
También ya tenemos hecho el sprite el cual se encargará de hacer la simulación de el movimiento de nuestro personaje principal. Además, nos dimos cuenta que necesitamos hacer uso de las librerías pygame y pybrain (la cual se encargará de proporcionarle inteligencia a nuestro personaje) por lo cual ya comenzamos a investigar, y ya empezamos el diseño de el diagrama de clases.
Otro Avance: Interfaz Gráfica
Código de nuestra interfaz
Sprite de nuestro Personaje Principal
Avance¿Qué nos falta por hacer? ¿Ha habido
problemas?Lo que nos falta por hacer es investigar más a fondo las librerías, sobretodo la pybrain, que es de las más importantes en todo el desarrollo del juego, también, aunque ya comenzamos a trabajar en el movimiento del sprite, nos hemos topado con varias dificultades, como que se nos empalma una imagen con otra o dejan rastro, y también, a pesar de que hemos investigado sobre redes neuronales aún no sabemos cómo podemos aplicarlas al programa ni como usar bien la librería pybrain.
RecursosLibro “Python para todos” es un libro sobre programación en Python escrito por Raúl González Duque. Se trata de un tutorial de Python adecuado para todos los niveles.
Tutorial de pythonhttp://aprenderpython.com/
Videos Relacionados:http://www.youtube.com/watch?v=sADWnGsTLFk
http://www.youtube.com/watch?v=MrJD4GJuRVo&feature=list_other&playnext=1&list=SP46E99FE946C1C946
http://www.youtube.com/watch?v=8yF8fo7rNvQ&list=UUWDzmLpJP-z4qopWVA4qfTQ&index=24&feature=plcp(Aprende python desde cero)
• Tutorial de como hacer juegos en python donde incluye los sprites:– http://pythonmania.wordpress.com/2010/03/25/tutorial-
pygame-2-ventana-e-imagenes/– http://www.pygame.org/news.html
• Mario Bros:– http://www.slideshare.net/Slidemora/super-mario-quien-
es-y-las-mario-ai-competitions
• Librerías Utilizadas en Python:– http://pybrain.org/– http://python.org/
• Redes Neuronales:http://profesores.elo.utfsm.cl/~agv/elo329/1s10/projects/reports/OlavarriaChacon/index.html
Descripción de los recursos y conocimiento
adquiridoNuestros principales recursos fueron los 2 tutoriales (de youtube y de aprenderpython.com) y el libro de “Python para todos” los cuales nos ayudaron a familiarizarnos y aprender este nuevo lenguaje (para nosotros). Gracias a esto ya sabemos realizar programas sencillos en python.La librería pygame nos ayuda con la interfaz grafica, los sprites y las colisiones. Aun nos falta mas conocimiento de esta valiosa librería pero ya aprendimos ha hacer nuestro entrono grafico.Aprendimos que si usamos la librería pybrain nos podrá ayudar con nuestra red neuronal, ya que esta tiene los recursos necesarios para que nuestro personaje se adapte a su entorno
Nos basamos en la tesis de Mario Bros para darnos una idea de como detecta los obstáculos, como los evade y que fue lo que realizo. Con la ayuda de este recurso logramos identificar que nos queremos ir por redes neuronales y aplicarlo a nuestro proyecto.El conocimiento adquirido de las redes neuronales será para el personaje que será dotado de una red neuronal entrenada para ir desde su posición inicial hasta su posición final. El problema de encontrar un buen camino entre dos puntos está restringido a 2 habilidades que debe aprender el personaje:– Evadir obstáculos.– Dirigirse y acercarse progresivamente hacia el objetivo.
Diseño de la Solución
Módulos:– Main:
• En este modulo será el que contenga las funciones de nuestro programa para posterior mente mandarlas llamar
– Gráfico:• Este modulo se refiere a la interfaz en el cual
interactúan el personaje principal con los obstáculos e incluye todas las imágenes que utilizaremos para que esto sea posible
– Redes Neuronales:• Aquí es donde aplicaremos el área adaptativa, ya que
aquí se le dará “cerebro” a nuestro personaje principal para que el mismo pueda esquivar los obstáculos que se le presenten
MainImport randomImport pygame
Form pygame.locals import *
Se desarrolla en
Personaje_Principal
ImagenesEstado
Movimiento ();
Sprite();
Red_NeuronalImport pybrain
Decide movimientos a partir de:
Obstáculos
Random
Saltara
Tiene
GraficoTux
Lineafondo
Reload ();
Random ();
Tiene un
Diagrama de
ClasesUML