资源描述:
《迷宫程序设计报告(c语言).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、迷宫运行是的一些结果:以下迷宫是教材上p50图-3.4的迷宫:接下:以上两个界面为程序运行时分割的两部分。编辑是遇到的困难:首先,经过多次调试,程序已经没有错误了,但是在运行后,迷宫路径总是不能完整表示出来。多次查找原因后才知道自己对一些函数结果状态代码定义错误。例如:将error、FALSE定义为-1、-2,。将其定义为0后则能正确表现迷宫路径。之后,我又想除了自己手动创建迷宫之外,能不能在一个结构类型中定义一个mazetypemaze2.a{【maxlen】【maxlen】,使其初始化并附值,当要用时直接调用就可以了,但是照这样做了之后,总是发现有错误。我想可能是文件后缀名
2、得原因,可能在cpp文件不能这样用,所以索性就部编辑了,让函数只有一个功能。迷宫程序源代码://迷宫程序2011/4/3#include#include#include#defineoverflow-1#defineerror0#defineTRUE1#defineFALSE0#defineok1#definemax_stacksize100#defineincrease_size10#definemaxlen10typedefstruct{introw;intcol;}postype;//坐标位置类型typedefst
3、ruct{intord;postypeseat;intdi;}elemtype;//栈的元素类型typedefstructsqstack{elemtype*base;elemtype*top;intstacksize;}sqstack;//栈类型typedefstructmazetype{introw;intcol;chara[maxlen][maxlen];}mazetype;//迷宫类型intInitmaze(mazetype&maze);intmazepath(mazetype&maze,postypestart,postypeend);intInitstack(sqst
4、ack&s);intpush(sqstack&s,elemtypee);intpop(sqstack&s,elemtype&e);intstackempty(sqstack&s);intgettop(sqstack&s,elemtype&e);intdestroystack(sqstack&s);intpass(mazetype&maze,postypecurpos);intfootprint(mazetype&maze,postypecurpos);intmarkprint(mazetype&maze,postypecurpos);postypenextpos(postype
5、&curpos,inti);voidoutputmaze(mazetype&maze);voidmain(){inti,j;charcn;postypestart,end;mazetypemaze;do{do{printf("********************手动创建迷宫******************");Initmaze(maze);printf("*****************迷宫输出图为****************");outputmaze(maze);printf("-------------请输入迷宫入口坐标:");scanf("%d%
6、d",&start.row,&start.col);if(start.row>maze.row
7、
8、start.col>maze.col){printf("-------------输入坐标有误!");continue;}}while(start.row>maze.row
9、
10、start.col>maze.col);printf("------------请输入迷宫出口坐标:");scanf("%d%d",&end.row,&end.col);if(!mazepath(maze,start,end))printf("****************迷宫没有出口路径!**
11、****************");else{printf("**********输出迷宫路径('*'表示迷宫通道路径,'@'表示曾走过但不能走通的标记)************");outputmaze(maze);}//case2://{//mazetypemaze2;//maze2.a[maxlen][maxlen]=;{{1,1,1,1,1,1,1,1,1,1;};{1,0,0,1,0,0,0,1,0,1;};{1,0,0,1,0,0,0,1,0,1;};//{1,0,0,