尝试编写一个遍历我的数组的循环,并将每个玩家的生命值提高100

时间:2013-09-04 01:21:14

标签: java arrays loops

  

打印屏幕:

Player13
Character Name: Fourz, Class Name: Ninja
Strength: 17, Agility: 21, Stamina: 17, Intellect: 25, Spirit: 20, Health: 52, Mana: 50

我只需要一个循环来完成我的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; 
            }

这是我之前写的一个循环,用于帮助循环播放所有16个玩家统计数据,并按照健康分数从最低到最高排序。任何有关更改此语法以将生命值增加100的帮助都非常感谢。

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

3 个答案:

答案 0 :(得分:1)

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

当然,假设玩家对象的健康变量被称为“健康”。

答案 1 :(得分:1)

如果您不介意公开健康变体公众,那么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);

答案 2 :(得分:0)

您想要做的是两个单独的操作。

  1. 按玩家健康排序
  2. 按变量增加玩家健康状况
  3. 我建议为第一个选项检查以下两件事:

    Using Array.Sort Using Array.Sort for Comparator

    一个简单的例子就是这样:

    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
        }
    });
    

    您还可以探索更复杂的选项,但现在就是这样。

    至于增加每个玩家的健康状况,你可以实现一个简单的forforeach循环来处理它。

    像:

    int increment = 100;
    for (Player player : myPlayers) {
        player.Health += increment;
    }
    

    编辑:

    添加了一些链接来帮助您: