task13.task1328

6. Изменить код согласно новой архитектуре и добавить новую логику:

6.1. Сделать класс AbstractRobot абстрактным, вынести логику атаки и защиты из Robot в AbstractRobot.

6.2. Отредактировать класс Robot учитывая AbstractRobot.

6.3. Расширить класс BodyPart новой частью тела BodyPart.CHEST(«грудь«).

6.4. Добавить новую часть тела в реализацию интерфейсов Attackable и Defensable (в классе AbstractRobot).

public final class BodyPart
{
final static BodyPart LEG = new BodyPart(«нога»);
final static BodyPart HEAD = new BodyPart(«голова»);
final static BodyPart ARM = new BodyPart(«рука»);
final static BodyPart CHEST = new BodyPart(«грудь»);

private String bodyPart;

private BodyPart(String bodyPart)
{
this.bodyPart = bodyPart;
}

@Override
public String toString()
{
return this.bodyPart;
}
}

public class Robot extends AbstractRobot
{

private String name;

public Robot(String name)
{
this.name = name;
}

public String getName()
{
return name;
}

}

public abstract class AbstractRobot implements Attackable, Defensable
{
private static int hitCount;

public abstract String getName();

public BodyPart attack()
{
BodyPart attackedBodyPart = null;
hitCount = hitCount + 1;

if (hitCount == 1)
{
attackedBodyPart = BodyPart.ARM;
} else if (hitCount == 2)
{
attackedBodyPart = BodyPart.HEAD;
}
else if (hitCount == 3)
{

attackedBodyPart = BodyPart.LEG;
}
else if (hitCount == 4)
{
hitCount = 0;
attackedBodyPart = BodyPart.CHEST;
}
return attackedBodyPart;
}

public BodyPart defense()
{
BodyPart defencedBodyPart = null;
hitCount = hitCount + 1;

if (hitCount == 1)
{
defencedBodyPart = BodyPart.HEAD;
} else if (hitCount == 2)
{
defencedBodyPart = BodyPart.LEG;
}
else if (hitCount == 3)
{
defencedBodyPart = BodyPart.ARM;
}
else if (hitCount == 4)
{
hitCount = 0;
defencedBodyPart = BodyPart.CHEST;
}
return defencedBodyPart;
}

}

Валидатор говорит, что проблема в логике атаки и защиты. Но я пробовал абсолютно все варианты. Кто знает в чем проблема, буду очень благодарен.

Комментариев нет

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.