C语言推箱子游戏

C语言推箱子游戏

ID:39550344

大小:27.50 KB

页数:3页

时间:2019-07-06

C语言推箱子游戏_第1页
C语言推箱子游戏_第2页
C语言推箱子游戏_第3页
资源描述:

《C语言推箱子游戏》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C语言推箱子游戏.txt永远像孩子一样好奇,像年轻人一样改变,像中年人一样耐心,像老年人一样睿智。我的腰闪了,惹祸的不是青春,而是压力。。。。。。当女人不再痴缠,不再耍赖,不再喜怒无常,也就不再爱了。#include"stdio.h"#include"bios.h"#defineLEFT75#defineRIGHT77#defineUPPER72#defineDOWN80#defineESC27structBoxss{intx,y;};unionkeyboard{unsignedintiKeyInfo;charchKeyBit[

2、2];};intfnGetKey(void)/*定义读取键盘码的函数*/{unionkeyboarduniKey1;/*定义读取键盘码的共用体变量*/while(bioskey(1)==0);/*检测用户是否按键*/uniKey1.iKeyInfo=bioskey(0);/*读取按键信息*/return(uniKey1.chKeyBit[0]==0?uniKey1.chKeyBit[1]:uniKey1.chKeyBit[0]);/*返回ASCII码或扩充码*/}voidmain(){intiKey,x=11,y=6,tx=11

3、,ty=6;/*x,y为人物移动后坐标,tx,ty为人物移动前坐标*/structBoxssBox[4];/*定义箱子数量*/intchMap[10][10]={/*用二维数组定义地图*/{0,0,0,0,0,0,0,0,0,0},/*0表示墙1表示路2表示目标*/{0,1,0,0,0,0,1,1,1,0},{0,1,0,2,0,0,1,0,1,0},{0,1,0,1,0,0,1,0,1,0},{0,1,1,1,0,0,1,0,1,0},{0,1,0,0,0,0,1,0,1,0},{0,1,1,1,1,1,1,0,1,0},{0

4、,1,0,1,0,0,0,0,2,0},{0,2,0,1,1,1,1,2,0,0},{0,0,0,0,0,0,0,0,0,0},};inti,j;Box[0].x=13;/*定义箱子的坐标属性*/Box[1].x=11;Box[2].x=14;Box[3].x=18;Box[0].y=8;Box[1].y=7;Box[2].y=13;Box[3].y=7;while(1)/*反复进行求移动的坐标运算*/{for(i=0;i<10;i++)/*输出新地图(刷新地图)*/{gotoxy(10,5+i);for(j=0;j<10;j+

5、+){if(chMap[i][j]==0)printf("#");if(chMap[i][j]==1)printf("");if(chMap[i][j]==2)printf("X");}}j=0;/*判断是否所有箱子都在目标坐标上*/for(i=0;i<4;i++)if(chMap[Box[i].y-5][Box[i].x-10]==2)j++;if(j==4)/*如果所有箱子都就位输出"YOUWIN!"退出*/{clrscr();printf("YouWin!");break;}for(i=0;i<4;i++)/*在起始(或移

6、动后)的坐标输出箱子*/{gotoxy(Box[i].x,Box[i].y);printf("0");}gotoxy(x,y);/*在起始(或移动后)的坐标输出人*/printf("*b");tx=x;/*记录本次移动前的坐标*/ty=y;iKey=fnGetKey();if(iKey==LEFT&&chMap[y-5][x-1-10]!=0)/*按读取的按键信息改变坐标如果改变的坐标和墙(0)重合则不改变*/x--;if(iKey==RIGHT&&chMap[y-5][x+1-10]!=0)x++;if(iKey==UPPE

7、R&&chMap[y-1-5][x-10]!=0)y--;if(iKey==DOWN&&chMap[y+1-5][x-10]!=0)y++;/*输入ESC退出并输出"YOULOST"*/if(iKey==ESC){clrscr();printf("YouLost");break;}for(i=0;i<4;i++)/*如果移动后的人的坐标与箱子坐标重合,则改变箱子坐标向前一格*/if(Box[i].x==x&&Box[i].y==y){Box[i].x+=(x-tx);Box[i].y+=(y-ty);if(chMap[Box[i

8、].y-5][Box[i].x-10]==0)/*如果移动后的箱子坐标会出现在墙上,则使箱子坐标和人坐标都返回移动前的值*/{Box[i].x-=(x-tx);Box[i].y-=(y-ty);x=tx;y=ty;}break;}clrscr();}getch(

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

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

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