迷宫游戏C语言代码讲解

迷宫游戏C语言代码讲解

ID:42996473

大小:1.39 MB

页数:29页

时间:2019-09-23

迷宫游戏C语言代码讲解_第1页
迷宫游戏C语言代码讲解_第2页
迷宫游戏C语言代码讲解_第3页
迷宫游戏C语言代码讲解_第4页
迷宫游戏C语言代码讲解_第5页
资源描述:

《迷宫游戏C语言代码讲解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实用标准文档/*迷宫游戏byCDQ*//*vc++6.0编译成功本程序参照网上一个特殊算法随机生成迷宫该算法优点:效率高,从入口到出口只有唯一路径,入口出口自己设定该算法缺点:宽度高度都必须为奇数,只能生成n*m矩阵迷宫*/#include#include#include#include#defineHeight31//迷宫的高度,必须为奇数#defineWidth25//迷宫的宽度,必须为奇数#defineWall1#defineRoad0#

2、defineStart2#defineEnd3#defineEsc5#defineUp1#defineDown2#defineLeft3#defineRight4intmap[Height+2][Width+2];voidgotoxy(intx,inty)//移动坐标{COORDcoord;coord.X=x;coord.Y=y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);}voidhidden()//隐藏光标{HANDLEhOut=

3、GetStdHandle(STD_OUTPUT_HANDLE);CONSOLE_CURSOR_INFOcci;GetConsoleCursorInfo(hOut,&cci);cci.bVisible=0;//赋1为显示,赋0为隐藏SetConsoleCursorInfo(hOut,&cci);}voidcreate(intx,inty)//随机生成迷宫{intc[4][2]={0,1,1,0,0,-1,-1,0};//四个方向inti,j,t;文案大全实用标准文档//将方向打乱for(i=0;i<4;i++){j=r

4、and()%4;t=c[i][0];c[i][0]=c[j][0];c[j][0]=t;t=c[i][1];c[i][1]=c[j][1];c[j][1]=t;}map[x][y]=Road;for(i=0;i<4;i++)if(map[x+2*c[i][0]][y+2*c[i][1]]==Wall){map[x+c[i][0]][y+c[i][1]]=Road;create(x+2*c[i][0],y+2*c[i][1]);}}intget_key()//接收按键{charc;while(c=getch()){if

5、(c==27)returnEsc;//Escif(c!=-32)continue;c=getch();if(c==72)returnUp;//上if(c==80)returnDown;//下if(c==75)returnLeft;//左if(c==77)returnRight;//右}return0;}voidpaint(intx,inty)//画迷宫{gotoxy(2*y-2,x-1);switch(map[x][y]){caseStart:printf("入");break;//画入口caseEnd:printf

6、("出");break;//画出口caseWall:printf("※");break;//画墙caseRoad:printf("");break;//画路}文案大全实用标准文档}voidgame(){intx=2,y=1;//玩家当前位置,刚开始在入口处intc;//用来接收按键while(1){gotoxy(2*y-2,x-1);printf("☆");//画出玩家当前位置if(map[x][y]==End)//判断是否到达出口{gotoxy(30,24);printf("到达终点,按任意键结束");getch(

7、);break;}c=get_key();if(c==Esc){gotoxy(0,24);5回复1楼2011-12-0715:46举报

8、我也说一句未来未来文案大全实用标准文档追忆曾经_团子家族10break;}switch(c){caseUp://向上走if(map[x-1][y]!=Wall){paint(x,y);x--;}break;caseDown://向下走if(map[x+1][y]!=Wall){paint(x,y);x++;}break;caseLeft://向左走if(map[x][y-1]!=Wa

9、ll){paint(x,y);y--;}break;caseRight://向右走if(map[x][y+1]!=Wall){paint(x,y);y++;}break;}文案大全实用标准文档}}intmain(){inti,j;srand((unsigned)time(NULL));//初始化随即种子hidden();//隐藏光标for(i=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。