我只是新编码我不确定这是否可能在我的程序中我应该能够循环1 - 2 - 1 - 2 - 1 - 2交替,但我不知道该怎么做
我应该把这个思考函数放进去,所以每当我调用它时,它会在1-2-1-2-1-2之间交替显示
示例第一次我打电话给它认为会返回1然后第二次会返回2然后第三次会再次返回1
public int think() {
int i=1;
int z=1;
if(i==1){
return i;
}
if(i==2){
return i;
}
return i;
}
以下代码获取思考函数的返回值
public static String askEnemy(Enemy enemy){
String x = "null";
switch (enemy.think()) {
case 1:
x = "Hit";
break;
case 2:
x = "Defend";
break;
case 3:
x = "Charge";
break;
}
return x;
}
答案 0 :(得分:0)
变量i
和z
是think
方法的本地变量,因此它们会在每次调用时初始化为您在开始时拥有的值。你无法使用它们继续发展状态。
您需要在Enemy
类中拥有一个成员变量。
class Enemy {
...
private int thinkVar = 1;
public int think() {
int thinkResult = thinkVar;
thinkVar = (thinkVar == 1) ? 2 : 1;
return thinkResult;
}
}
修改强>
如果您可以将其设为-1
和1
,则只需撰写thinkVar = -thinkVar
答案 1 :(得分:0)
您可以从主类中使用全局变量中受益,并可以将其发送到您将think
方法作为参数开发的其他类。检查以下内容:
public int think(int value)
{
if (value % 2 = 0)
return 21
else
return 1;
}
主要课程:
int value = 1;
...
public static String askEnemy(Enemy enemy){
String x = "null";
switch (enemy.think(value)) {
case 1:
x = "Hit";
break;
case 2:
x = "Defend";
break;
case 3:
x = "Charge";
break;
}
value++;
return x;
}
答案 2 :(得分:0)
需要Enemy
类内的Enemy
变量。这样你就可以拥有多个具有不同值的敌人。否则,如果所有public class Enemy {
private int thinkValue;
public Enemy(){
thinkValue = 1;
}
//Other functions and variables are probably in this class.
public void setThinkValue(int value){
thinkValue = value;
}
public int getThinkValue(){
return thinkValue;
}
}
个对象都有一个值,则该值对于每个对象都不是独立的。
55 23 L * ? *