Loading...

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

indieza avatar indieza 46 Точки

[Exercise in class] - OOP- Капсулация и полиморфизъм - Battleships

Стигнах до тук и не мога да продължа. Моля за малко помощsmiley. А и също така се чудя дали няма да е добре като се правят тези упражнения в час да се пускат някакви нулеви тестове за хората които са онлайн, или пък да се отделя малко време от лекцията за да се обясняват задачите и техните решения?

 

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

Тагове:
1
C# OOP Basics
GalyaGeorgieva avatar GalyaGeorgieva 88 Точки

Привет, аз също се блъсках до сега с тази задача.
Качвам моите решения ТУК, но доста съм го орязала. Основните полета са в абстрактния клас и основно овърлоуди на методите. Може на места да съм променила някой стринг за отпечатване, но не мисля, че е по същество разликата.
Аз също съм онлайн обучение и ми е трудно да разбера дали правилно си решавам казусите, така че погледни ги и ако ти помогнат с нещо ще е супер, а ако има някой, който е бил на лекцията и може да направи обратна връзка за кода ще съм благодарна.

Поздрави, Галя.

1
11/06/2015 22:44:45
indieza avatar indieza 46 Точки

Погледнах ти решението и ми се струва че доста си го изрязала.

Имам въпрос защо в Engine цикъла свършва до 11 а и ми се струва че в Engine липсват неща тоест не виждам стъпка 4, 5, 6 от условието в твоето решение. smiley

0
GalyaGeorgieva avatar GalyaGeorgieva 88 Точки

Привет,

В цикъла съм сложила 11 само за тест и съм забравила да го върна на 5.

Що се отнася до стъпка 4: затрила съм проверката  if (!attacker.IsBattleship), но я оправих сега и я има в кода.
Стъпка 5: Методът Attack е в абстрактният клас - родител BattleShip и е override в наследниците, като всеки от тях изкарва различно съобщение в зависимост от това какъв тип боен кораб е.

Стъпка 6: Обектът attacker е от клас Ship и за да може да се достъпи метода Attack е кастнат към IAttack, както е указано в заданието. Това е в края на Engine кода:

 var attack = (IAttack)attacker ;
 return attack.Attack(defender);

което е равносилно на  return ((IAttack)attacker).Attack(defender);

Дано съм успяла да ти обесня разбираемо и да съм го написала правилно, разбира се :)
Поздрави.

1
indieza avatar indieza 46 Точки

Супер smiley сега ми стана ясно. Супер си Галя, благодаря ти за помощтаlaugh

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