Loading...

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

DimitarKazakov avatar DimitarKazakov 17 Точки

Exam C# OOP - 12 April 2020

Здравейте. Искам да Ви попитам има ли някой, който е решил изпита - https://judge.softuni.bg/Contests/Practice/Index/2298#0, защото имам затруднение с Start метода в класа Map и искам да видя различни подходи към задачата. Благодаря предварително.

Тагове:
0
C# OOP Basics 21/07/2020 17:54:42
nickwork avatar nickwork 657 Точки
Best Answer

Пускам ти линк към решението ми.. но не успях да я реша 200/200...

01. Structure дава 50/50

02. Business Logic 140 / 150

Ако успееш да я разгадаеш ще те помоля да пуснеш решение да го разгледам...успех

https://easyupload.io/7rh5ro

0
DimitarKazakov avatar DimitarKazakov 17 Точки

Благодаря ти много за решението. Общо взето оправих задачата да дава 150 точки. грешката ти е в метода TakeDamage. Точките които остават след като се отнеме от Armor трябва да се пренесат към Health.

public void TakeDamage(int points)
        {
      

            int currentpoints = points;

            if (this.armor - currentpoints >= 0)
            {
                this.armor -= currentpoints;
            }
            else if (this.armor - currentpoints < 0)
            {
                currentpoints = currentpoints - this.armor;
                this.armor = 0;
                this.health -= currentpoints;
            }

            if (this.health <= 0)
            {
                
                this.health = 0;
            }
        }

 

Надявам се да ти стаане ясно.Само тук е грешката, затова копирам само този метод. Ако имаш някакви въпроси съм готов да помогна.

1
nickwork avatar nickwork 657 Точки

Мерси за решението... имах го кода написан по този начин но не събмитвах, защото изходните данни все не ми излизаха...а то се оказва, че примерите са объркани, въпреки това евала за старанието и успех на изпита (жалко, че не мога да ти дам best answer :))

0
NTonchev avatar NTonchev 4 Точки

Струва ли ми се, или за да даде 50/50 на структурата е нужно да има създаден и имплементиран клас "Controller"?

Прегледах твоя код, сравних го с моя, докарах ги до почти един и същ, но при мен продължаваше да дава 44/50. След това разгледах, че при твоето решение я има логиката и за клас "Controller". Премахнах класа от твоето решение, закоментирах частта в Engine която инстанциира Controller, събмитнах и също даде 44/50.

Това е доста странно и доста объркващо, предвид че в условието за структурата изобщо не се споменава това...

Не знам, аз ли бъркам нещо?

0
DimitarKazakov avatar DimitarKazakov 17 Точки

Според мен проблемът ти идва от някое пропърти в сетъра, на някой клас. Може би не ти е protected, или ти е protected а трябва да е private. Говоря малко наизуст, защото сега нямам възможност да погледна задачата, а и нямам твоето решение. Може би ако изпратиш твоето решение ще имам повече яснота къде може да бъде грешката. 

0
NTonchev avatar NTonchev 4 Точки

Това е последното ми решение: https://drive.google.com/file/d/1ooffpbDOOaY3CJaC-yNjV2eOUWIVMwro/view?usp=sharing

Ще се радвам, ако може да дадеш някоя насока какво да се подобри. Като цяло тези задачи за структури са голяма мъка...

0
DimitarKazakov avatar DimitarKazakov 17 Точки

На пръв поглед бих те посъветвал да промениш сетъра на Gun в класа Player от set на private set. Преглеждам решението ти от телефона и затова ми е малко тегаво. Пробвай това, което ти казах да видим какво ще стане. 

0
NTonchev avatar NTonchev 4 Точки

Well....actually that was the issue...

Сега стана 50/50. Макар че мисля че в някой от submittion-ите го бях set-нал на private, a може и да е било protected. Голяма играчка са тези структури.

Anyway, благодаря за помоща!

0
nickwork avatar nickwork 657 Точки

Като съвет винаги преглеждай интерфейсите, които наследяваш, ако в тях на дадено пропърти има само get, това означава, че там където го наследяваш (интерфейса) задължително трябва да ползваш privet set; (случайно ако ти трябва това пропърти да се достъпва от някой наследник след това го правиш на protected);

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