using System.Collections.Generic;
public string Nombre { get; set; }
public int Salud { get; set; }
public double Fatiga { get; set; }
public int Danio { get; set; }
public List<Item> Inventario { get; set; }
public Personaje(string nombre)
Inventario = new List<Item>();
public void IncrementarSalud(int cantidad)
Salud = Math.Min(100, Salud + cantidad);
public void DecrementarSalud(int cantidad)
Salud = Math.Max(0, Salud - cantidad);
public void IncrementarFatiga(double cantidad)
Fatiga = Math.Min(100, Fatiga + cantidad);
public void DecrementarFatiga(double cantidad)
Fatiga = Math.Max(0, Fatiga - cantidad);
public void IncrementarDanio(int cantidad)
Danio = Math.Min(100, Danio + cantidad);
public void DecrementarDanio(int cantidad)
Danio = Math.Max(0, Danio - cantidad);
private void CalcularSalud()
double fatigaAfectaSalud = Fatiga * 0.15;
double danioAfectaSalud = Danio * 0.30;
Salud = (int)Math.Max(0, 100 - fatigaAfectaSalud - danioAfectaSalud);
public void AñadirItem(Item item)
IncrementarFatiga(item.Peso * 0.05);
public void MostrarEstado()
Console.WriteLine($"\nEstado del Personaje {Nombre}:");
Console.WriteLine($"Salud: {Salud}%");
Console.WriteLine($"Fatiga: {Fatiga}%");
Console.WriteLine($"Daño: {Danio}%");
public string Nombre { get; set; }
public double Peso { get; set; }
public double Estado { get; set; }
public Item(string nombre, double peso, double estado)
Peso = Math.Max(1, peso);
public void ModificarNombre(string nuevoNombre)
public void ModificarPeso(double nuevoPeso)
Peso = Math.Max(1, nuevoPeso);
public void ModificarEstado(double nuevoEstado)
public double ObtenerDefensa()
public double ObtenerAtaque()
public double ObtenerCoeficienteSalud()
public void MostrarEstado()
Console.WriteLine($"\nItem: {Nombre}");
Console.WriteLine($"Peso: {Peso}");
Console.WriteLine($"Estado: {Estado}%");
Console.WriteLine($"Defensa: {ObtenerDefensa()}");
Console.WriteLine($"Ataque: {ObtenerAtaque()}");
Console.WriteLine($"Coeficiente de Salud: {ObtenerCoeficienteSalud()}");
private Personaje _personaje;
public Menu(Personaje personaje)
public void MostrarMenu()
Console.WriteLine("\n--- Menú de Acciones ---");
Console.WriteLine("1. Incrementar Salud");
Console.WriteLine("2. Decrementar Salud");
Console.WriteLine("3. Incrementar Fatiga");
Console.WriteLine("4. Decrementar Fatiga");
Console.WriteLine("5. Incrementar Daño");
Console.WriteLine("6. Decrementar Daño");
Console.WriteLine("7. Andar (Aumenta la fatiga)");
Console.WriteLine("8. Descansar (Disminuye la fatiga)");
Console.WriteLine("9. Mostrar Estado del Personaje");
Console.WriteLine("10. Añadir Item al Inventario");
Console.WriteLine("11. Mostrar Inventario");
Console.WriteLine("12. Salir");
Console.Write("Seleccione una opción: ");
opcion = int.Parse(Console.ReadLine());
EjecutarIncrementarSalud();
EjecutarDecrementarSalud();
EjecutarIncrementarFatiga();
EjecutarDecrementarFatiga();
EjecutarIncrementarDanio();
EjecutarDecrementarDanio();
_personaje.MostrarEstado();
Console.WriteLine("¡Hasta luego!");
Console.WriteLine("Opción inválida. Intente de nuevo.");
private void EjecutarIncrementarSalud()
Console.Write("Ingrese la cantidad para incrementar la salud: ");
int cantidad = int.Parse(Console.ReadLine());
_personaje.IncrementarSalud(cantidad);
private void EjecutarDecrementarSalud()
Console.Write("Ingrese la cantidad para decrementar la salud: ");
int cantidad = int.Parse(Console.ReadLine());
_personaje.DecrementarSalud(cantidad);
private void EjecutarIncrementarFatiga()
Console.Write("Ingrese la cantidad para incrementar la fatiga: ");
double cantidad = double.Parse(Console.ReadLine());
_personaje.IncrementarFatiga(cantidad);
private void EjecutarDecrementarFatiga()
Console.Write("Ingrese la cantidad para decrementar la fatiga: ");
double cantidad = double.Parse(Console.ReadLine());
_personaje.DecrementarFatiga(cantidad);
private void EjecutarIncrementarDanio()
Console.Write("Ingrese la cantidad para incrementar el daño: ");
int cantidad = int.Parse(Console.ReadLine());
_personaje.IncrementarDanio(cantidad);
private void EjecutarDecrementarDanio()
Console.Write("Ingrese la cantidad para decrementar el daño: ");
int cantidad = int.Parse(Console.ReadLine());
_personaje.DecrementarDanio(cantidad);
private void AñadirItem()
Console.Write("Ingrese el nombre del item: ");
string nombre = Console.ReadLine();
Console.Write("Ingrese el peso del item: ");
double peso = double.Parse(Console.ReadLine());
Console.Write("Ingrese el estado del item (0 a 100): ");
double estado = double.Parse(Console.ReadLine());
Item nuevoItem = new Item(nombre, peso, estado);
_personaje.AñadirItem(nuevoItem);
private void MostrarInventario()
Console.WriteLine("\nInventario del Personaje:");
foreach (var item in _personaje.Inventario)
static void Main(string[] args)
Console.WriteLine("Bienvenido al Juego de Gestión de Personaje!");
Console.Write("Ingrese el nombre del personaje: ");
string nombre = Console.ReadLine();
Personaje personaje = new Personaje(nombre);
Menu menu = new Menu(personaje);