本帖最后由 java2python 于 2020-6-3 10:54 编辑
哦
昨天,执行这个的时候,卡巴斯基报警,puzzle.exe作为病毒被删除了。
*向上之类方向只要放在数组里,就可以循环来调用
*不会走出迷宫吗,比如x=-1之类的,感觉需要外面在包一层0,从数据上就把这种可能性给控制住
- #include <iostream>
- using namespace std;
- int map[7][6]={ 1 ,0, 1, 0, 0, 0,1, 1, 1, 1, 0, 1,0, 0, 1, 0, 1, 0,1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1,0, 1, 0, 1, 0, 0,0, 1, 0, 1, 1, 1,};
- int direct[4][2] = {{0,1},{0,-1},{1,0},{-1,0}};
- bool pass(int x,int y)
- {
- if(map[x][y]==1)
- {
- map[x][y]=2; //标记走过
- return true;
- }
- return false;
- }
- int find(int x,int y)
- {
- if(x==4 && y==5) /* 这里是终点*/
- {
- cout<<"到达终点啦"<<endl;
- return 1; //结束,找到终点
- }
- if(pass(x,y))//当前可以通过
- {
- for(int d=0;d<4;d++){
- if(find(x+direct[d][0],y+direct[d][1])==1){
- cout<<x<<","<<y<<endl;
- return 1;
- }
- }
- }
- }
- int main()
- {
- find(0,0);//起点0,0
- return 0;
- }
复制代码 |