【发布时间】:2014-12-11 05:12:21
【问题描述】:
我正在迷宫中工作,但被卡住了。使用 JFileChooser,我可以在 .txt 文件中导入并读入迷宫,其中一系列空格和主题标签确定路径和墙壁。 String path = " "; 和 String wall = "#";
这是目前做所有事情的方法:
@Override
public void readMaze() throws FileNotFoundException
{
int row;
int col;
JFileChooser chooser = new JFileChooser();
Scanner in = null;
if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION)
{
File selectedFile = chooser.getSelectedFile();
in = new Scanner(selectedFile);
/*READ FILE*/
Scanner readLine = new Scanner (new FileReader(selectedFile));
col = readLine.nextInt();//first reading
System.out.println(col);
row = readLine.nextInt(); //second reading
System.out.println(row);
Array[][] array = new Array[row][col];
do
{
String i = readLine.nextLine();
//System.out.println(i);
for (int j = 0; j < i.length(); j++)
{
String compare = i.substring(j, j+1);
if(compare.equals(wall))
{
//Do nothing, see if there's a path adjacent.
System.out.println("Wall");
}
if(compare.equals(path))
{
System.out.println("Path");
//Check for additional paths.
// don't if explored
//else explore
}
}
} while(readLine.hasNextLine() == true);
readLine.close();
}
}
这是我们现在的界面,如果重要的话: 公共接口lab3MVCInterface
{
enum direction {N, S, E, W};
void readMaze() throws FileNotFoundException;
void solveMaze();
JFileChooser chooser = new JFileChooser();
Scanner in = null;
String wall = "#";
String path = " ";
void readMaze(JFileChooser chooser, Scanner in)
throws FileNotFoundException;
}
但是我们不知道如何确定如何确定是否存在路径。这是一个课堂作业,所以我不是在寻找答案,但我希望能以正确的方法指出正确的方向。对于分配,我们可以使用递归或堆栈来完成它......我们决定使用递归,因为堆栈对我们来说是一场噩梦。
感谢您的帮助!! :) 我知道过去我没有跟进线程,但我正在努力更新它们(在丢失我的帐户密码后,我将自己锁定在电子邮件之外。去看看)我们说话!
编辑:这是从 .txt 文件打开的代码示例: (第一个数字设置 array[col][] 值,第二个设置 array[][row] 值用于调整大小。)
7
7
#######
###
### ###
### ###
#
### ###
#######
【问题讨论】:
-
我建议查看"maze solving algorithm" 的点击量。前两个看起来很有希望。
-
您有示例文件吗?首先是确定你的起点,然后你可以使用“左手”规则,基本上,总是沿着你左边的墙走。您将需要一个可以确定方向并确定它是否可以移动的方法,如果不能,它会旋转 90 度并以新方向调用自身...
-
我必须按原样使用迷宫,我的教授没有设置起点,所以我无法添加任何东西来创建起点和终点。我只是假设当空间第一次可用时,我们从一个顶角开始。我不认为我们必须通过整个迷宫,我们不必将它作为“最短路线”,它只需要解决。Code-Apprentice,我点击了链接,维基百科的结果帮助我得到相当不错的把握。我承认由于阅读障碍,我在这项任务上有些落后,所以我的技能不如其他人那么成熟。
-
我一次只能做这么多,这就是为什么我真的不太了解复杂的代码。我希望有一个更简单的解释。
-
@MadProgrammer,我想知道是否存在类似的东西!你会如何建议这个程序?
标签: java arrays recursion stack maze