Este es el Proyecto Final de Programación Orientada a Objetos. Es un juego de combate por turnos con temática Steampunk, desarrollado en Python. Permite crear personajes de distintas clases, enfrentarlos en emocionantes combates, guardar su progreso y ver rankings de victorias, ofreciendo tanto una interfaz de consola (CLI) como una interfaz gráfica (GUI).
- Sistema de Clases (POO): Diseño orientado a objetos con una clase base
Personajey subclases únicas:Guerrero,Mago,Arquero,SanadoryAsesino. Cada clase tiene atributos y habilidades especiales. - Combate por Turnos: Motor de combate interactivo con ataques, curaciones y habilidades, integrando modificadores climáticos dinámicos (usando una API externa) y sistema de efectos de estado.
- Persistencia de Datos: Guardado y carga automática de personajes utilizando archivos JSON (
personajes.json). - Interfaz Dual:
- Consola interactiva: Menú completo para gestionar todas las funciones.
- Interfaz Gráfica (GUI): Interfaz amigable desarrollada con Tkinter.
- Sistema de Ranking: Registro de victorias de los personajes que compiten.
Para ejecutar este proyecto, necesitas tener Python instalado en tu ordenador (recomendado Python 3.8 o superior).
Las dependencias externas están listadas en el archivo requirements.txt. Principalmente requiere la librería requests para las llamadas a la API del clima.
Sigue estos pasos para instalar y ejecutar el proyecto en tu máquina local:
Asegúrate de tener todos los archivos del proyecto en una carpeta.
Abre una terminal o consola de comandos, navega hasta la carpeta del proyecto y ejecuta el siguiente comando para instalar las librerías necesarias:
pip install -r requirements.txtUna vez instaladas las dependencias, inicia el juego ejecutando el archivo principal:
python main.pyAl ejecutar main.py, verás un menú principal en la consola con las siguientes opciones:
- Crear personaje: Introduce un nombre y elige una de las 5 clases disponibles.
- Ver personajes: Lista todos los personajes creados y su estado actual.
- Iniciar combate: Selecciona a 2 personajes para que luchen entre sí.
- Guardar personajes: Guarda el progreso manualmente en
personajes.json. - Cargar personajes: Restaura a los personajes guardados previamente.
- Abrir interfaz gráfica: Inicia la versión GUI del juego (Tkinter).
- Ver ranking: Muestra a los mejores luchadores según sus victorias.
- Salir: Cierra el juego.
main.py: Punto de entrada de la aplicación y menú principal.personaje.py: Contiene la clase base de los personajes.guerrero.py,mago.py,arquero.py,sanador.py,asesino.py: Subclases de personajes.combate.py: Lógica del sistema de combate.efectos.py: Gestión de efectos alterados (veneno, aturdimiento, etc.).api_client.py: Integración con la API externa para modificadores climáticos.gui.py: Interfaz gráfica con Tkinter.persistencia.py: Módulo para la persistencia en formato JSON.personajes.json: Base de datos local.requirements.txt: Dependencias.
Proyecto final de Programación Orientada a Objetos.