下面是一些 if 语句,用于根据机器人在地图上的位置以及他所面对的方向向机器人的飞行员传递正确的方向。有一点重复,但是当我尝试结合条件时,程序停止工作。有什么缩短这个的技巧吗?
int changeX= x-lowest.getX();
int changeY= y-lowest.getY();
if(changeX!=0){
System.out.println("x changed");
if(changeX<0 && robot.getFacing()== 'N'){
robot.checkDirection('L','W');
}
else if(changeX<0 && robot.getFacing()== 'W'){
robot.checkDirection('L','W');
}else if(changeX<0 && robot.getFacing()== 'S'){
robot.checkDirection('R','W');
}else if(changeX<0 && robot.getFacing()== 'E'){
robot.checkDirection('R','W');
}else if (changeX>0 && robot.getFacing()== 'S'){
robot.checkDirection('L','E');
}else if (changeX>0 && robot.getFacing()== 'E'){
robot.checkDirection('L','E');
}else{
robot.checkDirection('R', 'E');
}
}else{
System.out.println("y changed");
if(changeY<0 && robot.getFacing()== 'N'){
robot.checkDirection('L','S');
}else if(changeY<0 && robot.getFacing()== 'W'){
robot.checkDirection('L','S');
}else if(changeY<0 && robot.getFacing()== 'E'){
robot.checkDirection('R','S');
}else if(changeY<0 && robot.getFacing()== 'S'){
robot.checkDirection('R','S');
}else if (changeY>0 && robot.getFacing()== 'S'){
robot.checkDirection('L','N');
}else if (changeY>0 && robot.getFacing()== 'E'){
robot.checkDirection('L','N');
}else{
robot.checkDirection('R','N');
}
}
//change the current cell and the x/y
currentCell = lowest;
x=lowest.getX();
y=lowest.getY();
if(goal()){
moving=false;
System.out.println("Goal Achieved!");
}
}
}