C++迷宫游戏算法.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C迷宫游戏算法

#includeiostream#includestdlib.h#includewindows.husing namespace std;#define MaxSize 10//显示地图void DisplayStep(int (*GeZi)[11]);int GongGe[MaxSize+1][MaxSize+1]={ // 地图 {1,1,1,1,1,1,1,1,1,1,1}, //0.空地 {1,2,1,0,0,0,0,0,0,1,1}, //1.墙壁 {1,0,1,0,0,0,0,1,0,0,1}, //2.起点 {1,0,0,0,1,0,1,0,0,0,1}, //3.走过 {1,1,0,1,0,1,1,0,1,1,1}, //4.终点 {1,1,0,0,0,0,0,1,0,0,1}, //5.退回 {1,0,0,0,1,1,0,0,0,0,1}, //6.完成 {1,0,0,0,1,0,0,1,0,1,1}, {1,0,1,0,0,0,0,0,1,4,1}, {1,0,0,0,1,0,0,0,0,0,1}, {1,1,1,1,1,1,1,1,1,1,1},};typedef struct{ int x; int y;}TPStep;TPStep fangXiang[4]={ {0,1},{1,0},{0,-1}, {-1,0} };//下一步尝试//宫格二维数组//当前所在位置int TryStep(int (*GeZi)[11],TPStep stepOn){ TPStep theWay; //方向 TPStep stepNext; //下一步位置 for(int i=0;i4;i++){ theWay=fangXiang[i]; stepNext.x=stepOn.x+theWay.x; stepNext.y=stepOn.y+theWay.y; int posStatus=*(GeZi[stepNext.x]+stepNext.y); switch(posStatus) { case 0: { *(GeZi[stepNext.x]+stepNext.y)=3; system(pause); DisplayStep(GongGe); TryStep(GongGe,stepNext); } break; case 1: break;; case 2: break; case 3: break; case 4: GongGe[8][9]=6; //将终点突显 system(pause); DisplayStep(GongGe); system(pause); exit(0); } } cout死路!\n; GongGe[stepOn.x][stepOn.y]=5; //设为退回点 system(pause); DisplayStep(GongGe); return 0; }//显示地图void DisplayStep(int (*GeZi)[11]){ system(cls); for (int i=0;iMaxSize+1;i++) { for (int j=0;jMaxSize+1;j++) { if (*(GeZi[i]+j)==0||*(GeZi[i]+j)==5) { cout ; } else if(*(GeZi[i]+j)==1) { cout□; } else if(*(GeZi[i]+j)==2) { cout※; } else if(*(GeZi[i]+j)==3) { cout■; } else if(*(GeZi[i]+j)==4) { cout☆; } else if(*(GeZi[i]+j)==6) //找到出口标识 { cout★; } else { cout出错!; } } cout\n; }}int main(){ DisplayStep(GongGe); //显示宫格 TPStep startPos={1,1}; //设置起点 TryStep(GongGe,startPos); //开始行动 return 0;}

您可能关注的文档

文档评论(0)

cgtk187 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档