所以我正在尝试为鸟类创建一个生物代码。我在运动方面遇到了麻烦。所以它朝北方向移动3步,然后向东移动3步,然后向南3移动,然后向西3移动。我试图根据这个事实创建一个if / else,但是我在构建一个会占用的方面遇到了麻烦方向性的变化。我正在尝试解决基于这种模式的if else:
步骤1 ^(方向)
第2步^
第3步^
第4步>
第5步>
第6步>
步骤7 V
步骤8 V
步骤9 V
步骤10<
步骤11<
步骤12<
import java.awt.*;
public class Bird extends Critter {
length = 3;
step = 0;
Direction original = Direction.NORTH;
// method comment goes here
public Attack fight(String opponent) {
if (opponent == %) {
return Attack.ROAR;
}else{
return Attack.POUNCE;
}
}
// method comment goes here
public Color getColor() {
return Color.BLUE;
}
// method comment goes here
public String toString() {
return "V";
}
public boolean eat() {
return false;
}
public Direction getMove(){
step++;
if (step < length && ) {
direction = original;
} else if (step == length) {
direction = Direction.EAST;
}
return direction;
}
}
答案 0 :(得分:0)
assuming direction is an enum...
Direction direction = 0;
public Direction getMove(){
++step;
if (step > length) {
direction++;
step = 0;
}
if(direction > 3)
{
direction = 0;
}
return direction;
}
基本上这个实现允许你调用函数getMove(),而不必担心你所使用的12步是什么,因为它通过在长度&#39之后直接交换到下一个直接来处理方向切换;步骤已经完成。
如果您需要改变方向,可以使用开关来完成。