我有一个 OOP 项目,我必须在其中对网格中小动物的 Action 进行编程。
这就是我现在拥有的。
public class Frog implements Critter {
//below is what letter represents the Frog in the grid. Works fine.
public char getChar() {
return 'F';
}
public int getMove(CritterInfo info) {
//need to count the moves to determine how far to move
int countF;
countF++;
int moveF2 = 0;
if (countF % 3 == 1) {
int moveF = (int)(Math.random() * 100);
moveF2 = moveF;
countF = 0;
}
else {
if (moveF2 < 25) {
return NORTH;
}
else if (moveF2 < 50) {
return SOUTH;
}
else if (moveF2 < 75) {
return EAST;
}
else {
return WEST;
}
}
}
Frog 应该选择一个随机方向,朝该方向移动 3 步,重复。
我不知道如何制作一个计数器来计算移动次数。我想到了:
public int getMove(CritterInfo info) {
int countF = 0;
countF++;
int moveF2 = 0;
if (countF % 3 == 1) {
int moveF = (int)(Math.random() * 100);
moveF2 = moveF;
countF = 0;
}
else {
...(cut)
}
}
但是上面的代码显然不起作用,因为它每次运行时都会将 countF 重置为 0。
最佳答案
你的countF变量是一个局部变量,因此每次调用该方法时它都会被初始化为0。你需要将其设为字段变量。如果它是字段变量,那么它将属于对象而不是方法。这意味着它只会在创建对象时被初始化为0。
int countF = 0;
public int getMove(CritterInfo info) {
countF++;
int moveF2 = 0;
if (countF % 3 == 1) {
int moveF = (int)(Math.random() * 100);
moveF2 = moveF;
countF = 0;
} else {
}
}
关于java - 如何制作计数器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21198561/