public class Solution {
public static void main(String[] args) {
Cat cat1=new Cat("barsik", 5, 24,10);
Cat cat2=new Cat("baris", 6, 23,11);
Cat cat3=new Cat("murka", 4, 25,9);
System.out.println(cat1.fight(cat2));
System.out.println(cat3.fight(cat2));
System.out.println(cat1.fight(cat3));
}
public static class Cat {
protected String name;
protected int age;
protected int weight;
protected int strength;
public Cat(String name, int age, int weight, int strength) {
this.name = name;
this.age = age;
this.weight = weight;
this.strength = strength;
}
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;
}
}
}
Евгений
8 уровень
код проходит проверку, но возвращает true только в том случае если все параметры первого кота больше чем параметры второго
Решен
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #598481
9 апреля 2019, 12:37
Ну заведи двух котов, у первого пусть больше age и weight, у второго strength.
Какой из котов у тебя победит?
Должно выполняться условие, что если один проигрывает второму, то второй должен побеждать первого (ну если у них не одинаковые характеристики, конечно).
0
Евгений
10 апреля 2019, 13:20
System.out.println(cat1.fight(cat3));
эта строка тоже возвращает fold, хотя по результатам 2:1
0
hidden #598481
10 апреля 2019, 15:16
false, а не fold.
Правильно, 2-1 по результатам.
У тебя счет считается score = 1+1+0 = 2.
И для ответа на вопрос победил или нет, ты смотришь, score > 2 или нет.
2 > 2? Нет. Поэтому false.
0
Евгений
11 апреля 2019, 07:51
Cпасибо))
0