我正在使用 LRV(最近最少访问)算法制作程序。基本上,我为机器人设计了穿过网格(这是一个二维字符数组)的算法。机器人在穿越网格时检查每个单元格是EMPTY
(由“O”定义)、OCCUPIED
(由“S”定义)还是BLOCKED
(由“X”定义)。这些单元只能被称为传感器的对象占据(这有自己的类)。BLOCKED
无法遍历单元格。每次机器人必须移动时,它都会从传感器接收一个方向。所以一开始机器人会被放置在网格上,它会放下一个传感器并从中获取方向,或者从预先存在的传感器中获取方向。
现在我已经解释了我的程序,我的具体问题是,我有一个 Sensor 类,它有一个getVisitingDirection
返回 INT 的方法。我有一个针对每个方向的计数器(INT 类型的北、南、东和西)这是课程。
package ITI1121A;
public class Sensor {
private int cColumns;
private int cRows;
private int North;
private int South;
private int West;
private int East;
public Sensor(int sX, int sY) {
cColumns = sX;
cRows = sY;
South= -1;
North = -1;
West = -1;
East = -1;
}
/* ADD YOUR CODE HERE */
public int getX ()
{return cColumns;}
public int getY ()
{return cRows;}
public int getVisitingDirection(GridMap g1)
boolean temp;
{
if(cRows==0){
//top row
if(cColumns==0){
temp=g1.isCellBlocked(cColumns+1,cRows);
if (temp=false){
return West++;
}
}
}
}
public void increaseCounter(int direction)
{}
}
现在我被困在 getVisitingDirection 上,我尝试使用 if 语句来检查网格的左上边缘(坐标 0,0),是的,就是这样。我希望该方法给机器人一个方向,然后增加该方向的计数器。甚至在这里得到这个概念也有真正的困难。任何帮助将不胜感激!谢谢瓦伦