纯C编写“推箱子”小游戏.doc

纯C编写“推箱子”小游戏.doc

ID:50682334

大小:90.00 KB

页数:8页

时间:2020-03-07

纯C编写“推箱子”小游戏.doc_第1页
纯C编写“推箱子”小游戏.doc_第2页
纯C编写“推箱子”小游戏.doc_第3页
纯C编写“推箱子”小游戏.doc_第4页
纯C编写“推箱子”小游戏.doc_第5页
资源描述:

《纯C编写“推箱子”小游戏.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、此小游戏使用C语言编写,简单易懂……^^适合初学!!(VS2008下编的)#include#include#includeinti,j;voiddraw_map(intmap[10][12]);//声明画图函数intmain(){charinput;intcount=0;//定义记分变量/*下面定义一个二维数组,其中的元素是不同图像的ID号,在后面的函数中将讲解不同数字分别代表的图像元素*/intmap[10][12]={{2,2,2,2,2,1,1,1,1,1,2,2},{1,1,1,1,2,1,0,0,0,1,1,2}

2、,{1,0,0,1,1,1,0,1,0,0,1,2},{1,0,4,3,3,3,3,3,1,0,1,1},{1,0,0,1,1,3,3,3,4,0,0,1},{1,0,0,0,0,4,1,1,4,1,0,1},{1,0,4,1,4,0,0,0,4,0,0,1},{1,1,0,6,0,1,1,1,4,1,0,1},{2,1,1,1,1,1,2,1,0,0,0,1},{2,2,2,2,2,2,2,1,1,1,1,1}};while(1)//死循环,等待用户命令{system("CLS");draw_map(map);printf("当前得分:%d",count);//找初始位置

3、for(i=0;i<10;i++){for(j=0;j<12;j++){if(map[i][j]==6

4、

5、map[i][j]==9)break;}if(map[i][j]==6

6、

7、map[i][j]==9)break;}printf("您的当前坐标(%d,%d)",i,j);input=getch();//用getch()函数无需回车确认地获取用户输入,用于控制行走方向。switch(input){case'w'://如果人前面是空地。if(map[i-1][j]==0){map[i-1][j]=6+0;//人往前走一步,ID为人的ID()加上空地的ID()。if(map[i]

8、[j]==9)//如果当前人站的位置为目的地,则ID为(即人的ID()加上目的地ID())。map[i][j]=3;//将人往前走一步后原地的ID修改为空地ID()。elsemap[i][j]=0;//否则原地ID修改为空地ID。}//如果人前面是目的地。elseif((map[i-1][j]==3)

9、

10、(map[i-1][j]==9)){map[i-1][j]=6+3;//人往前走一步,ID为人ID+目的地ID=9。if(map[i][j]==9)//如果原地也是目的地(ID为)。map[i][j]=3;//人走后把原地ID修改回目的地ID。elsemap[i][j]=0;/

11、/否则原地ID修改为为空地ID}//如果人前面是箱子。elseif(map[i-1][j]==4){//如果人前面是箱子,而箱子前面是空地。if(map[i-2][j]==0){map[i-2][j]=4;//人推箱子往前走一步,把空地ID修改为箱子ID()//下面是对箱子原地进行判断if(map[i-1][j]==7)//如果箱子原地为目的地。map[i-1][j]=9;//人站在箱子的原地(目的地)时该地ID应该为人的ID+目的地ID=9。elsemap[i-1][j]=6;//否则,人站在了原来的空地上,ID应该为+0=6。//下面是对人原地进行判断if(map[i][j

12、]==9)//如果之前是目的地。map[i][j]=3;//人走了之后修改回目的地ID。elsemap[i][j]=0;//否则就是空地。}//如果人的前面是箱子,而箱子前面是目的地。elseif(map[i-2][j]==3){map[i-2][j]=7;//ID为(目的地ID()+箱子ID()=7),表示已经把箱子推入了目的地。count++;//下面是对箱子原先位置的判断,同上。if(map[i-1][j]==7)map[i-1][j]=9;elsemap[i-1][j]=6;//下面是对人原先位置进行判断,同上。if(map[i][j]==9)map[i][j]=3;e

13、lsemap[i][j]=0;}}//如果人前面是已经进入某目的地的箱子(ID=7)。elseif(map[i-1][j]==7){//如果人前面是已经进入某目的地的箱子,而箱子前面是空地。if(map[i-2][j]==0){count--;map[i-2][j]=4;//把箱子重新推到空地上,ID=箱子ID+空地ID=4。map[i-1][j]=9;//人自然而然的就站在了原先的目的地上了。//下面是对人原先地进行判断,方法同上。if(map[i][j]==9)map[i][j]=3;e

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

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

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