Java 尝试编写一个循环,通过我的数组,使每个玩家的生命值增加100

Java 尝试编写一个循环,通过我的数组,使每个玩家的生命值增加100,java,arrays,loops,Java,Arrays,Loops,打印屏幕: 我只需要一个循环,通过我的16套不同的球员统计数据,并给予健康奖金100。真的很难写出一个正确的循环 public static void sortPlayersByHealth() { for (int outer = 0; outer < playerObjectArray.length -1; outer ++) { for (int inner = 0; inner < playerObjectArray.length - 1; inn

打印屏幕:

我只需要一个循环,通过我的16套不同的球员统计数据,并给予健康奖金100。真的很难写出一个正确的循环

public static void sortPlayersByHealth() {

    for (int outer = 0; outer < playerObjectArray.length -1; outer ++) {

        for (int inner = 0; inner < playerObjectArray.length - 1; inner ++ ) {


            int num1 = playerObjectArray[inner].gethealth();
            //must + 1 for it to know to go to the next number and find the > number.
            int num2 = playerObjectArray[inner+1].gethealth();
            if(num1 > num2) {
                Player Player = playerObjectArray[inner];

                playerObjectArray[inner] = playerObjectArray[inner+1];
                playerObjectArray[inner+1] = Player; 
            }
publicstaticvoid sortPlayersByHealth(){
对于(int-outer=0;outer数字。
int num2=playerObjectArray[inner+1].gethealth();
如果(num1>num2){
Player-Player=playerObject数组[内部];
playerObjectArray[内部]=playerObjectArray[内部+1];
PlayerObject数组[内部+1]=玩家;
}
这是我之前写的一个循环,用来帮助循环所有16个玩家的统计数据,根据他们的生命值得分从低到高对他们进行排序。任何将此语法更改为生命值增加100的帮助都将不胜感激

抱歉,如果这没有意义,我是编程新手,也是stackoverflow新手

public void BumpHealth() {
  for (Player player : playerObjectArray) {
    player.health += 100;
  }
}

当然,假设player对象的健康变量称为“health”。

如果您不介意公开健康变量public,那么回答为
player.health+=100
显然更有效,否则:

实施

public void changeHealth(int value) {
    this.health += value;    //as value parameter is a signed integer if you pass negative value you can "remove" too
}
在Player类中。假设健康是字段的名称

或者使用set和get方法

player.setHealth(player.getHealth() + 100);

您要做的是两个独立的操作

  • 按玩家健康状况排序
  • 通过变量增加玩家的生命值
  • 我建议在第一个选项中检查以下两件事:

    下面是一个简单的例子:

    Player[] myPlayerArray = new Player[2]; //get from whereever
    Arrays.sort(myPlayerArray, new Comparator<Player>() {
        public int compare(Player p1, Player p2) {
            return p1.Health.compareTo(p2.Health); //or however you want it ordered
        }
    });
    
    编辑:

    添加了一些链接以帮助您完成此操作:


    “编程新手”-然后我会建议一些基础教程,可能是的副本。为了清楚起见,这比副本要好得多,但实际上应该是对该问题的编辑(不是一个全新的问题)@MitchWheat我已经看过了基本教程,我目前正在学习这些东西,但我只是陷入困境,需要一些外部帮助。你的playerObjectArray声明的怎么样?你试过调试你的代码以查看值是如何变化的吗?@H-Patel我的代码很大,因为这是我们的第一次任务…你是说这个吗?playerObjectArray[0]=新玩家(“玩家1”、“无人机”、“忍者”、无人机忍者[0]、无人机忍者[1]、无人机忍者[2]、无人机忍者[3]、无人机忍者[4]、无人机忍者[5]、无人机忍者[6]);
    Player[] myPlayerArray = new Player[2]; //get from whereever
    Arrays.sort(myPlayerArray, new Comparator<Player>() {
        public int compare(Player p1, Player p2) {
            return p1.Health.compareTo(p2.Health); //or however you want it ordered
        }
    });
    
    int increment = 100;
    for (Player player : myPlayers) {
        player.Health += increment;
    }