Java迷宫的游戏

来源:百度知道 编辑:UC知道 时间:2024/06/20 06:26:20
题目如下:
A1 0 0 0 1 1 0
A2 0 0 1 0 1 0
A3 1 0 0 0 1 1
A4 0 1 1 0 0 1
A5 0 0 0 1 0 1
A6 0 0 1 1 0 0
B1 B2 B3 B4 B5 B6

这是一个迷宫的游戏,具体规则是 (A1,B1)为入口,(A6,B6)为出口,数字0可以走,数字1则不能通过, 要求用java 写出这个程序,并打印出 从入口到出口的通道的路径,打印格式为
(A1,B1),(A1,B2),(A2,B2),(A3,B2),(A3,B3),(A3,B4),(A4,B4),(A4,B5),(A5,B5),(A6,B5),(A6,B6)。

拜谢各位!

这个太简单了。。我用类C的代码写给你看看。。。直接手写的,不调试了
,谁让你就给这点分呢。。。。其实分啥都不是。。。

其实就是搜索,为了简单我就用深度优先了

int dir[4][2]={
{1,0},
{-1,0},
{0,1},
{0,-1}
};//用来控制方向的数组
int flag = 0;
int map[][];//这个就是你的迷宫

void dfs( int x, int y ){
if( flag ){
return;
}
map[x][y] = 0;
for(int i = 0; i < 4; i++ ){
int dx = x + dir[i][0];
int dy = y + dir[i][1];
if( 0 <= dx && dx < 行数 && 0 <= dy && dy < 列数 && map[dx][dy] == 1 ){
dfs(dx,dy);
}
}
map[x][y] = 1;
}

这个就是回溯函数了。。。。

哇..你这10分真是贵...能顶1000分吧.

tainanle