public static bool AgregarHeroe(Heroe h, Universo u) { for (int i = 0; i < u.heroes.Length; i++) { if (u.heroes[i] is null) { u.heroes[i] = h; return(true); } } return(false); }
static void Main(string[] args) { // Dentro de un proyecto de tipo Consola, agregar una clase propia llamada Héroe, y definirla // de la siguiente manera: // class Heroe // string nombre; // string poder; // int nivelFuerza; // bool esAyudante; // a.Todos los atributos deben ser privados, crear métodos set para todos. // ● Validar que las cadenas no estén vacías antes de asignarlas. // ● Validar que los enteros no sean negativos antes de asignarlos. // b.Método constructor que reciba todos los parámetros menos el atributo esAyudante, // para determinar este último utilizar el atributo nivelFuerza, si este es menor a 50 // esAyudante deberá ser inicializado en true. // c.Metodo HeroeToString(), deberá retornar una cadena con los datos del personaje. // d.Instanciar 3 héroes en el main, mostrarlos por consola. Console.WriteLine("Ejercicio-5 POO"); Heroe h1 = new Heroe("IronMan", "Traje Hierro", 201); Heroe h2 = new Heroe("SuperMan", "SuperFuerza", 200); Heroe h3 = new Heroe("SpiderMan", "Poder Aranea", 25); Console.WriteLine(h1.ToString()); Console.WriteLine(h2.ToString()); Console.WriteLine(h3.ToString()); Universo u1 = new Universo(3); Console.WriteLine(Universo.AgregarHeroe(h1, u1)); Console.WriteLine(Universo.AgregarHeroe(h2, u1)); Console.WriteLine(Universo.AgregarHeroe(h3, u1)); Console.WriteLine(Universo.Enfrentar(0, 1, u1)); Console.WriteLine(Universo.Enfrentar(1, 2, u1)); Console.WriteLine(Universo.Enfrentar(2, 1, u1)); }
// b. Método estático Enfrentar, el mismo debe recibir dos ints randoms y retornar un string. // ● Ambos enteros representan posiciones en el array de héroes. // ● Se debe validar que estos enteros no sean negativos, ni más grandes que el // tamaño del array // ● Obtener ambos objetos representados en estas posiciones, si alguno de los // dos es ayudante, se lo va a considerar perdedor. En caso de que ambos sean // ayudantes o no ayudantes, determinar el ganador basándose en el atributo // nivelFuerza. // ● El método retorna el nombre del Heroe ganador (modificar la clase Heroe para // tener visibilidad del atributo nombre desde otra clase, generando su respectivo // método get). // ● En caso de que ambos niveles de fuerza sean iguales, el método Enfrentar // retornara “empate”. // Agregar al Program el código necesario para probar la nueva clase Universo. public static string Enfrentar(int num1, int num2, Universo u) { if ((num1 < u.heroes.Length && num1 >= 0) && (num2 < u.heroes.Length && num2 >= 0)) { if (u.heroes[num1] is not null && u.heroes[num2] is not null) { if ((u.heroes[num1].EsAyudante && u.heroes[num2].EsAyudante) || (!u.heroes[num1].EsAyudante && !u.heroes[num2].EsAyudante)) { if (u.heroes[num1].NivelFuerza > u.heroes[num2].NivelFuerza) { return($"Ganador: {u.heroes[num1].Nombre}"); } else if (u.heroes[num1].NivelFuerza < u.heroes[num2].NivelFuerza) { return($"Ganador: {u.heroes[num2].Nombre}"); } else if (u.heroes[num1].NivelFuerza == u.heroes[num2].NivelFuerza) { return("Empate"); } } if (u.heroes[num1].EsAyudante && !u.heroes[num2].EsAyudante) { return($"{u.heroes[num1].Nombre} Es el perdedor"); } if (u.heroes[num2].EsAyudante && !u.heroes[num1].EsAyudante) { return($"{u.heroes[num2].Nombre} Es el perdedor"); } } } return("No hubo enfrentamiento"); }