Segunda entrega de proyecto

21
Dra. Sara Elena Garza Segunda Entrega del Proy “Programación de sistemas adaptativos”

description

Segunda entrega del proyecto de la materia "Sistemas Adaptativos"

Transcript of Segunda entrega de proyecto

Page 1: Segunda entrega de proyecto

Dra. Sara Elena Garza

Segunda Entrega del Proyecto

“Programación de sistemas adaptativos”

Page 2: Segunda entrega de proyecto

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

Page 3: Segunda entrega de proyecto

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.

Page 4: Segunda entrega de proyecto

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

Page 5: Segunda entrega de proyecto

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

Page 6: Segunda entrega de proyecto

¿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.

Page 7: Segunda entrega de proyecto

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.

Page 8: Segunda entrega de proyecto

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

Page 9: Segunda entrega de proyecto

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.

Page 10: Segunda entrega de proyecto

Otro Avance: Interfaz Gráfica

Page 11: Segunda entrega de proyecto

Código de nuestra interfaz

Page 12: Segunda entrega de proyecto

Sprite de nuestro Personaje Principal

Page 13: Segunda entrega de proyecto

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.

Page 14: Segunda entrega de proyecto

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/

Page 15: Segunda entrega de proyecto

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)

Page 16: Segunda entrega de proyecto

• 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/

Page 17: Segunda entrega de proyecto

• Redes Neuronales:http://profesores.elo.utfsm.cl/~agv/elo329/1s10/projects/reports/OlavarriaChacon/index.html

Page 18: Segunda entrega de proyecto

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

Page 19: Segunda entrega de proyecto

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.

Page 20: Segunda entrega de proyecto

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

Page 21: Segunda entrega de proyecto

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