2014-11-05 105 views
-1

我目前的Java制作文字冒险游戏,每次的价值,但我已经遇到了一个问题:更改变量的另一个变量的变化

我需要一个String变量的值每次改变一个特定的值变化的变化。 我想要的程序来执行这项任务(再继续离开的地方),每次的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

你有问题吗? – 2014-11-05 06:28:41

+1

只要你需要'enemyp'的值而不是连续地进行计算就可能更容易。 – Henry 2014-11-05 06:32:51

+0

我的问题是:请halp – JavaPr0grammer 2014-11-05 09:23:01

回答

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

你问的问题听起来像它可能是通过创建一个类来保存enemyposition整数交代。给你的类添加一个“setter”方法来设置整数。您可以编写setter方法,以便在设置整数时还设置一个字符串。然后编写一个“getter”方法来检索字符串。这是确保两个变量一起变化的常用方法。

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(),并使用方法代替分配给它。

这不是唯一的解决方案(一个数组或Map将整数映射到字符串可能足够好),但它是一种OOP方式来做事情。

+0

谢谢!我会尽力实现这一点,并让你知道它是如何发展的。 :d – JavaPr0grammer 2014-11-05 07:39:34