APLICACIÓN DE MÉTODOS NUMÉRICOS EN UN...

5
Resumen- Desarrollo de un juego que consiste el uso de un cañón que lanza una bala a un objetivo en el cielo la trayectoria depende de los datos que ingrese el jugador. Para la implementación de los métodos numéricos estudiados, se realizó un juego en el cual se aplica un método numérico para el correcto funcionamiento del juego y dar solución al problema. El juego se desarrolló en el lenguaje de programación Python con ayuda del módulo pygame, su realización será muy básica con el desarrollo de una interfaz utilizando la ayuda de los módulos proporcionados por pygame para el manejo de las imágenes, mientras que las trayectorias se calculan aplicando uno de los métodos numéricos desarrollados en el curso de la carrera para estimar el alcance horizontal y altura máxima. Se trazan las trayectorias de proyectiles disparados con la misma velocidad inicial v0 pero con los siguientes ángulos de tiro q : 10o, 20o, 30o, 40o, 45o, 50o, 60o, 70o, 80o, 90o. Las ecuaciones del movimiento de los proyectiles son: x=v0 cos(Angulo) t y=v0 sen(Angulo) t-gt2/2. En la interfaz principal del juego se observa a nuestro objetivo el panda quien se mueve constantemente de arriba a abajo y siempre está protegido por un escudo, nosotros contamos con 4 disparos en total para lograr derribarlo. Índice términos- Aplicaciones, Juegos, Lenguaje de programación, Métodos Numéricos, Pygame, Python. I. INTRODUCTION entro del rol de estudiante de carreras profesionales y con un gran número de asignaturas de difícil entendimiento por cursar, se hace necesario crear un sistema que permita manejar la información del curso de una forma más didáctica que lo logrado con los procesos tradicionales de enseñanza. Para el correcto entendimiento de los diferentes casos de estudio es necesario tener un acceso sencillo a información como: formulas, aplicación, etc. Con este tipo de información se facilita realizar una dinámica en el aprendizaje. Por medio de este proyecto se desarrolló un juego que proporciona la interacción de conceptos matemáticos con la diversión del usuario. II. CONTENIDO Para poder realizer este trabajo nececitamos manejar diferentes herramientas entre ellas encontramos: Pygame es un conjunto de módulos del lenguaje Python que permiten la creación de videojuegos en dos dimensiones de una manera sencilla. Está orientado al manejo de sprites. También puede utilizarse para crear otros programas multimedia o interfaces gráficas de usuario. Pygame está basado en la librería SDL 1.2, una alternativa más actual de SDL en Python podría ser Py-SDL2, que implementa varias mejoras respecto a Pygame. Funciona como interfaz de las bibliotecas SDL. 1) Requesitos previos Conocimientos de Python. Se da por hecho que se manejan con soltura la creación de clases, funciones y demás. Algo de matemáticas y física básica. Para empezar con conceptos básicos de lo que es un punto matemática y algunas formulas básicas de física tenemos de sobra. APLICACIÓN DE MÉTODOS NUMÉRICOS EN UN JUEGO: TIRO AL PANDA CON CAÑON Edwin Guillermo Sandoval A. Author , Miguel Angel Daza Salamanca B. Author , Smith Leonardo Parrado Velasquez C. Author, Angel Cruz-Roa Ph.D. D. Author D

Transcript of APLICACIÓN DE MÉTODOS NUMÉRICOS EN UN...

Resumen- Desarrollo de un juego que consiste el uso de un cañón que lanza una bala a un objetivo en el cielo la trayectoria depende de los datos que ingrese el jugador. Para la implementación de los métodos numéricos estudiados, se realizó un juego en el cual se aplica un método numérico para el correcto funcionamiento del juego y dar solución al problema.

El juego se desarrolló en el lenguaje de programación Python con ayuda del módulo pygame, su realización será muy básica con el desarrollo de una interfaz utilizando la ayuda de los módulos proporcionados por pygame para el manejo de las imágenes, mientras que las trayectorias se calculan aplicando uno de los métodos numéricos desarrollados en el curso de la carrera para estimar el alcance horizontal y altura máxima.

