//如果有个二维数组代表迷宫如下,0表示道路,2表示墙壁:
//
//假设老鼠会从索引(1,0)开始,请使用程序找出老鼠如何跑至索引
//
//(6,5)位置
public class Day401ArrayMaze {
public static void main(String[] args) {
int[][] maze = {{2,2,2,2,2,2,2},
{0,0,0,0,0,0,2},
{2,0,2,0,2,0,2},
{2,0,0,2,0,2,2},
{2,2,0,2,0,2,2},
{2,0,0,0,0,0,2},
{2,2,2,2,2,0,2},
};
int x,y;
int i = 1;
int j = 0;
for (int k = 0; k < 10; k++) {
if (maze[i][j+1]==0){
i = i;
j = j++;
System.out.println("路");
}else if (maze[i+1][j]==0){
i = i++;
j = j;
System.out.println("墙");
}else{
System.out.println("小老鼠没能走出迷宫");
}
}if (i==6&&j==5){
System.out.println("小老鼠走出迷宫了");
}
}
}
//运行结果
路
路
路
路
路
路
路
路
路
路
你i和j的值没有改变,原地打转。去看一下前置自增和后置自增。
你的数组是7*7的,你的k能取到9,你确定不会越界吗?还有。建议你看看走迷宫的思路,你只考虑向下和向右的情况,没有考虑到如果不能向下和向右,你怎么办.