示例#1
0
        static void Main(string[] args)
        {
            // input
            var n = int.Parse(Console.ReadLine());

            // calculation
            var heroList = new List <BaseHero>();

            for (int i = 0; i < n; i++)
            {
                var name = Console.ReadLine();
                var type = Console.ReadLine();

                BaseHero hero = CreateHero(type, name);

                if (hero == null)
                {
                    Console.WriteLine("Invalid hero!");
                }

                else
                {
                    heroList.Add(hero);
                }
            }

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

            // output

            foreach (var item in heroList)
            {
                Console.WriteLine(item.CastAbility());
                bossPower -= item.Power;
            }

            if (bossPower > 0)
            {
                Console.WriteLine("Defeat...");
            }

            else
            {
                Console.WriteLine("Victory!");
            }
        }
示例#2
0
        public static void Main(string[] args)
        {
            List <BaseHero> heroes = new List <BaseHero>();

            int numberOfHeroes = int.Parse(Console.ReadLine());

            while (heroes.Count < numberOfHeroes)
            {
                string heroName = Console.ReadLine();
                string heroType = Console.ReadLine();

                try
                {
                    BaseHero newHero = HeroFactory.Build(heroType, heroName);
                    heroes.Add(newHero);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    continue;
                }
            }

            int bossPower   = int.Parse(Console.ReadLine());
            int heroesPower = 0;

            if (0 < heroes.Count)
            {
                foreach (var hero in heroes)
                {
                    heroesPower += hero.Power;
                    Console.WriteLine(hero.CastAbility());
                }
            }

            if (bossPower <= heroesPower)
            {
                Console.WriteLine("Victory!");
            }
            else
            {
                Console.WriteLine("Defeat...");
            }
        }
        public static void Main()
        {
            List <BaseHero> raidGroup = new List <BaseHero>();
            HeroFactory     factory   = null;

            int neededHeroes       = int.Parse(Console.ReadLine());
            int countOfValidHeroes = 0;

            while (neededHeroes != countOfValidHeroes)
            {
                string heroName = Console.ReadLine();
                string heroType = Console.ReadLine();

                try
                {
                    BaseHero hero = GetHero(heroName, heroType, factory);
                    raidGroup.Add(hero);

                    countOfValidHeroes++;
                }
                catch (InvalidOperationException ioe)
                {
                    Console.WriteLine(ioe.Message);
                }
            }

            int bossPower = int.Parse(Console.ReadLine());

            PrintAbilities(raidGroup);

            int totalDamageOfAllHeroes = SumTotalDamage(raidGroup);

            if (totalDamageOfAllHeroes >= bossPower)
            {
                Console.WriteLine("Victory!");
            }
            else
            {
                Console.WriteLine("Defeat...");
            }
        }
示例#4
0
        public static void Main(string[] args)
        {
            var heroFactory = new HeroCreatorFactory();

            int             count  = int.Parse(Console.ReadLine());
            List <BaseHero> heroes = new List <BaseHero>();

            while (count > 0)
            {
                try
                {
                    string   name = Console.ReadLine();
                    string   type = Console.ReadLine();
                    BaseHero hero = heroFactory.CreateBaseHero(name, type);
                    heroes.Add(hero);
                    count--;
                }
                catch (ArgumentException exception)
                {
                    Console.WriteLine(exception.Message);
                }
            }

            long bossPower = long.Parse(Console.ReadLine());

            foreach (var hero in heroes)
            {
                Console.WriteLine(hero.CastAbility());
            }

            long heroesPower = heroes.Sum(h => h.Power);

            if (heroesPower >= bossPower)
            {
                Console.WriteLine("Victory!");
            }
            else
            {
                Console.WriteLine("Defeat...");
            }
        }
        static void Main(string[] args)
        {
            List <BaseHero> heroes = new List <BaseHero>();

            int n = int.Parse(Console.ReadLine());


            while (heroes.Count < n)
            {
                string heroName = Console.ReadLine();
                string heroType = Console.ReadLine();

                BaseHero hero = CreateHero(heroName, heroType);

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

                heroes.Add(hero);
            }

            int bossPower = int.Parse(Console.ReadLine());

            foreach (var hero in heroes)
            {
                Console.WriteLine(hero.CastAbiliry());
                bossPower -= hero.Power;
            }

            if (bossPower <= 0)
            {
                Console.WriteLine("Victory!");
            }
            else
            {
                Console.WriteLine("Defeat...");
            }
        }
        public static void Main()
        {
            int players = int.Parse(Console.ReadLine());
            Dictionary <string, BaseHero> heroes = new Dictionary <string, BaseHero>();

            while (heroes.Count < players)
            {
                string   name = Console.ReadLine();
                string   type = Console.ReadLine();
                BaseHero hero = CreateHero(type, name);
                if (hero == null)
                {
                    Console.WriteLine("Invalid hero!");
                }
                else
                {
                    heroes.Add(name, hero);
                }
            }
            int bossPoints = int.Parse(Console.ReadLine());
            int raidPoints = 0;

            if (heroes.Any())
            {
                foreach (var hero in heroes.Values)
                {
                    string ability = hero.CastAbility();
                    Console.WriteLine(ability);
                    raidPoints += hero.Power;
                }
            }
            if (raidPoints >= bossPoints)
            {
                Console.WriteLine("Victory!");
            }
            else
            {
                Console.WriteLine("Defeat...");
            }
        }