Se trazan las trayectorias de proyectiles disparados con la misma velocidad inicial v0 pero con los siguientes ángulos de tiro q : 10o, 20o, 30o, 40o, 45o, 50o, 60o, 70o, 80o, 90o. Las ecuaciones del movimiento de los proyectiles son: x=v0 cos(Angulo) t y=v0 sen(Angulo) t-gt2/2. En la interfaz principal del juego se observa a nuestro objetivo el panda quien se mueve constantemente de arriba a abajo y siempre está protegido por un escudo, nosotros contamos con 4 disparos en total para lograr derribarlo.

Índice términos- Aplicaciones, Juegos, Lenguaje de programación, Métodos Numéricos, Pygame, Python.

I. INTRODUCTION

entro del rol de estudiante de carreras profesionales y con un gran número de asignaturas de difícil entendimiento

por cursar, se hace necesario crear un sistema que permita manejar la información del curso de una forma más didáctica que lo logrado con los procesos tradicionales de enseñanza. Para el correcto entendimiento de los diferentes casos de estudio es necesario tener un acceso sencillo a información

como: formulas, aplicación, etc. Con este tipo de información se facilita realizar una dinámica en el aprendizaje. Por medio de este proyecto se desarrolló un juego que proporciona la interacción de conceptos matemáticos con la diversión del usuario.

II. CONTENIDO Para poder realizer este trabajo nececitamos manejar diferentes herramientas entre ellas encontramos:

Pygame es un conjunto de módulos del lenguaje Python que

permiten la creación de videojuegos en dos dimensiones de

una manera sencilla. Está orientado al manejo de sprites.

También puede utilizarse para crear

otros programas multimedia o interfaces gráficas de usuario.

Pygame está basado en la librería SDL 1.2, una alternativa

más actual de SDL en Python podría ser Py-SDL2, que

implementa varias mejoras respecto a Pygame.

Funciona como interfaz de las bibliotecas SDL.

1) Requesitos previos

• Conocimientos de Python. Se da por hecho que se manejan con soltura la creación de clases, funciones y demás.

• Algo de matemáticas y física básica. Para empezar con conceptos básicos de lo que es un punto matemática y algunas formulas básicas de física tenemos de sobra.

APLICACIÓN DE MÉTODOS NUMÉRICOS EN UN JUEGO: TIRO AL PANDA CON CAÑON

Edwin Guillermo Sandoval A. Author, Miguel Angel Daza Salamanca B. Author, Smith Leonardo Parrado Velasquez C. Author, Angel Cruz-Roa Ph.D. D. Author

D

2) Qué necesitamos

• Tener Python y Pygame instalados. • Un IDE o editor de texto a elección. • Un directorio base donde trabajar. Yo he creado una

carpeta llamada pygame con dos carpetas en el interior llamadas images y sound.

¿Qué es un método numérico? Un método numérico es un procedimiento mediante el cual se obtiene, casi siempre de manera aproximada, la solución de ciertos problemas realizando cálculos puramente aritméticos y lógicos (operaciones aritméticas elementales, cálculo de funciones, consulta de una tabla de valores, cálculo preposicional, etc.). Un tal procedimiento consiste de una lista finita de instrucciones precisas que especifican una secuencia de operaciones algebraicas y lógicas (algoritmo), que producen o bien una aproximación de la solución del problema (solución numérica) o bien un mensaje. La eficiencia en el cálculo de dicha aproximación depende, en parte, de la facilidad de implementación del algoritmo y de las características especiales y limitaciones de los instrumentos de cálculo (los computadores).

La ciencia y la tecnología describen los fenómenos reales mediante modelos matemáticos. El estudio de estos modelos permite un conocimiento más profundo del fenómeno, así como de su evolución futura. La matemática aplicada es la rama de las matemáticas que se dedica a buscar y aplicar las herramientas más adecuadas a los problemas basados en estos modelos. Desafortunadamente, no siempre es posible aplicar métodos analíticos clásicos por diferentes razones:

• No se adecúan al modelo concreto. • Su aplicación resulta excesivamente compleja. • La solución formal es tan complicada que hace

