我为学校项目创建了一个MazeSolver安卓应用程序。我正在使用堆栈来保存解决迷宫的路径的坐标位置。我编写了这个辅助方法,将坐标作为字符串返回,从单元格(0,0)返回到已解决的迷宫的最后一个单元格。
private String generateSolutionString()
{
ArrayList<String> list = new ArrayList<String>();
while (!path.isEmpty())
{
String temp = path.top().toString();
list.add(0, temp);
path.pop();
}
String solution = "";
boolean first = true;
for (String s : list)
{
if (first)
{
solution += s;
first = false;
}
solution += " " + s;
}
return solution;
}
我还重写了toString()方法:
public String toString()
{
return "(" + getX() + ", " + getY() + ")";
}
但是,当它将statusLabel更改为路径时,它会在开头打印两个(0,0)坐标。为什么要这样做?
答案 0 :(得分:2)
我认为你的意思是
solution += " " + s;
为else
else solution += " " + s;