Este es un proyecto en Java que simula un juego de batalla por turnos entre personajes de dos clases: Warriors y Wizards. Los usuarios pueden crear personajes, visualizarlos, enfrentarlos en combate, o importarlos desde un archivo CSV.
- Java 17+
- Programación Orientada a Objetos (OOP)
- Clases abstractas e interfaces (
GameCharacter,Attacker) - Validación de atributos
- Manejo de ficheros (importación de personajes vía CSV)
- Uso de consola y
Scanner
- Ejecuta
Main.java. - Se abrirá un menú con las siguientes opciones:
1. Create character
2. Show characters
3. Start battle
4. Exit
5. Random battle
6. Import characters from CSV
- Clase base con propiedades comunes (
name,hp,defense, etc.). - Método
receiveDamage()con lógica de defensa aleatoria. - Es extendida por
WarrioryWizard.
- Define el método
attack(GameCharacter target)que deben implementar todas las clases combatientes.
- Clases concretas con atributos y ataques específicos:
- Warrior: fuerza + stamina, ataques pesados y débiles.
- Wizard: inteligencia + mana, lanza bolas de fuego o ataques débiles mágicos.
Puedes cargar personajes desde un archivo .csv con el siguiente formato (incluye encabezado):
name,type,hp,resource,power
Thorne,warrior,180,30,7
Nyx,wizard,80,40,45
type:"warrior"o"wizard"resource:staminapara Warriors,manapara Wizardspower:strength(Warrior) ointelligence(Wizard)
Los personajes luchan por turnos hasta que uno o ambos mueren. El sistema de combate incluye:
- Ataques aleatorios (fuertes o débiles)
- Consumo y regeneración de recursos
- Sistema de defensa con reducción de daño
- Crear personajes manualmente
- Mostrar lista de personajes
- Simular batalla entre dos seleccionados
- Generar batalla aleatoria entre personajes generados automáticamente
- Importar personajes desde CSV
- Validaciones de atributos al crear personajes
src/
├── main/
│ ├── java/
│ │ ├── Main.java
│ │ ├── org/example/
│ │ │ ├── GameCharacter.java
│ │ │ ├── Attacker.java
│ │ │ ├── Warrior.java
│ │ │ └── Wizard.java
Proyecto desarrollado por [Tu Nombre Aquí] como parte del módulo de Programación Orientada a Objetos en Java.