效果图

项目链接
https://download.csdn.net/download/weixin_45525272/21106512
代码
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#pragma comment(lib,"winmm.lib")
IMAGE img[8];
int x1, y1;
int loop=0;
void Find(int map[9][9]);
void Print(int map[9][9]);
void Princes(int x, int y);
void Boom(int x, int y);
void Wolf(int x, int y);
void Bomb(int x, int y);
void Man(int x, int y);
void Blank(int x, int y);
int Victory(int map[9][9]);
void Move(int map[9][9], int x, int y);
void GameMap();
int PlayGame(int map[9][9]);
void Loading();
void GiniGame();
void GiniGame()
{
initgraph(540, 540);
loadimage(NULL, "./游戏素材/图片素材/317760.jpg");
Sleep(3000);
cleardevice();
}
void Loading()
{
loadimage(&img[0], "./游戏素材/图片素材/0.jpg");
loadimage(&img[1], "./游戏素材/图片素材/1.jpg");
loadimage(&img[2], "./游戏素材/图片素材/2.jpg");
loadimage(&img[3], "./游戏素材/图片素材/3.jpg");
loadimage(&img[4], "./游戏素材/图片素材/4.jpg");
loadimage(&img[5], "./游戏素材/图片素材/5.jpg");
loadimage(&img[6], "./游戏素材/图片素材/6.jpg");
loadimage(&img[7], "./游戏素材/图片素材/7.jpg");
}
void GameMap()
{
int gamemap[5][9][9] =
{
{{4, 4, 6, 6, 6, 4, 4, 4, 4 },
{4, 4, 6, 3, 6, 4, 4, 4, 4 },
{4, 4, 6, 0, 6, 6, 6, 6, 4 },
{6, 6, 6, 2, 0, 2, 3, 6, 4 },
{6, 3, 0, 2, 1, 6, 6, 6, 4 },
{6, 6, 6, 6, 2, 6, 4, 4, 4 },
{4, 4, 4, 6, 3, 6, 4, 4, 4 },
{4, 4, 4, 6, 6, 6, 4, 4, 4 },
{4, 4, 4, 4, 4, 4, 4, 4, 4 }, },
{ {6, 6, 6, 6, 6, 4, 4, 4, 4 },
{6, 1, 0, 0, 6, 4, 4, 4, 4 },
{6, 0, 2, 2, 6, 4, 6, 6, 6 },
{6, 0, 2, 0, 6, 4, 6, 3, 6 },
{6, 6, 6, 0, 6, 6, 6, 3, 6 },
{4, 6, 6, 0, 0, 0, 0, 3, 6 },
{4, 6, 0, 0, 0, 6, 0, 0, 6 },
{4, 6, 0, 0, 0, 6, 6, 6, 6 },
{4, 6, 6, 6, 6, 6, 4, 4, 4 } },
{ {4, 6, 6, 6, 6, 4, 4, 4, 4 },
{4, 6, 1, 0, 6, 6, 6, 4, 4 },
{4, 6, 0, 2, 0, 0, 6, 4, 4 },
{6, 6, 6, 0, 6, 0, 6, 6, 4 },
{6, 3, 6, 0, 6, 0, 0, 6, 4 },
{6, 3, 2, 0, 0, 6, 0, 6, 4 },
{6, 3, 0, 0, 0, 2, 0, 6, 4 },
{6, 6, 6, 6, 6, 6, 6, 6, 4 },
{4, 4, 4, 4, 4, 4, 4, 4, 4 }, },
{ {4, 6, 6, 6, 6, 6, 6, 6, 4 },
{4, 6, 0, 1, 3, 3, 3, 6, 4 },
{4, 6, 0, 0, 0, 6, 6, 6, 6 },
{6, 6, 6, 2, 0, 0, 0, 0, 6 },
{6, 0, 0, 0, 6, 2, 6, 0, 6 },
{6, 0, 2, 0, 6, 0, 0, 0, 6 },
{6, 0, 0, 0, 6, 6, 6, 6, 6 },
{6, 6, 6, 6, 6, 4, 4, 4, 4 },
{4, 4, 4, 4, 4, 4, 4, 4, 4 }, },
{ {4, 6, 6, 6, 6, 6, 4, 4, 4 },
{4, 6, 0, 1, 0, 6, 6, 6, 4 },
{6, 6, 0, 6, 2, 0, 0, 6, 4 },
{6, 0, 5 ,3, 0, 3, 0, 6, 4 },
{6, 0, 0, 2, 2, 0, 6, 6, 4 },
{6, 6, 6, 0, 6, 3, 6, 4, 4 },
{4, 4, 6, 0, 0, 0, 6, 4, 4 },
{4, 4, 6, 6, 6, 6, 6, 4, 4 },
{4, 4, 4, 4, 4, 4, 4, 4, 4 },}
};
int map[9][9];
for (int i = 0; i < 5; i++)
{
do
{
loop = 0;
for (int j = 0; j < 9; j++)
{
for (int k = 0; k < 9; k++)
{
map[j][k] = gamemap[i][j][k];
}
}
PlayGame(map);
} while (loop);
}
}
int PlayGame(int map[9][9])
{
Print(map);
Find(map);
do
{
switch (_getch())
{
case 72: Move(map, -1, 0); break;
case 75: Move(map, 0, -1); break;
case 77: Move(map, 0, 1); break;
case 80: Move(map, 1, 0); break;
case 27: exit(0); break;
case 32: loop = 1; return 0;
}
} while (Victory(map));
Princes(60 * x1, 60 * y1);
MessageBox(NULL,"成功击败狗子们" , "恭喜通关", MB_SYSTEMMODAL);
return 0;
}
void Move(int map[9][9], int x, int y)
{
if (map[x1+x][y1+y]==0|| map[x1 + x][y1 + y] == 3)
{
map[x1][y1]--;
map[x1 + x][y1 + y]++;
for (int i = 0; i < 60; i++)
{
Blank(60*x1+i*x,60*y1+i*y);
Man(60 * x1 + (i + 1)*x, 60 * y1 + (i + 1)*y);
}
if (map[x1][y1]==3)
{
Wolf(60 * x1, 60 * y1);
}
x1 += x;
y1 += y;
}
else if ((map[x1 + x][y1 + y]==2|| map[x1 + x][y1 + y]==5)
&&( map[x1 + x*2][y1 + y*2]==0|| map[x1 + x*2][y1 + y*2]==3))
{
map[x1][y1]--;
map[x1 + x][y1 + y]--;
map[x1 + 2 * x][y1 + 2 * y] += 2;
for (int i = 0; i < 60; i++)
{
Blank(60 * (x1 + x) + i * x, 60 * (y1 + y) + i * y);
Boom(60 * (x1 + x) + (i+1) * x, 60 * (y1 + y) + (i+1) * y);
Blank(60 * x1 + i * x, 60 *y1+ i * y);
Man(60 * x1 + (i+1) * x, 60 *y1 + (i+1) * y);
}
if (map[x1][y1]==3)
{
Wolf(60 * x1, 60 * y1);
}
x1 += x;
y1 += y;
if (map[x1+x][y1+y]==5)
{
Bomb(60 * (x1 + x), 60 * (y1 + y));
}
}
}
int Victory(int map[9][9])
{
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 9; j++)
{
if (map[i][j]==2)
{
return 1;
}
}
}
return 0;
}
void Blank(int x, int y)
{
putimage(y, x, &img[0]);
}
void Man(int x, int y)
{
putimage(y, x, &img[1]);
}
void Bomb(int x, int y)
{
putimage(y, x, &img[5]);
}
void Wolf(int x, int y)
{
putimage(y, x, &img[3]);
}
void Boom(int x, int y)
{
putimage(y, x, &img[2]);
}
void Princes(int x, int y)
{
putimage(y, x, &img[7]);
}
void Print(int map[9][9])
{
for (int x = 0; x < 9; x++)
{
for (int y = 0; y < 9; y++)
{
putimage(60 * y, 60 * x, &img[map[x][y]]);
}
}
}
void Find(int map[9][9])
{
for (x1 = 0; x1 < 9; x1++)
{
for (y1 = 0; y1 < 9; y1++)
{
if (map[x1][y1]==1)
{
return;
}
}
}
}
int main()
{
GiniGame();
Loading();
GameMap();
getchar();
return 0;
}
|