Loading...
StoilDimitrov avatar StoilDimitrov 0 Точки

03. Guild C# Advanced Exam - 22 Feb 2020

Здравейте колеги.

Имам нужда от помощ с тази задача.

https://judge.softuni.bg/Contests/Practice/Index/2032#2 

Judge дава 91/100. Прегледах подобни запитвания от колеги и не намирам разликата в решението освен това ,че съм избрал Dictionary за roster. Иска ми се да не я пренаписвам с List , а да разбера къде е проблема.

Това са мойте класове:

Guild.cs https://pastebin.com/m6urz6tL
Player.cs https://pastebin.com/dtETa6EA

Благодаря предварително.

Тагове:
0
C# Advanced
Axiomatik avatar Axiomatik 2422 Точки

When judge gives out 91/100 for class-exercises, that usually is a sign that some private/protected/internal access modifiers are missing.

Try out the following and see if judge gives 100%:

Player class

        public string Name { get; private set; }

        public string Class { get; private set; }

        public string Rank { get; internal set; }

        public string Description { get; set; }

Guild class

        public string Name { get; private set; }

        public int Capacity { get; private set; }

 

Best,

 

 

1
StoilDimitrov avatar StoilDimitrov 0 Точки

Благодаря за отделеното време. За съжаление пробвах различни варианти на тази идея безуспешно. Възможно е аз да не я имплементирам правилно ,но за момента няма промяна.

0
Axiomatik avatar Axiomatik 2422 Точки

Then it must be one of the Guild-methods, try:

            // if (Capacity>Count && !roster.ContainsKey(recruit.Name))
            // probably trigger OutOfRange Exception, since Count must not exceed Capacity
            if (Count < Capacity && !roster.ContainsKey(recruit.Name))
            {
                roster.Add(recruit.Name, recruit);
            }

 

0
17/02/2021 11:48:22
Axiomatik avatar Axiomatik 2422 Точки

Or TrimEnd() is missing in Report-method:

       public string Report()
        {
            string output = $"Players in the guild: {Name}";
            if (roster.Count>0)
            {
                foreach (var player in roster)
                {
                    output += Environment.NewLine + player.Value.ToString() + Environment.NewLine;
                }
            }
            return output.TrimEnd();
        }

 

0
petzata avatar petzata 14 Точки

Здравейте, грешката е в метода Report, във foreach цикъла трябва да се промени: 

   output += Environment.NewLine + player.Value;

и след това:

return output.ToString().TrimEnd();

 

Ако стартирате задачата без да е поправена ще разберете че метода Report връща не това, което е дадено в примера за StartUp.

0
petzata avatar petzata 14 Точки

Мисля че, ако за колекция вместо речник използвате лист примерно, задачата става доста по- лесна и четима.

0
Swimsas avatar Swimsas 3 Точки

Точно това е проблема,мерси

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.