死侍deadpool 2020-10-16 18:12 采纳率: 0%
浏览 322

java题猫狗大战 求教大佬

猫狗大战

(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为**,已经失败,胜利者是狗/猫!”
  • 写回答

1条回答 默认 最新

  • 小唐不会敲代码 2023-03-22 13:32
    关注
    
    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;
                }
            }
        }
    }
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据