В классе Cat я объявил переменные, далее я передаю значения в эти переменные. Метод fight я реализовал, пусть и простенько. На деле все работает.
больше всего вызывают вопросы условия "Метод должен возвращать одно и тоже значение, если мы деремся с одним и тем же котом." и
"Если некий кот1 выигрывает у кота кот2, то кот2 должен проигрывать коту кот1."
Ведь при проверке программа отвечает этим требованиям.
package com.javarush.task.task05.task0502;
/*
Реализовать метод fight
Реализовать метод boolean fight(Cat anotherCat):
реализовать механизм драки котов в зависимости от их веса, возраста и силы.
Зависимость придумать самому.
Метод должен определять, выиграли ли мы (this) бой или нет, т.е. возвращать true, если выиграли и false - если нет.
Должно выполняться условие:
если cat1.fight(cat2) возвращает true,
то cat2.fight(cat1) должен возвращать false
Требования:
1. Класс Cat должен содержать конструктор без параметров.
2. Класс Cat должен содержать всего три поля: age, weight и strength. Поля должны быть публичные.
3. В классе Cat должен быть метод fight.
4. В методе fight реализовать механизм драки котов в зависимости от их веса, возраста и силы.
5. Метод должен возвращать одно и тоже значение, если мы деремся с одним и тем же котом.
6. Если некий кот1 выигрывает у кота кот2, то кот2 должен проигрывать коту кот1.
*/
public class Cat {
public int age;
public int weight;
public int strength;
public Cat(int age, int weight,int strength) {
this.strength = strength;
this.weight = weight;
this.age = age;
}
public boolean fight(Cat anotherCat) {
if ((age*weight)+strength < (anotherCat.age*anotherCat.weight)+anotherCat.strength){
return false;
}else if((age*weight)+strength == (anotherCat.age*anotherCat.weight)+anotherCat.strength){
return false;
}else{
return true;
}
}
public static void main(String[] args) {
Cat catVas = new Cat(6,1,1);
Cat catBar = new Cat(2,2,1);
System.out.println(catBar.fight(catVas));
System.out.println(catVas.fight(catBar));
}
}