Всем привет. Подскажите, где в коде ошибка?
Вроде бы оценка победителя происходит как и указано в условии, при сравнении каждого критерия (возраста, веса, силы) друг с другом..
И побеждает тот кот у кого 2 или больше критериев (при сравнении с другим котом) возвращают true.
package com.javarush.task.task05.task0502;
public class Cat {
public int age;
public int weight;
public int strength;
public Cat() {
}
public boolean fight(Cat anotherCat) {
int ageAdvantage = this.age > anotherCat.age ? 1 : 0;
int weightAdvantage = this.weight > anotherCat.weight ? 1 : 0;
int strengthAdvantage = this.strength > anotherCat.strength ? 1 : 0;
int score = ageAdvantage + weightAdvantage + strengthAdvantage;
return score >= 2; // return score >= 2 ? true : false;
}
public static void main(String[] args) {
Cat boris = new Cat();
Cat vasiliy = new Cat();
Cat barsik = new Cat();
vasiliy.age = 6;
vasiliy.weight = 5;
vasiliy.strength = 3; //vasiliy 14
boris.age = 5;
boris.weight = 4;
boris.strength = 4; //boris 13
barsik.age = 3;
barsik.weight = 4;
barsik.strength = 8; //barsik 15
System.out.println(vasiliy.fight(barsik)); //vasiliy win
System.out.println(boris.fight(vasiliy)); //boris loss
System.out.println(barsik.fight(vasiliy)); //barsik loss
}
}