我目前正在用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
答案 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方式。