打印屏幕:
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的新手。
答案 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)
您想要做的是两个单独的操作。
我建议为第一个选项检查以下两件事:
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
}
});
您还可以探索更复杂的选项,但现在就是这样。
至于增加每个玩家的健康状况,你可以实现一个简单的for
或foreach
循环来处理它。
像:
int increment = 100;
for (Player player : myPlayers) {
player.Health += increment;
}
编辑:
添加了一些链接来帮助您: