Java迷宫的游戏
题目如下:A1000110A2001010A3100011A4011001A5000101A6001100B1B2B3B4B5B6这是一个迷宫的游戏,具体规则是(A1,B...
题目如下:
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)。
拜谢各位! 展开
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)。
拜谢各位! 展开
3个回答
展开全部
这个太简单了。。我用类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;
}
这个就是回溯函数了。。。。
,谁让你就给这点分呢。。。。其实分啥都不是。。。
其实就是搜索,为了简单我就用深度优先了
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;
}
这个就是回溯函数了。。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询