lunes, 11 de julio de 2016

Juegos 2d con python y pygame

Todos tenemos un área de la programación que nos atrae, hay quienes prefieren estar  prácticamente en todas partes   gracias a la programación web, otros que se sienten identificados con el desarrollo móvil y su popularidad actual, también están aquellos que se  dedican a las aplicaciones de escritorio e incluso hay quienes dedican tiempo a todas.


 Por mi parte desde que era un niño siempre me llamaron la atención los videojuegos pero a esa edad no imagine programarlos , sin embargo cuando curse mi carrera en la universidad y en cada asignatura relacionada con la programación siempre practicaba tratando de elaborar un videojuego, pero como mi primer lenguaje de programación fue: C , muchos me comentaban que era complicado y que ese no era un lenguaje para aficionados y decaí un poco en mi afán de programar videojuegos.


Más adelante tuve la oportunidad de cursar python  en una materia llamada: inteligencia artificial y cuyo proyecto final era programar un videojuego en python y pygame,  y desde allí recobre un poco el interés por el  desarrollo de videojuegos, siempre fue creyente de iniciar con cosas pequeñas e ir creciendo poco a poco, pensar en proyectos que pueda terminar para mantenerme motivado.


Les presento un básico videojuego mata marcianos, al cual llame defensor y me inspire en juegos clásicos como galaga, galaxian y el recordado space invanders, consta de 11 niveles y a partir del nivel 6 aparecen enemigos un poco más inteligentes y no podría faltar el clásico jefe final.
El juego también cuenta con ítems que pueden aumentar nuestras posibilidades de ganar.









  • Programado en python 2.7 y pygame 1.9.
  • Gráficos echos con corel draw.
  • Sonidos extraídos de las paginas:    sonidos 1sonidos 2                                                                                                                                                

Mi hermano moisés , me ayudo con el diseño y los gráficos, supongo que comparte el entusiasmo de los videojuegos conmigo :-).


Codigo del juego: aqui






   

sábado, 9 de julio de 2016

Practica basica de reportlab con python

Les presento una pequeña practica de reportlab donde muestro:

  •  como pintar figuras básicas (rectángulos,círculos, lineas)
  • como agregar texto.
  • como cargar imágenes.
  • como abrir automáticamente el archivo pdf creado.

Como material de apoyo para la practica les de:


                                                             codigo_tutorial


Medidas por defecto de un documento pdf creado con python y reportlab.

Archivo pdf con lineas guía para ubicar las coordenadas en el documento.





Introduccion a reportlab

Reportlab es una librería  para el lenguaje de programación python, orientada a objetos, que ofrece módulos para la creación de documentos pdf a partir de código .

Es de gran utilidad ya que la emisión de reportes y comprobantes  en ocasiones son requerimientos de ciertas aplicaciones, situación que en ocasiones puede resolverse exportando datos en formato pdf.
Esta librería nos permite utilizar un gran número de opciones  para nuestros documentos, entre lo que podemos usar se encuentran:

·         Texto, dibujo e imágenes (formas básicas): Objeto  canvas, donde.

Ø  Mostrar texto: canvas. drawString (pos_x, pos_y,”Texto”).
Ø  Mostrar imagen: canvas.drawImage (“archivo”, inicio_x, incio_y, ancho, alto).
Ø  Líneas: canvas.line (inicio_x, inicio_y, fin_x, fin_y).
Ø  Rectangulos: canvas.rect (inicio_x, inicio_y, ancho,alto,stroke=1,fill=0).
Ø  Círculos: canvas.circle (inicio_x, inicio_y, radio, stroke=1,fill=0).
Ø  Cuadricula: canvas.grid(lista_puntos_x,lista_puntos_y)
Ø  Arco: canvas.arc(inicio_x,inicio_y,fin_x,fin_y)
Ø  Elipse: canvas.ellipse(inicio_x,inicio_y,fin_x,fin_y,stroke=1,fill=0)

Donde stroke se refiere al ancho de las lineas de borde de la figura y fill se refiere al tipo de relleno que tendra la figura.

·         Tablas:
Ø  Objeto: Table()
·         Gráficos:
Ø  Gráficos de barras: Objeto   VerticalBarChart()
Ø  Gráficos de líneas: Objeto  HorizontalLineChart()
Ø  Gráficos circulares: Objeto Pie()

Para visualizar todas las opciones que nos ofrece esta librería, recomiendo consultar la documentación que esta disponible para su descarga, desde su  página oficial, de la cual extraje las siguientes capturas:





martes, 5 de julio de 2016

Un tutor matemático echo en python (ecuaciones lineales)


Las matemáticas son una de las áreas  más difíciles de dominar  en la etapa estudiantil, particularmente a mí me pasó en la época de bachillerato y siempre buscaba apoyo en los libros para mis sesiones de estudio,  pero en ocasiones me encontraba con un problema, y era que  los libros no ofrecían las respuestas de todos los ejercicios planteados, lo cual me llenaba de inseguridad ya que no sabía si mi respuesta  para ciertos ejercicios era la correcta.


Igual que me paso a mí, tengo familiares que  desean una guía para el aprendizaje de ciertos aspectos de la matemática, si bien es cierto que en la actualidad existe una gran cantidad de programas que se encargan de resolver  problemas matemáticos que van desde los más simples a cálculos más avanzados, decidí ponerme a prueba y crear una aplicación sencilla que muestre la manera de resolver un problema matemático, y dado que uno de mis familiares encontró cierta dificultad en aprender a resolver ecuaciones  lineales, opte por crear una aplicación sencilla que lo acompañe  en su aprendizaje.


Para realizar el Tutor de Ecuaciones de Primer Grado (TEPG) utilice:
  • ·         El lenguaje de programación  Python en su versión  3.5
  • ·         La librería PyQt 5, para la interfaz gráfica.
  • ·         La librería reportlab para mostrar la resolución del ejercicio en formato pdf.             
      Enlaces relacionados:

Tutor matematico
TEPG : ventana principal.

TEPG: ecuación resuelta

Archivo pdf con la solución a la ecuación.


Primer paso


Gracias a la programación y a los lenguajes de programación, en la actualidad existen aplicaciones casi para cualquier cosa imaginable, aplicaciones básicas como una calculadora, programas de entretenimiento por ejemplo: los videojuegos   y programas complejos como son los sistemas operativos  solo por mencionar algunos. Todos los que somos entusiastas de esta área de la informática y más aun los que somos autodidactas, en ocasiones decaemos al ver lo rápido que evoluciona  y llegamos a sentir que no podremos ser competitivos , cosa que veo como un error.

Si bien el camino de la programación no es fácil,  soy creyente de que la práctica, un espíritu de investigador, la perseverancia y el creer en nuestras ideas, nos ayudara a ser cada día mejores y con esto no quiero decir que podamos crear una aplicación súper  famosa y exitosa, aunque pensándolo bien ,  ¿ por qué no ?.  


Este blog nació como un espacio para compartir ideas (que mientras avanzo en este camino espero que sean cada vez más complejas)  y su desarrollo en un lenguaje de programación, con todos aquellos entusiastas que al igual que yo disfrutan el observar, tener ideas y más importante hacerlas realidad.