yangbaichuan 发表于 2023-4-10 22:29:50

求助大佬们,这个怎么用java写出来啊,对我来说超纲了

格斗游戏(每个游戏角色的姓名,血量,性别都不相同,在选人物的时候(new对象的时候),这些信息就应该被确定下来)游戏启动后,展示如下效果:
“NNN打了MMM一下,造成了XXX点伤害,MMM还剩XXX点血量““NNN/MMM KO了MMM/NNN”具体要求如下:
(1)创建一个Javabean类,在其中写入角色的属性,包含:①姓名,②血量,③性别,)
(2)分别生成每个属性的getXX和setXX方法(3)生成无参和全参构造(4)创建一个测试类
(5)        伤害随机

isdkz 发表于 2023-4-10 22:32:19

好的,我可以帮您提供一个示例代码,您可以根据需要进行修改和扩展。

首先,我们需要创建一个名为"Role"的JavaBean类,其中包含姓名,血量和性别这三个属性:

public class Role {
    private String name;
    private int health;
    private String gender;
   
    public Role() {
      
    }
   
    public Role(String name, int health, String gender) {
      this.name = name;
      this.health = health;
      this.gender = gender;
    }
   
    public String getName() {
      return name;
    }
   
    public void setName(String name) {
      this.name = name;
    }
   
    public int getHealth() {
      return health;
    }
   
    public void setHealth(int health) {
      this.health = health;
    }
   
    public String getGender() {
      return gender;
    }
   
    public void setGender(String gender) {
      this.gender = gender;
    }
}

接下来,我们可以创建一个名为"Game"的测试类,用于展示游戏效果:

import java.util.Random;

public class Game {
    public static void main(String[] args) {
      Role role1 = new Role("张三", 100, "男");
      Role role2 = new Role("李四", 100, "女");
      Random random = new Random();
      
      while (role1.getHealth() > 0 && role2.getHealth() > 0) {
            int damage = random.nextInt(20) + 10; // 伤害随机在10-29之间
            String attacker = random.nextBoolean() ? role1.getName() : role2.getName();
            String victim = attacker.equals(role1.getName()) ? role2.getName() : role1.getName();
            int victimHealth = attacker.equals(role1.getName()) ? role2.getHealth() : role1.getHealth();
            
            victimHealth -= damage;
            victimHealth = Math.max(victimHealth, 0);
            
            System.out.println(attacker + "打了" + victim + "一下,造成了" + damage + "点伤害," + victim + "还剩" + victimHealth + "点血量。");
            
            if (victimHealth == 0) {
                System.out.println(attacker + " KO了" + victim);
                break;
            }
            
            if (attacker.equals(role1.getName())) {
                role2.setHealth(victimHealth);
            } else {
                role1.setHealth(victimHealth);
            }
      }
    }
}

在这个测试类中,我们创建了两个角色"role1"和"role2",并使用Random类生成随机伤害和攻击者。

每次攻击后,我们根据受害者的姓名和当前的血量,打印出相应的信息。如果有一方的血量降为0,游戏就结束了,并打印出胜利者的信息。

这样,一个简单的格斗游戏就完成了,您可以根据需要进行修改和扩展。

歌者文明清理员 发表于 2023-4-10 22:40:29

好的,我来为您完成这个任务。

首先,我会创建一个名为Fighter的JavaBean类,并在其中定义角色的属性:姓名、血量和性别。代码实现如下:
public class Fighter {
    private String name;
    private int hp;
    private String gender;

    public Fighter() {}

    public Fighter(String name, int hp, String gender) {
      this.name = name;
      this.hp = hp;
      this.gender = gender;
    }

    public String getName() {
      return name;
    }

    public void setName(String name) {
      this.name = name;
    }

    public int getHp() {
      return hp;
    }

    public void setHp(int hp) {
      this.hp = hp;
    }

    public String getGender() {
      return gender;
    }

    public void setGender(String gender) {
      this.gender = gender;
    }
}

然后,我会创建一个测试类FightGame,包括了随机伤害的实现。具体代码如下:
import java.util.Random;

public class FightGame {
    public static void main(String[] args) {
      Fighter fighter1 = new Fighter("张三", 100, "男");
      Fighter fighter2 = new Fighter("李四", 100, "女");
      Random random = new Random();
      
      while (fighter1.getHp() > 0 && fighter2.getHp() > 0) {
            int damage = random.nextInt(20) + 10; // 产生10~30的随机伤害
            if (random.nextBoolean()) {
                fighter2.setHp(fighter2.getHp() - damage);
                System.out.println(fighter1.getName() + "打了" + fighter2.getName() + "一下,造成了" + damage + "点伤害," + fighter2.getName() + "还剩" + fighter2.getHp() + "点血量");
            } else {
                fighter1.setHp(fighter1.getHp() - damage);
                System.out.println(fighter2.getName() + "打了" + fighter1.getName() + "一下,造成了" + damage + "点伤害," + fighter1.getName() + "还剩" + fighter1.getHp() + "点血量");
            }
      }

      if (fighter1.getHp() <= 0) {
            System.out.println(fighter2.getName() + " KO了" + fighter1.getName());
      } else {
            System.out.println(fighter1.getName() + " KO了" + fighter2.getName());
      }
    }
}

以上就是我的代码实现,您可以在此基础上进行测试和修改。

yangbaichuan 发表于 2023-4-10 22:44:35

歌者文明清理员 发表于 2023-4-10 22:40
好的,我来为您完成这个任务。

首先,我会创建一个名为Fighter的JavaBean类,并在其中定义角色的属性: ...

感谢帮助,可以睡个好觉了

yangbaichuan 发表于 2023-4-10 22:45:11

感谢帮助,我会继续加油的
页: [1]
查看完整版本: 求助大佬们,这个怎么用java写出来啊,对我来说超纲了