imposible cualquier interpretación posterior. • Simplemente no existen métodos analíticos capaces

de proporcionar soluciones al problema.

En estos casos son útiles las técnicas numéricas, que mediante una labor de cálculo más o menos intensa, conducen a soluciones aproximadas que son siempre numérica. El importante esfuerzo de cálculo que implica la mayoría de estos métodos hace que su uso esté íntimamente ligado al empleo de computadores. De hecho, sin el desarrollo que se ha producido en el campo de la informática resultaría difícilmente imaginable el nivel actual de utilización de las técnicas numéricas en ámbitos cada día más diversos.

Ecuaciones del movimiento de los proyectiles

Cuando un objeto es lanzado al aire, éste sufre una aceleración debida al efecto del campo gravitacional. El movimiento más sencillo de éste tipo es la caida libre; pero cuando un cuerpo, además de desplazarse verticalmente, se desplaza horizontalmente, se dice que tiene un movimiento de proyectil, también conocido como movimiento parabólico.

¿Qué es un Proyectil? Un proyectil es un objeto al cual se ha comunicado una velocidad inicial y se ha dejado en libertad para que realice un movimiento bajo la acción de la gravedad. Los proyectiles que están cerca de la Tierra siguen una trayectoria curva muy simple que se conoce como parábola. Para describir el movimiento es útil separarlo en sus componentes horizontal y vertical. Por eso es importante explicar el movimiento de un proyectil como resultado de la superposición de un movimiento rectilíneo uniforme y uno uniformemente variado, estableciendo las ecuaciones de la curva representativa, tiempo de vuelo, tiempo máximo, altura máxima, alcance máximo, velocidad y coordenadas de posición en el plano. Características del Movimiento

El movimiento de un proyectil, frecuentemente se descompone en las direcciones horizontal y vertical. En la dirección horizontal el movimiento del proyectil es rectilíneo y uniforme ya que en esa dirección la acción de la gravedad es nula y consecuente, la aceleración también lo es. En la dirección vertical, sobre el proyectil actúa la fuerza de gravedad que hace que el movimiento sea rectilíneo uniformemente acelerado, con aceleración constante. Ecuaciones del Movimiento

Supondremos que el proyectil parte del origen con una velocidad V0 que forma un ángulo θo con la horizontal. Las componentes iniciales de la velocidad son:

𝑉!! = 𝑉!×  𝑐𝑜𝑠 𝜃     (1)

𝑉!! = 𝑉!×  sen 𝜃   (2) Sustituyendo estas expresiones en las ecuaciones anteriores, se obtienen las ecuaciones cinemáticas del movimiento de un proyectil:

𝑎! = 0 (3)

𝑉! = 𝑉!× cos 𝜃! (4)

𝑥 = 𝑉!×  cos 𝜃!×𝑡 (5)

𝑎! = −𝑔 (6)

𝑉! = −𝑔𝑡 +  𝑉!  ×  sin 𝜃! (7)

𝑦 = − !!×𝑔𝑡!×𝑉! sin 𝜃!×𝑡 (8)

Python es un lenguaje de programación interpretado cuya

filosofía hace hincapié en una sintaxis que favorezca un

código legible.

Se trata de un lenguaje de programación multiparadigma, ya

que soporta orientación a objetos, programación imperativa y,

en menor medida, programación funcional. Es un lenguaje

interpretado, usa tipado dinámico y es multiplataforma.

Es administrado por la Python Software Foundation. Posee

una licencia de código abierto, denominada Python Software

Foundation License,1 que es compatible con la Licencia

pública general de GNU a partir de la versión 2.1.1, e

incompatible en ciertas versiones anteriores.

Características y paradigmas

Python es un lenguaje de programación multiparadigma. Esto

significa que más que forzar a los programadores a adoptar un

estilo particular de programación, permite varios

estilos: programación orientada a objetos, programación

imperativa y programación funcional. Otros paradigmas están

soportados mediante el uso de extensiones.

Python usa tipado dinámico y conteo de referencias para la

administración de memoria.

Una característica importante de Python es la resolución

dinámica de nombres; es decir, lo que enlaza un método y un

