c语言—迷宫游戏.docVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c语言—迷宫游戏

目 录 1、程序的功能 4 2、游戏界面设计和图形函数的使用 5 3、整体设计思路 5 4、程序中的数据结构 5 5、程序核心算法的流程图 5 6、程序改进的设想 5 7、总结 5 8、参考文献 5 1、程序的功能 设计并实现一个类似于手机游戏“”的程序。 Stack.h #include iostream.h #include malloc.h typedef struct { int r; int c; }PosType; typedef struct{ int step; //当前位置在路径上的序号 PosType seat; //当前位置的坐标 int di; //往下一坐标的方向 }ElemType; typedef struct NodeType{ ElemType data; NodeType *next; }*NodeLink; typedef struct{ NodeLink top;//指向栈顶 int size; }Stack; ////////////栈的基本操作 void InitStack(Stack S){ //初始化栈,设S为空栈 S.size=0; ///cout栈初始化成功endl; S.top=NULL; } int LengthStack(Stack S){return S.size;} bool StackEmpty(Stack S) { if(S.size==0)return true; else return false; } bool Push(Stack S,ElemType e) { //若分配空间成功,则在S的栈顶插入新的栈顶元素e,并返回true NodeType *p; if((p=(NodeType *)malloc(sizeof(NodeType)))==NULL) return false; p-data=e; p-next=S.top; S.top=p; S.size++; return true; } bool Pop(Stack S,ElemType e){ //若栈不空,将栈S的栈顶元素删除并由e带回其值,且返回true NodeType *p=S.top; if(p==NULL) { cout栈为kong,无法删除栈顶元素……\n; return false; } e=p-data; S.size--; S.top=p-next; free(p); return true; } bool StackTraveser(Stack S) { NodeType *p; p=S.top; if(p==NULL) { return false; } while(!p){ coutS.top-data.diendl; p=p-next; } return true; } 1.、main()主函数 首先确定是人工探索还是系统自动探索,通过输入字符选定。选定后调用图形初始化函数,接着调用迷宫生成函数及迷宫显示函数,然后根据输入的字符调用人工探索函数或自动探索函数。探索完毕进行结果处理,最后关闭图形系统,程序关闭。 2.、Init()初始化函数 由于迷宫图是在图形方式下显示的,所以要进行图形初始化工作。 3、MapRand()迷宫显示函数 用数组map表示一个迷宫,要随机生成迷宫,数组元素的值利用随机生成函数0或1的数。将最外面一圈设为墙壁,作为一个封闭图形,只留下入口点和出口点为通路。 4.、PrMap()迷宫显示函数 根据数组map的值输出迷宫图,利用函数setfillstyle()设置图形实体填充样式,bar()函数输出图形快,如果数组元素为0,则填充为黄色,值为1显示填充为蓝色,一个数组元素对应一个矩形块,数组元素的下标为矩形块的中心坐标,利用两重循环语句可以完成迷宫图的显示。 5.、FindWay()系统自动探索 从下标(1,1)开始探索,依次按照右下、下、右、上、右上、左下、左、左上的顺序前进,若该方向上的值为0,则前进一步,然后作相应的标记,表示该探索物再某一方向上探索过,而在另一个方向上探索,若8个方向均已探索过,则不能再前进,需要沿着原来的路径回溯一步,然后重复上述过程直到出口。 6、PeopleFind()人工探索 首先输出迷宫图及人工控制操作图示,红色探索出现在左上角,采用人工控制8个方向的移动,由于是8个方向,小键盘1、2、3、4、6、7、8、9代表8个方向,按了字符后,对应方向不是墙壁,可以

您可能关注的文档

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档