Професионална програма
Loading...
+ Нов въпрос
gkolev_chess avatar gkolev_chess 2 Точки

C# OOP Retake Exam - 18 April 2019 2.Business logic

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

Имам проблем с бизнес логиката от изпита C# OOP Retake Exam 18 April 2019. https://judge.softuni.bg/Contests/Practice/Index/1644#1

Кодът ми: https://dox.abv.bg/download?id=f9eb3c84f1#

Когато изпратя решението си в judge, ми дава compile time error, обаче отдолу няма описание на грешката.

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

Тагове:
0
Module: C# Advanced
nsavov avatar nsavov 68 Точки
Best Answer

Провери много хубаво в ManagerController ретърн съобщенията. На мен ми гърмеше заради AddCard защото ми връщаше "MagicCardCard".

Ето го сорса на моя контролер, пробвай да го пейстнеш върху своя, би трябвало да няма грешки защото всичко си го правя вътре в класа и виж дали компилира

0
12/12/2019 00:24:49
gkolev_chess avatar gkolev_chess 2 Точки

Не се компилира дори и когато го сменя и с твоя контролер. Изглежда грешката е някъде в другите файлове.

Благодаря, все пак)

0
nsavov avatar nsavov 68 Точки

Прегледах ти файловете, съмнявах се дали някъде си изпуснал public конструктор, изглеждат ок...

 

В CardFactory правиш Magic вместо Trap

В Card не сетваш damagePoints = value

 

Заради тези двете не ти се компилира... Сега обаче дава само 64 точки.

 

https://dox.abv.bg/download?id=220b9da5ce# - Линк за сваляне

Това е моето решение, доста по-кратко от това на упражнението. Не сме длъжни да работим със стриймове на тази задача на изпита.

 

Виж и авторското решение. Успех!

0
13/12/2019 07:38:08
gkolev_chess avatar gkolev_chess 2 Точки

Оправих нещата, които ми каза и също в класа Player:

 public void TakeDamage(int damagePoints)
        {
            if(damagePoints < 0)
            {
                throw new ArgumentException("Damage points cannot be less than zero.");
            }
            this.Health = Math.Max(this.Health - damagePoints, 0);
        }

Използвах полето health, вместо пропърти Health

Благодаря)

0