public boolean fight(Cat anotherCat) {
int agePlus = this.age > anotherCat.age ? 1 : 0;
int weightPlus = this.weight > anotherCat.weight ? 1 : 0;
int strengthPlus = this.strength > anotherCat.strength ? 1 : 0;
int score = agePlus + weightPlus + strengthPlus;
return score > 2; // return score > 2 ? true : false;
}
Artur Navasardyan
8 уровень
Кто может обьчснить что делает этот метод . если можно подробно
Обсуждается
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
artemon
11 мая 2018, 09:43
Метод считает "победные очки" между этим (this) котом и другим (anotherCat) котом. У кого возраст/сила/вес больше, тому начисляется одно "победное очко". То есть, высчитывается превосходство по трём параметрам. Чтоб был выявлен победитель, нужно, чтоб какой-то кот (this или anotherCat) имел хотя бы два таких балла, то есть превосходил противника по двум из трёх параметров.
Соответственно, первые три строки - сравнение по каждому параметру между двумя котами и зачисление в переменную типа инт балла (1 или 0), потом сложение в одну суммирующую переменную и возврат значения туда, откуда метод был вызван. (только, если я верно помню задачу, должно быть всё-таки не > 2, а >= 2, потому что два из трёх - это уже победа)
+2