C语言课程设计 推箱子游戏源代码
C语言课程设计推箱子 源代码 #include“stdio.h“ #include“bios.h“ #define LEFT 75 #define RIGHT 77 #define UPPER 72 #define DOWN 80 #define ESC 27 struct Boxss { int x,y; }; union keyboard /*定义读取键盘码的共用体类型*/ { unsigned int iKeyInfo; char chKeyBit[2]; }; int fnGetKey(void) /*定义读取键盘码的函数*/ { union keyboard uniKey1; /*定义读取键盘码的共用体变量*/ while(bioskey(1)==0); /*检测用户是否按键*/ uniKey1.iKeyInfo=bioskey(0); /*读取按键信息*/ return(uniKey1.chKeyBit[0]==0?uniKey1.chKeyBit[1]:uniKey1.chKeyBit[0]); /*返回ASCII码或扩充码*/ } int play(int k) { int iKey,x,y,tx,ty,s,i,j; struct Boxss Box[3]; /*定义箱子数量*/ int chMap[10][10]; int chMap1[10][10]={ /*定义level1地图*/ {0,0,0,0,0,0,0,0,0,0}, {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,1,0,1,0,0,0,0,2,0}, {0,2,0,1,1,1,1,1,0,0}, {0,0,0,0,0,0,0,0,0,0}, }; /*定义level2地图*/ int chMap2[10][10]={ {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,1,1,1,0}, {0,0,2,0,0,0,1,1,1,0}, {0,0,2,0,0,0,1,1,1,0}, {0,0,2,1,1,1,1,0,0,0}, {0,0,1,1,0,1,1,0,0,0}, {0,0,1,1,0,1,1,1,0,0}, {0,0,0,0,0,1,1,1,0,0}, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}, }; int chMap3[10][10]={ /*定义level3地图*/ {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,1,1,0,0,0}, {0,0,0,1,1,1,1,0,0,0}, {0,0,0,1,0,1,0,0,0,0}, {0,0,1,1,0,1,0,2,0,0}, {0,0,1,0,1,1,1,2,0,0}, {0,0,1,1,1,1,1,2,0,0}, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}, }; int chMap4[10][10]={ /*定义level4地图*/ {0,0,0,0,0,0,0,0,0,0}, {0,0,1,1,0,0,0,1,1,0}, {0,1,1,1,1,1,1,1,1,0}, {0,1,1,1,1,1,0,1,1,0}, {0,0,1,1,0,0,0,1,1,0}, {0,0,1,1,0,2,2,1,1,0}, {0,0,1,0,0,2,0,1,0,0}, {0,1,1,1,1,1,1,0,0,0}, {0,1,1,1,1,1,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}, }; switch (k) /*根据实参确定地图*/ { case 1: x=11;y=6; /*定义人的位置*/ tx=11;ty=6; for(i=0;i<10;i++) for(j=0;j<10;j++) {chMap[i][j]=chMap1[i][j]; Box[0].x=13; /*定义箱子的坐标属性*/ Box[1].x=11; Box[2].x=18;