Ejercicio de Programación Orientada a Objetos en Python (Videojuego)

 Hola estimados lectores, el día de hoy voy a compartir un pequeño ejercicio para crear un videojuego en Python utilizando los conceptos de la programación orientada a objetos,
Este ejercicio es un ejemplo que pensé para mis alumnos que están empezando con el manejo de este paradigma, espero les pueda ser de utilidad.

¿Que es la Programación Orientada a Objetos o POO?

 Este es un paradigma de programación (Una manera de programar), posiblemente la mas común que existe, aunque no es del agrado de muchos incluyéndome, pero no negare su gran utilidad y los beneficios que esta tiene.
 
Todos los programadores hemos utilizado algún paradigma de programación, aunque no estemos conscientes del mismo, comúnmente el imperativo centrado en secuencias de control como for, if, while, etc... La programación funcional centrada en dividir todas las tareas en funciones ( la que comúnmente es mas utilizada por programadores en la academia por que es fácil de entender y modificar aunque no tanto de escalar). La programación orientada a eventos que se suele usar para sistemas embebidos y physical computing. Estos son algunos de los mas comunes pero existen muchísimos paradigmas de programación, puedes revisar una lista en este enlace.
 

Ventajas y desventajas de la POO

En lo personal el POO se me hace innecesariamente complejo para muchas tareas, pero esta es la opinion de una persona que nunca ha sido fan de Java (Lenguaje de programación que utiliza forzosamente POO) y que gran parte de su vida profesional ha estado involucrado con microcontroladores y sistemas embebidos. 
 
La verdad es que actualmente para lo que son videojuegos y robótica las cuales son de mis principales areas de interés la POO se ha vuelto fundamental y en la industria lleva varias décadas dictando como se hace el desarrollo de software.

En este blog no me voy a centrar como hacer POO pero nombrare algunas de sus características.
 
Ventajas.
  • Fácilmente escalable.
  • Facilita la reutilización del código.
  • Permite una mejor division del trabajo para equipos de desarrollo.
  • Obliga a los programadores a llevar una estructura común.
  • Ahorra tiempo en proyectos complejos.

Desventajas.

  • Es engorroso para tareas sencillas.
  • Consume mucho tiempo en proyectos individuales.
  • En investigación no siempre es fácil seguir la estructura que utiliza.
  • En proyectos grandes puede llegar a complicar la documentación. 

 

El video Juego (Space Encounter)

 


 

Este videojuego esta pensado como ejemplo para una actividad de clase de unas 3 o 4 horas, tomando en cuenta que los alumnos diseñen sus clases en una sesión previa y que se tomen un tiempo para ponerle algo de su cosecha (arte ascii, graficos, etc...) dentro del mismo.
 
Es un juego de texto que utiliza una maquina de estados para mantener el flujo del mismo.




 Básicamente el jugador tiene 2 acciones posibles, curarse o atacar, si elimina al alienígena gana el juego, de lo contrario le va al alien el cual también tiene estas 2 opciones.

Los 2 personajes heredan sus características de una clase llamada Personaje.
 



 
 Pero cada uno de estos utiliza polimorfismo para alterar su comportamiento, en este caso el jugador tiene una armadura que lo protege del daño y el alien un factor de curación que potencia cuanta vida recupera, estos comportamientos son dictados por la dificultad del juego.

En cuanto a la jugabilidad se ve de la siguiente manera.

y al ganar el juego.


El propósito es ilustrar con un ejemplo sencillo como podemos estructurar y reciclar código mediante el uso de POO.

Despedida

Espero esta entrada les sea de utilidad, aun tengo pendientes varias ideas para futuros blogs, como la parte 3 de Julia (ya la llevo prometiendo mucho tiempo), la historia de mis gatijas que por cierto ayer fue el cumpleaños de Noa, ademas de varias ideas relacionadas a affective computing, interfaces graficas 3D, teoría de androides y videojuegos.

El código se puede encontrar en este repositorio.

También pueden visitar mi página personal: www.jose-navarro.info

Si les gustó el blog y quisieran apoyarme, pueden invitarme un café dando clic en el botón que se encuentra en la parte inferior izquierda.


 

 

Comentarios

Entradas populares