多语言展示
当前在线:1693今日阅读:165今日分享:48

C语言模拟走迷宫

利用结构体灵活的解决问题,二维数组来储存迷宫,
方法/步骤
1

首先打开VC++6.0

2

选择文件,新建

3

选择C++ source file 新建一个空白文档

4

声明头文件和常量 #include#define ROW 8#define COLUMN 8#define STEP ROW*COLUMN/*ROW表示迷宫的行数,COLUMN表示迷宫的列数,STEP表示队列的容量*/

5

定义一个用来记录迷宫探路的队列struct StepQueue{int x,y;    int PreStep;}StepQ[STEP],tmpStepQ[STEP];

6

定义一个结构体用来表示迷宫中的移动方向,一共有8种方向struct MoveD{/*x,y坐标增量,取值-1,0,1*/int x, y;  }move[8];

7

迷宫探路函数int PathMaze(int maze[ROW][COLUMN])  {int i,j,k,v,front,rear,x,y,l;/*声明一个标记数组来记录一个是否到达过某个点,并进行初始化*/int mark[ROW][COLUMN];for(i=0;i0)printf('(%d,%d)>',tmpStepQ[--l].x,tmpStepQ[--l].y);printf('(%d,%d)',tmpStepQ[0].x,tmpStepQ[0].y);return(1);      }}/*从队列中弹出一个点,front指向新的出发点*/front++;   }  /*队空说明没有路径*/printf('There is no Path in the maze! \n');return(0); }

8

迷宫生成函数void CreateMaze(int maze[ROW][COLUMN]){int i,j;for(i=0;i

9

int main(){/*声明一个用来放迷宫的数组*/int maze[ROW][COLUMN]; /*初始化移动方向数组*/move[0].x=-1;move[0].y=-1;move[1].x=-1;move[1].y=0;move[2].x=-1;move[2].y=1;move[3].x=0;move[3].y=-1;move[4].x=0;move[4].y=1;move[5].x=1;move[5].y=-1;move[6].x=1;move[6].y=0;move[7].x=1;move[7].y=1; printf('*********************************\n');printf('|      Welcome to our maze      |\n');printf('*********************************\n');/*创建一个迷宫*/CreateMaze(maze);/*迷宫中探路*/PathMaze(maze);getch();return 0;}

推荐信息