nombre de variable durante la ejecución del programa

(también llamado enlace dinámico de métodos).

Otro objetivo del diseño del lenguaje es la facilidad de

extensión. Se pueden escribir nuevos módulos fácilmente

en C o C++. Python puede incluirse en aplicaciones que

necesitan una interfaz programable.

Aunque la programación en Python podría considerarse en

algunas situaciones hostil a la programación funcional

tradicional del Lisp, existen bastantes analogías entre Python y

los lenguajes minimalistas de la familia Lisp como puede

ser Scheme.

III. RESULTADOS En una primera interfaz encontramos nuestro objetivo que es el panda el cual esta fuertemente cubierto por su fiel amigo el escudo, este lo proteje de cualquier tiro directo dificultando nuestra mision, podemos ver el numero de intentos totales que tenenmos para poder ganar y un logo de la unillanos el cual nos permite optener una ventaja que es dejar indenfenso al nuestro opjetivo, sacrificando un disparo y algo de fuerza, en esta version podemos medir la fuerza traves de la fleche negra que vemos, con el movimiento del raton podemos ingresar datos como el Angulo siendo un maximo de 90 grados, y la fuerza, atravez del vector fuerza que lo podemos identificar con la fleche negra.

Cuando logramos acertar al logo de la Universidad de los llanos dejamos indefenso a nuestro objetivo, podemos ver como cambia de forma, acausa de este veneficio perdemos fuerza en el disparo.

En el momento que le damos al escudo logramos generar una estatica la cual nos muestra lo fuerte que es este, y comprobandonos que no podremos realizer un tiro directo para venser a nuestro enemigo cuando tiene el escudo.

En en caso que no logremos venser al panda con las oportunidades que se nos permiten, se nosmostrara una imagen en la cual vemos como nuestro objetivo se regocija por lograr superarnos.

En le momento en que el logramos venser a nuestro rival se podra opservar como el simula su derota.

IV. CONCLUCIONES Se logro generar un softwar interactivo, didactico que nos permite integrar el conocimiento de los metodos numericos en un juego, despertando interes sobre el manejo de las matematicas por parte de niños y adultos. Teniendo en cuenta las tecnologias utilizadas se puede concluir que la realizacion de software didactico utilizando matematicas de cualquier tipo (metodos numericos, geometrias entre otras), es factible atraves de tecnologias libres. Como punto de desarrollo se ve como con pocos recursos y con la utilizacion de software a nuestro alcanse podemos llevar a otro nivel el analisis de las matematicas, generando opciones de explicarlo de una manera mas didactica a las opersonas de nuestro alrededor.

V. REFERENCIAS http://espaciodeltie.blogspot.com.co/p/introduccion.html http://es.slideshare.net/vicenteegalvez/ecuaciones-y-modelos-del-movimiento-de-proyectiles https://www.python.org/ https://es.wikipedia.org/wiki/Python https://www.codecademy.com/es/tracks/python-traduccion-al-espanol-america-latina-clone-1 http://www.pygame.org/hifi.html https://en.wikipedia.org/wiki/Python_(programming_language) http://razonartificial.com/tutoriales-pygame/ https://wiki.python.org/moin/PyGame https://es.wikipedia.org/wiki/Pygame

VI. AUTORES

Edwin Guillermo Sandoval Lozano, Estudiante de ingenieria de sistemas de la Universidad de los Llanos Septimo semester.

Miguel Angel Daza Salamanca, Estudiante de ingenieria de sistemas de la Universidad de los Llanos Septimo semester. Smit Leonardo Parrado Velazques, Estudiante de ingenieria de sistemas de la Universidad de los Llanos Septimo semester.

Ángel Alfonso Cruz Roa, Eng, M.Sc, Ph.D, Profesor de tiempo completo - Universidad de los Llanos, Ingeniero de sistemas de Universidad de los Llanos en 2005, terminó el Master en Ingeniería Biomédica e inicia el Doctorado en Sistemas y Computación en 2010 en la Universidad Nacional de Colombia gracias concesión de doctorado de COLCIENCIAS a las enseñanzas de doctorado en Colombia.