Добавил логику битвы с Math.random(). Но этот долбанатор всё равно матерится на 6 условие, хотя грудь выходит, как и другие части тела.
public abstract class AbstractRobot implements Attackable, Defensable {
private static int hitCount;
final double min = 1;
final double max = 4;
final int attackRnd = rnd(min, max);
final int defRnd = rnd(min, max);
public BodyPart attack() {
BodyPart attackedBodyPart = null;
hitCount = attackRnd;
if (hitCount == 1) {
attackedBodyPart = BodyPart.ARM;
} else if (hitCount == 2) {
attackedBodyPart = BodyPart.HEAD;
} else if (hitCount == 3) {
hitCount = 0;
attackedBodyPart = BodyPart.LEG;
}
else if (hitCount == 4) {
hitCount = 0;
attackedBodyPart = BodyPart.CHEST;
}
return attackedBodyPart;
}
public BodyPart defense() {
BodyPart defendedBodyPart = null;
hitCount = defRnd;
if (hitCount == 1) {
defendedBodyPart = BodyPart.HEAD;
} else if (hitCount == 2) {
defendedBodyPart = BodyPart.LEG;
} else if (hitCount == 3) {
hitCount = 0;
defendedBodyPart = BodyPart.ARM;
}
else if (hitCount == 4) {
hitCount = 0;
defendedBodyPart = BodyPart.CHEST;
}
return defendedBodyPart;
}
public int rnd(double min, double max){
max -= min;
return (int)((Math.random() * ++max) + min);
}
}package com.javarush.task.task13.task1328;
public class Robot extends AbstractRobot{
private String name;
public Robot(String name) {
this.name = name;
}
public String getName() {
return name;
}
}