版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include <stdio.h>#include <stdlib.h>/用到system()#include <conio.h>/因为需要用到getch()函数/推箱子_C语言版/写了一下午,第一个C语言游戏终于写好了,想想有点小激动./蔚蓝之链编写 /分享给大家参考下(在看得懂的情况下.),代码写得很凌乱.,勿喷#define X 20#define Y 20#define REN 2 /表示人#define XIANGZI 3 /箱子#define WEIZHI 4 /箱子要推到的位置#define KONG 0 /空位#define QIANG 1
2、 /墙#define RW 6 /人在箱子要推到的位置上#define XW 5 /箱子在箱子要推到的位置上#define bool short #define false 0#define true 1/数组内部数值表示内容:0表示空位,1表示墙体,2表示人,3表示箱子,4表示箱子要推到的位置,5表示既有箱子又有又位置,6表示既有位置又有人/01,2,3,4符号表示:/0 :" " 1: 2: 3:回 4:void create_map_arr(int _x,int _y,int (*map_arr)Y);/创建地图数组void creata_map(int _x,int
3、 _y, int (*map)Y);/创建地图,重绘游戏画面void amend_map(int _x,int _y,char key , int (* arr_map)Y);/接收输入,修改游戏画面bool is_finish(int _x, int _y,int _total ,int (*arr_map)Y);/判断是否完成推箱子(地图x,地图y,总箱子数,地图数组)int main(void)int map_arrXY;/存储地图的二维数组create_map_arr(X,Y,map_arr);/创建数组printf("C语言_推箱子v1.0 蔚蓝之链编写nn");
4、printf("控制键:W,A,S,Dn");printf("提示:玩本游戏前请先关闭输入法n");system("pause");system("cls");while(1)creata_map(X,Y,map_arr);/创建地图,重绘游戏画面if(is_finish(X,Y,2,map_arr) = true)printf("恭喜哦,推箱子完成!n");system("pause");return 0;amend_map(X,Y,getch(),map_arr);/接收
5、输入,修改画面system("cls");/清空画面getchar();return 0;void create_map_arr (int _x,int _y,int (*map_arr)Y)/创建地图数组int x,y;for(x=0;x<_x;x+)for (y=0;y<_y;y+)if(y=0 | x=0 | x=_x-1 | y=_y-1)*(*(map_arr+x)+y) = QIANG;/printf ("");else*(*(map_arr+x)+y) = KONG;/printf (" ");/printf
6、("n");/这里可以修改箱子创建的位置,人创建的位置及箱子要达到的位置,默认两个箱子*(*(map_arr+3)+7)=REN;/人*(*(map_arr+5)+6)=XIANGZI;/箱子*(*(map_arr+5)+7)=XIANGZI;/箱子*(*(map_arr+1)+8)=WEIZHI;/箱子要推到的位置*(*(map_arr+2)+8)=WEIZHI;/箱子要推到的位置void creata_map(int _x,int _y, int (*map)Y)/创建地图(地图数组)int x,y;for(x = 0; x < _x; x+)for (y = 0
7、; y < _y; y+)if (*(*(map + x) + y) = QIANG)printf ("");else if(*(*(map + x) + y) = KONG) printf (" ");else if(*(*(map + x) + y)=REN | *(*(map + x) + y)=RW)printf ("");else if (* (*(map + x) + y)=XIANGZI)printf("");else if (*(*(map + x) + y)=WEIZHI)printf(&q
8、uot;");else if(*(*(map + x) + y) = XW)printf("回");printf ("n");/这个函数写的太乱了,自己看着也头大,不过还好,总算完成了_void amend_map(int _x,int _y,char key , int (* arr_map)Y)/移动(地图x,地图y,按键值,地图数组)int x,y;for(x = 0; x < _x; x+)for (y = 0; y < _y; y+)if(*( * (arr_map + x ) + y) = REN | *( * (arr
9、_map + x ) + y) = RW)if(key = 'a' | key = 'A')/if (y > 0)if(*(*(arr_map + x) +(y) = RW)/人在最终位置if(*( * (arr_map + x ) + (y-1) = WEIZHI)/人左边还是最终位置*( * (arr_map + x ) + (y-1) = RW;*( * (arr_map + x ) + y) = WEIZHI;else if(*( * (arr_map + x ) + (y-1) = XIANGZI | *( * (arr_map + x ) +
10、(y-1) = XW)if(*( * (arr_map + x ) + (y-1) = XW)if (*( * (arr_map + x ) + (y-2) = KONG)*( * (arr_map + x ) + (y-2) = XIANGZI;*( * (arr_map + x ) + (y-1) = RW;*( * (arr_map + x ) + (y) = WEIZHI;else if(*( * (arr_map + x ) + (y-2) = WEIZHI)*( * (arr_map + x ) + (y-2) = XW;*( * (arr_map + x ) + (y-1) =
11、RW;*( * (arr_map + x ) + (y) = WEIZHI;else if(*(*(arr_map + x) + (y - 1) = XIANGZI )if (*( * (arr_map + x ) + (y-2) = KONG)*( * (arr_map + x ) + (y-2) = XIANGZI;*( * (arr_map + x ) + (y-1) = REN;*( * (arr_map + x ) + (y) = WEIZHI;else if(*( * (arr_map + x ) + (y-2) = WEIZHI)*( * (arr_map + x ) + (y-
12、2) = XW;*( * (arr_map + x ) + (y-1) = REN;*( * (arr_map + x ) + (y) = WEIZHI;else if(*(*(arr_map + x) + (y - 1) = KONG)*( * (arr_map + x ) + (y-1) = REN;*( * (arr_map + x ) + (y) = WEIZHI;else if (*(*(arr_map + x) +(y) = REN)/人在空位if(*( * (arr_map + x ) + (y-1) = WEIZHI)/人左边是最终位置*( * (arr_map + x ) +
13、 (y-1) = RW;*( * (arr_map + x ) + y) = KONG;else if(*( * (arr_map + x ) + (y-1) = XIANGZI | *( * (arr_map + x ) + (y-1) = XW)if(*( * (arr_map + x ) + (y-1) = XW)if (*( * (arr_map + x ) + (y-2) = KONG)*( * (arr_map + x ) + (y-2) = XIANGZI;*( * (arr_map + x ) + (y-1) = RW;*( * (arr_map + x ) + (y) = K
14、ONG;else if(*( * (arr_map + x ) + (y-2) = WEIZHI)*( * (arr_map + x ) + (y-2) = XW;*( * (arr_map + x ) + (y-1) = RW;*( * (arr_map + x ) + (y) = KONG;else if(*(*(arr_map + x) + (y - 1) = XIANGZI )if (*( * (arr_map + x ) + (y-2) = KONG)*( * (arr_map + x ) + (y-2) = XIANGZI;*( * (arr_map + x ) + (y-1) =
15、 REN;*( * (arr_map + x ) + (y) = KONG;else if(*( * (arr_map + x ) + (y-2) = WEIZHI)*( * (arr_map + x ) + (y-2) = XW;*( * (arr_map + x ) + (y-1) = REN;*( * (arr_map + x ) + (y) = KONG;else if(*(*(arr_map + x) + (y - 1) = KONG)*( * (arr_map + x ) + (y-1) = REN;*( * (arr_map + x ) + (y) = KONG;/人在空位END
16、else if (*( * (arr_map + x ) + (y-1) = XW | *( * (arr_map + x ) + (y-1) = XIANGZI)/人左边有箱子或箱子在最终位置if(*( * (arr_map + x ) + (y-1) = XIANGZI | *( * (arr_map + x ) + (y-1) = XW)if(*( * (arr_map + x ) + (y-1) = XW)if (*( * (arr_map + x ) + (y-2) = KONG)*( * (arr_map + x ) + (y-2) = XIANGZI;*( * (arr_map
17、+ x ) + (y-1) = RW;*( * (arr_map + x ) + (y) = KONG;else if(*( * (arr_map + x ) + (y-2) = WEIZHI)*( * (arr_map + x ) + (y-2) = XW;*( * (arr_map + x ) + (y-1) = RW;*( * (arr_map + x ) + (y) = KONG;else if(*(*(arr_map + x) + (y - 1) = XIANGZI )if (*( * (arr_map + x ) + (y-2) = KONG)*( * (arr_map + x )
18、 + (y-2) = XIANGZI;*( * (arr_map + x ) + (y-1) = REN;*( * (arr_map + x ) + (y) = KONG;else if(*( * (arr_map + x ) + (y-2) = WEIZHI)*( * (arr_map + x ) + (y-2) = XW;*( * (arr_map + x ) + (y-1) = REN;*( * (arr_map + x ) + (y) = KONG;else if(*(*(arr_map + x) + (y-1) = WEIZHI)*(*(arr_map + x) + (y-1) =
19、RW;*(*(arr_map + x) + (y) = KONG;else if(*(*(arr_map + x) + (y-1) = KONG)*(*(arr_map + x) + (y-1) = REN;*(*(arr_map + x) + (y) = KONG;/IF(Y>0)END/else if(key = 'd' | key = 'D')/if (y < _y)if(*(*(arr_map + x) +(y) = RW)/人在最终位置if(*( * (arr_map + x ) + (y+1) = WEIZHI)/人右边还是最终位置*(
20、* (arr_map + x ) + (y+1) = RW;*( * (arr_map + x ) + y) = WEIZHI;else if(*( * (arr_map + x ) + (y+1) = XIANGZI | *( * (arr_map + x ) + (y+1) = XW)if(*( * (arr_map + x ) + (y+1) = XW)if (*( * (arr_map + x ) + (y+2) = KONG)*( * (arr_map + x ) + (y+2) = XIANGZI;*( * (arr_map + x ) + (y+1) = RW;*( * (arr
21、_map + x ) + (y) = WEIZHI;else if(*( * (arr_map + x ) + (y+2) = WEIZHI)*( * (arr_map + x ) + (y+2) = XW;*( * (arr_map + x ) + (y+1) = RW;*( * (arr_map + x ) + (y) = WEIZHI;else if(*(*(arr_map + x) + (y + 1) = XIANGZI )if (*( * (arr_map + x ) + (y+2) = KONG)*( * (arr_map + x ) + (y+2) = XIANGZI;*( *
22、(arr_map + x ) + (y+1) = REN;*( * (arr_map + x ) + (y) = WEIZHI;else if(*( * (arr_map + x ) + (y+2) = WEIZHI)*( * (arr_map + x ) + (y+2) = XW;*( * (arr_map + x ) + (y+1) = REN;*( * (arr_map + x ) + (y) = WEIZHI;else if(*(*(arr_map + x) + (y + 1) = KONG)*( * (arr_map + x ) + (y+1) = REN;*( * (arr_map
23、 + x ) + (y) = WEIZHI;else if (*(*(arr_map + x) +(y) = REN)/人在空位if(*( * (arr_map + x ) + (y+1) = WEIZHI)/人右边是最终位置*( * (arr_map + x ) + (y+1) = RW;*( * (arr_map + x ) + y) = KONG;else if(*( * (arr_map + x ) + (y+1) = XIANGZI | *( * (arr_map + x ) + (y+1) = XW)if(*( * (arr_map + x ) + (y+1) = XW)if (*
24、( * (arr_map + x ) + (y+2) = KONG)*( * (arr_map + x ) + (y+2) = XIANGZI;*( * (arr_map + x ) + (y+1) = RW;*( * (arr_map + x ) + (y) = KONG;else if(*( * (arr_map + x ) + (y-2) = WEIZHI)*( * (arr_map + x ) + (y+2) = XW;*( * (arr_map + x ) + (y+1) = RW;*( * (arr_map + x ) + (y) = KONG;else if(*(*(arr_ma
25、p + x) + (y + 1) = XIANGZI )if (*( * (arr_map + x ) + (y+2) = KONG)*( * (arr_map + x ) + (y+2) = XIANGZI;*( * (arr_map + x ) + (y+1) = REN;*( * (arr_map + x ) + (y) = KONG;else if(*( * (arr_map + x ) + (y+2) = WEIZHI)*( * (arr_map + x ) + (y+2) = XW;*( * (arr_map + x ) + (y+1) = REN;*( * (arr_map +
26、x ) + (y) = KONG;else if(*(*(arr_map + x) + (y + 1) = KONG)*( * (arr_map + x ) + (y+1) = REN;*( * (arr_map + x ) + (y) = KONG;/人在空位ENDelse if (*( * (arr_map + x ) + (y+1) = XW | *( * (arr_map + x ) + (y+1) = XIANGZI)/人右边有箱子或箱子在最终位置if(*( * (arr_map + x ) + (y+1) = XIANGZI | *( * (arr_map + x ) + (y+1
27、) = XW)if(*( * (arr_map + x ) + (y+1) = XW)if (*( * (arr_map + x ) + (y+2) = KONG)*( * (arr_map + x ) + (y+2) = XIANGZI;*( * (arr_map + x ) + (y+1) = RW;*( * (arr_map + x ) + (y) = KONG;else if(*( * (arr_map + x ) + (y+2) = WEIZHI)*( * (arr_map + x ) + (y+2) = XW;*( * (arr_map + x ) + (y+1) = RW;*(
28、* (arr_map + x ) + (y) = KONG;else if(*(*(arr_map + x) + (y + 1) = XIANGZI )if (*( * (arr_map + x ) + (y+2) = KONG)*( * (arr_map + x ) + (y+2) = XIANGZI;*( * (arr_map + x ) + (y+1) = REN;*( * (arr_map + x ) + (y) = KONG;else if(*( * (arr_map + x ) + (y+2) = WEIZHI)*( * (arr_map + x ) + (y+2) = XW;*(
29、 * (arr_map + x ) + (y+1) = REN;*( * (arr_map + x ) + (y) = KONG;else if(*(*(arr_map + x) + (y+1) = WEIZHI)*(*(arr_map + x) + (y+1) = RW;*(*(arr_map + x) + (y) = KONG;else if(*(*(arr_map + x) + (y+1) = KONG)*(*(arr_map + x) + (y+1) = REN;*(*(arr_map + x) + (y) = KONG;/IF(Y>0)END/else if(key =
30、9;w' | key = 'W')/if (x-1 > 0)if(*(*(arr_map + (x) +(y) = RW)/人在最终位置if(*( * (arr_map + (x-1) ) + (y) = WEIZHI)/人上边还是最终位置*( * (arr_map + (x-1) ) + (y) = RW;*( * (arr_map + (x) ) + y) = WEIZHI;else if(*( * (arr_map + (x-1) ) + (y) = XIANGZI | *( * (arr_map + (x-1) ) + (y) = XW)if(*( * (
31、arr_map + (x-1) ) + (y) = XW)if (*( * (arr_map + (x-2) ) + (y) = KONG)*( * (arr_map + (x-2) ) + (y) = XIANGZI;*( * (arr_map + (x-1) ) + (y) = RW;*( * (arr_map + (x) ) + (y) = WEIZHI;else if(*( * (arr_map + (x-2) ) + (y) = WEIZHI)*( * (arr_map + (x-2) ) + (y) = XW;*( * (arr_map + (x-1) ) + (y) = RW;*
32、( * (arr_map + x ) + (y) = WEIZHI;else if(*(*(arr_map + (x-1) + (y) = XIANGZI )if (*( * (arr_map + (x-2) ) + (y) = KONG)*( * (arr_map + (x-2) ) + (y) = XIANGZI;*( * (arr_map + (x-1) ) + (y) = REN;*( * (arr_map + x ) + (y) = WEIZHI;else if(*( * (arr_map + (x-2) ) + (y) = WEIZHI)*( * (arr_map + (x-2)
33、) + (y) = XW;*( * (arr_map + (x-1) ) + (y) = REN;*( * (arr_map + x ) + (y) = WEIZHI;else if(*(*(arr_map + (x-1) + (y) = KONG)*( * (arr_map + (x-1) ) + (y) = REN;*( * (arr_map + x ) + (y) = WEIZHI;else if (*(*(arr_map + x) +(y) = REN)/人在空位if(*( * (arr_map + (x-1) ) + (y) = WEIZHI)/人上边是最终位置*( * (arr_m
34、ap + (x-1) ) + (y) = RW;*( * (arr_map + x ) + y) = KONG;else if(*( * (arr_map + (x-1) ) + (y) = XIANGZI | *( * (arr_map + (x-1) ) + (y) = XW)/人上边是箱子或在最终位置的箱子if(*( * (arr_map + (x-1) ) + (y) = XW)if (*( * (arr_map + (x-2) ) + (y) = KONG)*( * (arr_map + (x-2) ) + (y) = XIANGZI;*( * (arr_map + (x-1) )
35、+ (y) = RW;*( * (arr_map + x ) + (y) = KONG;else if(*( * (arr_map + (x-2) ) + (y) = WEIZHI)*( * (arr_map + (x-2) ) + (y) = XW;*( * (arr_map + (x-1) ) + (y) = RW;*( * (arr_map + x ) + (y) = KONG;else if(*(*(arr_map + (x-1) + (y) = XIANGZI )if (*( * (arr_map + (x-2) ) + (y) = KONG)*( * (arr_map + (x-2
36、) ) + (y) = XIANGZI;*( * (arr_map + (x-1) ) + (y) = REN;*( * (arr_map + x ) + (y) = KONG;else if(*( * (arr_map + (x-2) ) + (y) = WEIZHI)*( * (arr_map + (x-2) ) + (y) = XW;*( * (arr_map + (x-1) ) + (y) = REN;*( * (arr_map + x ) + (y) = KONG;else if(*(*(arr_map + (x-1) + (y) = KONG)*( * (arr_map + (x-
37、1) ) + (y) = REN;*( * (arr_map + x ) + (y) = KONG;/人在空位ENDelse if (*( * (arr_map + (x-1) ) + (y) = XW | *( * (arr_map + (x-1) ) + (y) = XIANGZI)/人上边有箱子或箱子在最终位置if(*( * (arr_map + (x-1) ) + (y) = XIANGZI | *( * (arr_map + (x-1) ) + (y) = XW)if(*( * (arr_map + (x-1) ) + (y) = XW)if (*( * (arr_map + (x-
38、2) ) + (y) = KONG)*( * (arr_map + (x-2) ) + (y) = XIANGZI;*( * (arr_map + (x-1) ) + (y) = RW;*( * (arr_map + x ) + (y) = KONG;else if(*( * (arr_map + (x-2) ) + (y) = WEIZHI)*( * (arr_map + (x-2) ) + (y) = XW;*( * (arr_map + (x-1) ) + (y) = RW;*( * (arr_map + x ) + (y) = KONG;else if(*(*(arr_map + (x
39、-1) + (y) = XIANGZI )if (*( * (arr_map + (x-2) ) + (y) = KONG)*( * (arr_map + (x-2) ) + (y) = XIANGZI;*( * (arr_map + (x-1) ) + (y) = REN;*( * (arr_map + x ) + (y) = KONG;else if(*( * (arr_map + (x-2) ) + (y) = WEIZHI)*( * (arr_map + (x-2) ) + (y) = XW;*( * (arr_map + (x-1) ) + (y) = REN;*( * (arr_m
40、ap + x ) + (y) = KONG;else if(*(*(arr_map + (x-1) + (y) = WEIZHI)*(*(arr_map + (x-1) + (y) = RW;*(*(arr_map + x) + (y) = KONG;else if(*(*(arr_map + (x-1) + (y) = KONG)*(*(arr_map + (x-1) + (y) = REN;*(*(arr_map + x) + (y) = KONG;/IF(Y>0)END/else if(key = 's' | key = 'S')/if (x < _x+1 > 0)if(*(*(arr_map + (x) +(y) = RW)/人在最终位置if(*( * (arr_map + (x+1) ) + (y) = WEIZHI)/人下边还是最终位置*( * (arr_map + (x+1) ) + (y) = RW;*( * (arr_map + (x) ) + y) =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年土地流转转让合同(1篇)
- 高中信息技术信息系统在水果批发市场交易信息与物流配送管理中的应用课件
- 架空线下地改造工程项目可行性研究报告
- 新能源汽车基础培训【课件文档】
- 无线通讯设备生产项目可行性研究报告
- 行李箱轮子保养与拉杆顺滑处理
- 2026年及未来5年市场数据中国家电连锁行业市场发展数据监测及投资战略咨询报告
- 高中信息技术信息系统在服装干洗店业务流程与客户服务管理中的应用课件
- 2025 高中信息技术数据与计算之算法的拉格朗日插值算法课件
- 2025 高中信息技术数据与计算之数据在智能农业作物产量预测模型优化中的应用课件
- 幼儿园区域材料投放讲座
- 2024ABB PIHF谐波滤波器用户手册
- 国家职业标准 -碳排放管理员
- 销售加速公式培训课件
- 设备报废配件管理制度
- 冀教版五年级下册小学英语全册单元测试卷(含听力音频文件)
- 琉璃瓦施工合同协议书
- 《动物营养学》全套教学课件
- 车间物料流转管理制度
- 《人工智能安全导论》 课件 第五章 人工智能技术在网络入侵检测领域
- 《康复评定技术》课件-第二章 人体形态与反射评定技术
评论
0/150
提交评论