猫狗大战
(1)定义类Cat,要求如下:
整型字段hp,设置相应的get和set方法;
无参数列表构造方法Cat(),创造出的hp默认为80;
带参数构造方法Cat(int hp),创造出指定hp的对象;
方法attack(Dog g),参数为Dog对象,每次调用此方法后,用随机数的方式,随机产生0-9的整数伤害,减少参数 Dog对象的hp,并且攻击结果需要在控制台输出,格式为“猫攻击狗,产生**点伤害,狗当前HP为**”。
(2)构建类Dog,要求如下:
整型字段hp,设置相应的get和set方法;
无参数列表构造方法Dog(),创造出的hp默认为90;
带参数构造方法Dog(int hp),创造出指定hp的对象;
方法attack(Cat c),参数为猫对象,每次调用此方法后,用随机数的方式,随机产生0-8的整数伤害,减少参数Cat 对象的hp,并且攻击结果需要在控制台输出,格式为“狗攻击猫,产生**点伤害,猫当前HP为**”。
(3)构建类Fight,要求如下:
拥有main方法,在该方法中,首先构建猫和狗对象,使用循环让猫和狗相互攻击,每次攻击完毕后,判断泰坦和宙斯相应的HP,如果某一方HP小于等于0,则停止循环,并输出结果,格式为“猫/狗HP为**,已经失败,胜利者是狗/猫!”
import java.util.Random;
public class Cat {
private int hp;
public Cat() {
this(80);
}
public Cat(int hp) {
this.hp = hp;
}
public int getHp() {
return hp;
}
public void setHp(int hp) {
this.hp = hp;
}
public void attack(Dog dog) {
Random random = new Random();
int damage = random.nextInt(10);
int dogHp = dog.getHp() - damage;
dog.setHp(dogHp);
System.out.printf("猫攻击狗,产生%d点伤害,狗当前HP为%d%n", damage, dog.getHp());
}
}
import java.util.Random;
public class Dog {
private int hp;
public Dog() {
this(90);
}
public Dog(int hp) {
this.hp = hp;
}
public int getHp() {
return hp;
}
public void setHp(int hp) {
this.hp = hp;
}
public void attack(Cat cat) {
Random random = new Random();
int damage = random.nextInt(9);
int catHp = cat.getHp() - damage;
cat.setHp(catHp);
System.out.printf("狗攻击猫,产生%d点伤害,猫当前HP为%d%n", damage, cat.getHp());
}
}
public class Fight {
public static void main(String[] args) {
Cat cat = new Cat();
Dog dog = new Dog();
while (cat.getHp() > 0 && dog.getHp() > 0) {
cat.attack(dog);
if (dog.getHp() <= 0) {
System.out.printf("猫HP为%d,已经失败,胜利者是狗!%n", cat.getHp());
break;
}
dog.attack(cat);
if (cat.getHp() <= 0) {
System.out.printf("狗HP为%d,已经失败,胜利者是猫!%n", dog.getHp());
break;
}
}
}
}