【发布时间】:2017-11-01 15:19:54
【问题描述】:
我正在开发一个迷宫求解程序,它基本上从一个文本文件中读取一个迷宫,从起点检查它周围的所有侧面并移动到空旷的空间,标记上一个位置并在找到出口时终止。
虽然算法本身已经完成,但有一些事情我想澄清一下。该程序需要使用我没有使用的通用类 Stack、Queue 和 Coordinates(存储当前 x,y 坐标)(我使用 Vectors 来保存位置)和其他操作,例如在堆栈。
这是主循环:
if(maz[x][y-1]==' '||maz[x][y-1]=='S'){
if(maz[x][y-1]=='S')
exitfound=true;
maz[x][y]='*';
maz[x][y-1]='@';
y=y-1;
}
它检查上面的坐标是空地还是出口('S'),如果是,它会移动到那里,同时用*标记上一个位置,用'@标记它要移动到的位置'。这也与其他 3 面重复。在程序结束时,所有步行空间都将标有 *。但是,我需要使用上述泛型类来操作坐标。
这些是必需的类及其对象:
Stack<Coordinate> path = new Stack<Coordinate>(40);
Stack<Queue<Coordinate>> possibilities = new Stack<Queue<Coordinate>>(40);
Coordinate current = new Coordinate(x,y);
Queue<Coordinate> queue = new Queue<Coordinate>(3);
我不明白如何在current 对象上存储坐标,并在Queue<Coordinate> 类的queue 对象中插入坐标,并在possibilities 对象上堆栈queue 对象,来自@ 类987654328@。这是怎么做到的?
【问题讨论】:
标签: java generics stack queue maze