Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            int             n       = int.Parse(Console.ReadLine());
            int             counter = 0;
            List <BaseHero> heroes  = new List <BaseHero>();

            while (counter != n)
            {
                string name     = Console.ReadLine();
                string heroType = Console.ReadLine();

                try
                {
                    BaseHero hero = HeroFactory.Create(name, heroType);
                    heroes.Add(hero);
                    counter++;
                }
                catch (ArgumentException ae)
                {
                    Console.WriteLine(ae.Message);
                }
            }

            int bossHelth = int.Parse(Console.ReadLine());
            int damage    = 0;

            foreach (var hero in heroes)
            {
                Console.WriteLine(hero.CastAbility());
                damage += hero.Power;
            }

            if (damage >= bossHelth)
            {
                Console.WriteLine("Victory!");
            }
            else
            {
                Console.WriteLine("Defeat...");
            }
        }
        public static void Main()
        {
            var heroFactory = new HeroFactory();
            var raidGroup   = new List <Hero>();

            var numberOfRaidGroup = int.Parse(Console.ReadLine());

            for (int i = 0; i < numberOfRaidGroup; i++)
            {
                var heroName = Console.ReadLine();
                var heroType = Console.ReadLine();

                var currentHero = heroFactory.CreateHero(heroType, heroName);

                if (currentHero == null)
                {
                    Console.WriteLine("Invalid hero!");
                    i--;
                    continue;
                }

                raidGroup.Add(currentHero);
            }

            if (int.TryParse(Console.ReadLine(), out int bossPower))
            {
                foreach (var hero in raidGroup)
                {
                    Console.WriteLine(hero.CastAbility());
                }

                if (raidGroup.Sum(x => x.Power) >= bossPower)
                {
                    Console.WriteLine("Victory!");
                }
                else
                {
                    Console.WriteLine("Defeat...");
                }
            }
        }