示例#7
0
        static void Main(string[] args)
        {
            List <BaseHero> raidTeam = new List <BaseHero>();

            int n = int.Parse(Console.ReadLine());

            while (raidTeam.Count < n)
            {
                string name = Console.ReadLine();
                string type = Console.ReadLine();

                BaseHero hero = CreateHero(type, name);

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

                raidTeam.Add(hero);
            }

            int bossHealthPoints = int.Parse(Console.ReadLine());

            foreach (BaseHero currenthero in raidTeam)
            {
                Console.WriteLine(currenthero.CastAbility());
            }

            if (raidTeam.Sum(x => x.Power) >= bossHealthPoints)
            {
                Console.WriteLine("Victory!");
            }
            else
            {
                Console.WriteLine("Defeat...");
            }
        }
示例#8
0
        private static BaseHero CreateHero(string type, string name)
        {
            BaseHero hero = null;

            if (type == nameof(Druid))
            {
                hero = new Druid(name);
            }
            else if (type == nameof(Paladin))
            {
                hero = new Paladin(name);
            }
            else if (type == nameof(Rogue))
            {
                hero = new Rogue(name);
            }
            else if (type == nameof(Warrior))
            {
                hero = new Warrior(name);
            }

            return(hero);
        }
        private static BaseHero CreateHero(string name, string type)
        {
            BaseHero hero = null;

            if (type == "Druid")
            {
                hero = new Druid(name);
            }
            else if (type == "Paladin")
            {
                hero = new Paladin(name);
            }
            else if (type == "Rogue")
            {
                hero = new Rogue(name);
            }
            else if (type == "Warrior")
            {
                hero = new Warrior(name);
            }

            return(hero);
        }
        static void Main(string[] args)
        {
            List <BaseHero> raidGroup = new List <BaseHero>();
            int             value     = int.Parse(Console.ReadLine());

            while (raidGroup.Count != value)
            {
                string name          = Console.ReadLine();
                string type          = Console.ReadLine();
                bool   typeIsUnknown = type != "Druid" && type != "Paladin" && type != "Rogue" && type != "Warrior";

                if (typeIsUnknown)
                {
                    Console.WriteLine("Invalid hero!");
                }
                else
                {
                    BaseHero hero = CreateHero(name, type);
                    raidGroup.Add(hero);
                }
            }

            int bossPower = int.Parse(Console.ReadLine());

            raidGroup.ForEach(x => Console.WriteLine(x.CastAbility()));

            int heroesTotalPower = raidGroup.Any() ? raidGroup.Sum(x => x.Power) : 0;

            if (heroesTotalPower >= bossPower)
            {
                Console.WriteLine("Victory!");
            }
            else
            {
                Console.WriteLine("Defeat...");
            }
        }
