源代码如下:(仅供参考)
#include//图形库
#include
#include
IMAGE p1,p2,p3,p4,p5,p6,p7;
int a[10][10] = { 0 };//二维数组初始化为零
int n=1;//关卡数
MOUSEMSG k;//定义k为MOUSENSG类型的结构体变量
void drawmap()//画图
{
int i=0, j=0,x,y;
cleardevice();//清屏
settextcolor(RED);//字体颜色为红色
settextstyle(50, 0, 0);
/*字体高度,宽度(0表示自定义),方向(0表示横)*/
outtextxy(175, 25, "推箱子");
settextcolor(BLUE);
settextstyle(15, 0, 0);
outtextxy(0, 85, "返回");
for(i=0;i<10;i++)
for (j = 0; j < 10; j++)
{
x = j * 50;
y = i * 50 + 100;//想一想为什么
switch (a[i][j])
{
case 1:putimage(x, y, &p1); break;
case 2:putimage(x, y, &p2); break;
case 3:putimage(x, y, &p3); break;
case 4:/*人站在路上*/
case 8:/*人站在标记上*/
/*透明贴图方法*/
putimage(x, y, &p2);//路(背景)
putimage(x, y, &p7,SRCAND);//人物掩码图
putimage(x, y, &p4, SRCPAINT); break;//人物背景图
case 5:putimage(x, y, &p5); break;
case 6:putimage(x, y, &p6); break;
}
}
}
int judge()//判断是否满足胜利条件
{
int i, j;
int m;//剩余标记的数量
m = 0;
for (i = 0; i < 10; i++)
for (j = 0; j < 10; j++)
if (a[i][j] == 2)
m++;
if (m == 0)//标记数量为零胜利