紧急求救:用C语言编写推箱子游戏的程序!!

来源:百度知道 编辑:UC知道 时间:2024/07/08 09:06:29
游戏规则: 用户可操作上下左右四键控制人的行走方向,假如人的前面有箱子那么人向这个方向走时就可以推动箱子.箱子前面必须要保证没有阻挡物(如墙壁,砖块和其他箱子),否则推动无效.当把所有箱子都推入预先要求的地方时,即为过关,游戏结束.

下面是游戏中的一个例图:
* * *
* X *
* * * □ * * *
* X □ P □ X *
* * * □ * * *
* X *
* * *
* 代表墙壁中的砖块;
X 代表需要填充的位置;
□ 代表箱子;
P 代表推箱子的人;
〇 代表箱子已经移到需要填充的位子;
以下是此题中要求实现的两关:
第一关如图:
* * * * *
* * * * *
* * * □ □ *
* □ * *
* * X * * * *
* X 〇 〇 X * * □ *
* P X *
* * * * * * * * *
第二关如图:
* * * * *
* * * *

你给我最佳答案 我把回答发到你邮箱里去 诚信第一绝无欺诈 邮箱你在对最佳答案的评价里告诉

给:
#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码或扩充码*/
}
void main()
{
int iKey,x=11,y=6,tx=11,ty=6; /*x,y为人物移动后坐标,tx,ty为人物移动前坐标*/
struct Boxss Box[4]; /*定义箱子数量*/
int chMap[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