用C++代码写一个走迷宫小程序,并加上相应注释
时间: 2023-03-12 15:37:44 浏览: 121
基于C++和EasyX开发的走迷宫益智小游戏源码+项目说明.zip
5星 · 资源好评率100%
按照你的要求,下面是一个用C语言实现走迷宫小程序的代码,并加上相应的注释:/* 迷宫游戏 */
#include<stdio.h>
#include<stdlib.h>
int a[10][10];//定义迷宫数组
int book[10][10];//定义标记数组
int next[4][2] = {//定义上下左右的坐标变化量
{0,1},//右
{1,0},//下
{0,-1},//左
{-1,0}//上
};
//定义函数,搜索空间
void dfs(int x, int y, int step){
int tx,ty,k;
if(x == 9 && y == 8){//到达终点,输出路径
printf("success!\n");
for(int i=0; i<10; i++){
for(int j=0; j<10; j++){
printf("%d ", book[i][j]);
}
printf("\n");
}
return;
}
for(k=0; k<4; k++){//循环4次,分别检查上下左右是否可达
tx = x + next[k][0];
ty = y + next[k][1];
if(tx<0 || tx>9 || ty<0 || ty>9){//越界检查
continue;
}
if(a[tx][ty] == 0 && book[tx][ty] == 0){//满足条件,尝试搜索
book[tx][ty] = 1;
dfs(tx, ty, step+1);//搜索下一个点
book[tx][ty] = 0;
}
}
}int main(){
int i, j;
//初始化迷宫
for(i=0; i<10; i++){
for(j=0; j<10; j++){
scanf("%d", &a[i][j]);
}
}
//将标记数组置零
for(i=0; i<10; i++){
for(j=0; j<10; j++){
book[i][j] = 0;
}
}
book[0][0] = 1;//将起点置为1
dfs(0, 0, 0);//从起点开始搜索
return 0;
}
阅读全文