我正在使用LRV(最近访问过的最少)算法制作程序。 基本上,我设计了一个机器人遍历网格(这是一个2D字符数组)的算法。遍历网格的机器人检查每个单元格是EMPTY(由' - '定义),OCCUPIED(由'O'定义)还是BLOCKED(由'X'定义)。 单元格只能被称为Sensor的对象占用(这有自己的类)。 无法遍历BLOCKED单元格。 每次机器人必须移动时,它接收来自传感器的方向。因此,在开始时,机器人将被放置在网格上,它将丢弃传感器并从中获取方向,或者从预先存在的传感器获取方向。
现在我已经解释了我的节目, 我的具体问题是,我有我的GridMap类
public class GridMap {
private int height;
private int width;
private char[][] grid;
public GridMap(int x, int y) {
height=x;
width=y;
grid = new char [x][y];
}
public int getHeight(){
return height;
}
public int getWidth(){
return width;
}
public String toString(){
String s1 =
return s1;
}
public char getElementAt(int x, int y){
}
public void setElementAt(int x, int y){
}
public boolean isCellBlocked(int x, int y){
}
public double getCoverageIndex(){
return COVERAGE_INDEX;
}
}
我想知道的是如何将我的2D char数组表示为 - ,O和X的字符串。 我试图尽可能详细,如果有人有任何问题,我愿意尽快回答。 任何帮助将受到高度赞赏。 感谢
Varun的
答案 0 :(得分:4)
这是你的意思吗?
public String toString()
{
StringBuilder builder = new StringBuilder();
for(int i = 0; i < getHeight(); i++)
{
for(int j = 0; j < getWidth(); j++)
{
builder.append(grid[i][j]);
}
}
return builder.toString();
}
答案 1 :(得分:0)
public String toString() {
StringBuilder sb = new StringBuilder();
for (int i=0; i< this.grid.length; i++) {
for (int j=0; j < this.grid[i].length; j++) {
sb.append(grid[i][j]);
}
sb.append("\n");
}
return sb.toString();
}
答案 2 :(得分:0)
做这样的事情
public String toString()
{
String result = "";
for(int i = 0; x < grid.length; i++)
{
for(int y = 0; y < grid[x].length; y++)
{
//you may need to convert each char to string here first
result += grid[x][y];
}
}
return result;
}
答案 3 :(得分:0)
自然表示将是明确的:
"-----X----O--X\n" + // i=0, j=0,...width-1
"---X----------\n" + // i=1, j=0,...width-1
...
"------XX---O--\n" // i=height-1
不幸的是你不使用(i,j)但是(x,y)。 其他答案都没关系。