示例#11
0
        static void Main(string[] args)
        {
            int             lines   = int.Parse(Console.ReadLine());
            HeroCreator     creator = null;
            List <BaseHero> group   = new List <BaseHero>();
            BaseHero        hero    = null;


            for (int i = 0; i < lines; i++)
            {
                string name = Console.ReadLine();
                string type = Console.ReadLine();

                switch (type.ToLower())
                {
                case "druid":
                    creator = new DruidCreator(name);
                    hero    = creator.CreateHero();
                    group.Add(hero);
                    Console.WriteLine(hero.CastAbility());
                    break;

                case "paladin":
                    creator = new PaladinCreator(name);
                    hero    = creator.CreateHero();
                    group.Add(hero);
                    Console.WriteLine(hero.CastAbility());
                    break;

                case "rogue":
                    creator = new RogueCreator(name);
                    hero    = creator.CreateHero();
                    group.Add(hero);
                    Console.WriteLine(hero.CastAbility());
                    break;

                case "warrior":
                    creator = new WarriorCreator(name);
                    hero    = creator.CreateHero();
                    group.Add(hero);
                    Console.WriteLine(hero.CastAbility());
                    break;

                default:
                    Console.WriteLine("Invalid hero!");
                    lines++;
                    break;
                }
            }

            int bossPower  = int.Parse(Console.ReadLine());
            int groupPower = 0;

            if (group.Count > 0)
            {
                foreach (var unit in group)
                {
                    groupPower += unit.Power;
                }
            }

            if (bossPower <= groupPower)
            {
                Console.WriteLine("Victory!");
            }

            else
            {
                Console.WriteLine("Defeat...");
            }
        }
        static void Main()
        {
            int amountOfHeroes = int.Parse(Console.ReadLine());

            List <BaseHero> baseHeroes = new List <BaseHero>();
            int             totalPower = 0;

            for (int i = 0; i < amountOfHeroes; i++)
            {
                string name     = Console.ReadLine();
                string heroType = Console.ReadLine();

                BaseHero hero = null;


                if (heroType == "Druid")
                {
                    hero = new Druid(name);
                }
                else if (heroType == "Paladin")
                {
                    hero = new Paladin(name);
                }
                else if (heroType == "Rogue")
                {
                    hero = new Rogue(name);
                }
                else if (heroType == "Warrior")
                {
                    hero = new Warrior(name);
                }
                else
                {
                    Console.WriteLine("Invalid hero!");
                }

                if (hero != null)
                {
                    baseHeroes.Add(hero);
                    totalPower += hero.Power;
                }
                else
                {
                    i--;
                }
            }

            int bossPower = int.Parse(Console.ReadLine());

            if (baseHeroes.Count == 0)
            {
                Console.WriteLine("Defeat...");
                return;
            }


            foreach (BaseHero hero in baseHeroes)
            {
                Console.WriteLine(hero.CastAbility());
            }

            if (bossPower <= totalPower)
            {
                Console.WriteLine("Victory!");
            }
            else
            {
                Console.WriteLine("Defeat...");
            }
        }
示例#13
0
        public static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());

            List <BaseHero> heroes = new List <BaseHero>();

            string heroName = Console.ReadLine();
            string heroType = Console.ReadLine();

            BaseHero hero = null;

            while (true)
            {
                if (!isHeroTypeValid(heroType))
                {
                    Console.WriteLine("Invalid hero!");
                }

                else
                {
                    if (heroType == "Druid")
                    {
                        hero = new Druid(heroName);
                    }

                    else if (heroType == "Paladin")
                    {
                        hero = new Paladin(heroName);
                    }

                    else if (heroType == "Rogue")
                    {
                        hero = new Rogue(heroName);
                    }

                    else if (heroType == "Warrior")
                    {
                        hero = new Warrior(heroName);
                    }

                    heroes.Add(hero);
                }

                if (heroes.Count == n)
                {
                    break;
                }

                heroName = Console.ReadLine();
                heroType = Console.ReadLine();
            }

            int bossPower   = int.Parse(Console.ReadLine());
            int heroesPower = 0;

            foreach (BaseHero currentHero in heroes)
            {
                //must cast all heroes?
                Console.WriteLine(currentHero.CastAbility());
                heroesPower += currentHero.Power;
            }

            if (heroesPower >= bossPower)
            {
                Console.WriteLine("Victory!");
            }

            else
            {
                Console.WriteLine("Defeat...");
            }
        }
示例#14
0
        static void Main(string[] args)
        {
            int             dmg     = 0;
            List <BaseHero> counter = new List <BaseHero>();
            int             n       = int.Parse(Console.ReadLine());

            while (true)
            {
                BaseHero currentHero = null;


                string name       = Console.ReadLine();
                string typeOfHero = Console.ReadLine();

                if (typeOfHero == nameof(Druid))
                {
                    currentHero = new Druid(name);
                }
                else if (typeOfHero == nameof(Paladin))
                {
                    currentHero = new Paladin(name);
                }
                else if (typeOfHero == nameof(Rogue))
                {
                    currentHero = new Rogue(name);
                }
                else if (typeOfHero == nameof(Warrior))
                {
                    currentHero = new Warrior(name);
                }
                else
                {
                    Console.WriteLine("Invalid hero!");
                    continue;
                }



                Console.WriteLine(currentHero.CastAbility());
                dmg += currentHero.Power;

                if (currentHero != null)
                {
                    counter.Add(currentHero);
                    if (counter.Count == n)
                    {
                        break;
                    }
                }
            }

            int bossHealth = int.Parse(Console.ReadLine());

            if (dmg >= bossHealth)
            {
                Console.WriteLine("Victory!");
            }
            else
            {
                Console.WriteLine("Defeat...");
            }
        }