每次另一个变量发生变化时,更改变量的值

时间:2014-11-05 06:28:06

标签: java string loops variables int

我目前正在用Java制作文字冒险游戏,但我遇到了一个问题:

每次特定String变量的值发生变化时,我都需要更改int变量的值。 我希望程序在每次int变量的值发生变化时执行此任务(然后从中断处继续):

if (enemyposition == 1) {
    enemyp = "in front of you";
}
else if (enemyposition == 2) {
    enemyp = "behind you";
}
else if (enemyposition == 3) {
    enemyp = "to your left";
}
else if (enemyposition == 4) {
    enemyp = "to your right";
}
else {
    enemyp = "WOAH";
}

谢谢! :d

2 个答案:

答案 0 :(得分:2)

使用数组可以使代码更短。

String[] message = {"WOAH", // 0
                    "in front of you", // 1
                     "behind you", // 2
                     "to your left", // 3
                     "to your right"}; // 4
enemyp = (enemyposition > 0 && enemyposition < 5) ? message[enemyposition] : 
                                                    message[0];

答案 1 :(得分:1)

您要问声音的问题可能是通过创建一个容纳enemyposition整数的类来回答它。添加&#34; setter&#34;你的类设置整数的方法。您可以编写setter方法,以便在设置整数时设置字符串。然后写一个&#34; getter&#34;检索字符串的方法。这是确保两个变量一起变化的一种常用方法。

public class EnemyPosition {
    private int enemyposition;
    private String enemyp;
    public void setPosition(int n) { 
        enemyposition = n;
        enemyp = [adapt your code to set this based on the position]
    }
    public String getEnemyp() { 
         return enemyp;
    }
}

我确定缺少很多细节,但你明白了。然后,在代码的其余部分中使用int enemyposition代替EnemyPosition enemyposition = new EnemyPosition(),并使用setPosition方法而不是分配给它。

这不是唯一的解决方案(将整数映射到字符串的数组或Map可能已经足够了),但它只是一种OOP方式。