?通过C++可视化编程实现推箱子小游戏,
具体步骤在代码的注释里,注释写的很详细!
原创不易,
转载请注明出处!
谢谢配合!
具体照片文件和音频资源可以自行网上搜索下载。
#include<iostream>
#include<stdlib.h>
#include<conio.h>
#include<graphics.h>
#include <mciapi.h>
#include <mmsyscom.h>
#pragma comment(lib,"Winmm.lib")
using namespace std;
//定义
IMAGE image0, image1, image2, image3, image4, image5, image6,image7,image8;
//全局变量N
int N = 0;
//三维数组表示地图
int a[10][8][8] =
{
//1
{
{1,1,1,1,1,1,1,1},
{1,0,0,0,0,1,1,1},
{1,3,3,1,0,1,1,1},
{1,4,4,1,2,0,4,1},
{1,0,1,1,0,0,3,1},
{1,0,0,0,0,0,0,1},
{1,1,1,0,1,1,1,1},
{1,1,1,1,1,1,1,1}
},
//2
{
{1,1,1,1,1,1,1,1},
{1,0,0,0,0,1,1,1},
{1,1,3,1,0,1,1,1},
{1,4,4,1,2,0,4,1},
{1,3,1,1,0,0,3,1},
{1,0,0,0,0,0,0,1},
{1,1,1,0,1,1,1,1},
{1,1,1,1,1,1,1,1}
},
//3
{
{1,1,1,1,1,1,1,1},
{1,1,0,0,0,3,4,1},
{1,1,1,1,0,1,0,1},
{1,0,4,1,2,0,1,1},
{1,0,3,0,0,0,3,4},
{1,0,0,0,0,1,0,1},
{1,1,1,0,1,1,1,1},
{1,1,1,1,1,1,1,1}
},
//4
{
{1,1,1,1,1,1,1,1},
{1,0,0,0,0,0,4,1},
{1,3,1,1,0,1,3,1},
{1,0,4,1,2,0,0,1},
{1,0,3,0,0,0,1,1},
{1,0,0,0,0,0,0,1},
{1,4,0,0,1,1,1,1},
{1,1,1,0,0,1,1,1}
},
//5
{
{1,1,1,1,1,1,1,1},
{1,0,0,0,0,0,1,1},
{1,0,1,1,0,0,0,1},
{1,4,4,1,0,0,4,1},
{1,3,3,1,2,0,3,1},
{1,0,0,0,0,0,0,1},
{1,1,1,0,0,0,1,1},
{1,1,1,1,1,1,1,1}
},
//6
{
{1,1,1,1,1,1,1,1},
{1,1,4,0,0,3,0,1},
{1,0,1,1,0,0,0,1},
{1,4,4,1,2,0,1,1},
{1,0,3,1,1,0,0,1},
{1,0,0,0,0,3,0,1},
{1,0,0,0,1,1,1,1},
{1,1,1,1,1,1,1,1}
},
//7
{
{1,1,1,1,1,1,1,1},
{1,0,0,1,0,0,4,1},
{1,0,1,1,0,1,0,1},
{1,4,4,1,2,0,3,1},
{1,0,3,1,0,0,0,1},
{1,0,3,0,0,0,0,1},
{1,0,0,0,0,1,1,1},
{1,1,1,1,1,1,1,1}
},
//8
{
{1,1,1,1,1,1,1,1},
{1,0,0,0,0,3,4,1},
{1,3,1,1,0,1,1,1},
{1,4,1,1,2,0,1,1},
{1,1,1,1,0,1,1,1},
{1,0,0,0,0,0,0,1},
{1,1,1,0,3,1,1,1},
{1,1,1,1,4,1,1,1}
},
//9
{
{1,4,1,1,1,1,1,1},
{4,0,0,0,0,3,0,1},
{1,3,1,1,0,0,0,1},
{1,0,0,1,0,0,1,1},
{1,0,3,1,0,0,1,1},
{1,0,0,4,0,2,0,1},
{1,1,1,0,1,1,1,1},
{1,1,1,1,1,1,1,1}
},
//10
{
{1,1,1,1,1,1,1,1},
{1,0,0,4,0,3,0,1},
{1,3,1,1,0,1,0,1},
{1,4,4,1,2,0,0,1},
{1,0,0,1,1,0,1,1},
{1,0,0,3,0,0,0,1},
{1,1,0,0,1,1,1,1},
{1,1,1,1,1,1,1,1}
}
};
/*
1:墙
0:空地
2:人
3:箱子
4:目标
5:人&&目标
6:目标&&箱子
*/
//延时模块
void delay_time(int x)
{
int i, j;
for (i = 0; i < x; ++i)
{
for (j = 0; j < 1000; ++j)
{
}
}
}
//显示模块
void screen()
{
int i, j;
int x, y;
for (i = 0; i < 8; ++i)
{
for (j = 0; j < 8; ++j)
{
x = j * 64;
y = i * 64;
switch (a[N][i][j])
{
case 0:putimage(x, y, &image0); break;
case 1:putimage(x, y, &image1); break;
case 2:putimage(x, y, &image2); break;
case 3:putimage(x, y, &image3); break;
case 4:putimage(x, y, &image4); break;
case 5:putimage(x, y, &image5); break;
case 6:putimage(x, y, &image6); break;
default:break;
}
}
cout << endl;
}
}
//控制模块
void control()
{
int i, j;
int sum_pb = 0;
for (i = 0; i < 8; ++i)
{
for (j = 0; j < 8; ++j)
{
if (a[N][i][j] == 6) ++sum_pb;
}
}
if (sum_pb == 3)
{
putimage(0, 0, &image7);
}
if (sum_pb == 3)
{
++N;
}
for (i = 0; i < 8; ++i)
{
for (j = 0; j < 8; ++j)
{
if (a[N][i][j] == 2 || a[N][i][j] == 5) break;
}
if (a[N][i][j] == 2 || a[N][i][j] == 5) break;
}
//从键盘接收一个字符
char S = _getch();
switch (S)
{
case 'W':
{
//上一点不是墙
if (a[N][i - 1][j] != 1)
{
//上一点是空地
if (a[N][i - 1][j] == 0 && a[N][i][j] == 2)
{
a[N][i - 1][j] = 2;
a[N][i][j] = 0;
}
//上一点是目标&&箱子
if (a[N][i - 1][j] == 6 && a[N][i][j] == 2)
{
}
//上一点是箱子
if (a[N][i - 1][j] == 3 && a[N][i][j] == 2)
{
//上上一点是空地
if (a[N][i - 2][j] == 0)
{
a[N][i - 1][j] = 2;
a[N][i][j] = 0;
a[N][i - 2][j] = 3;
}
//上上一点是目标
if (a[N][i - 2][j] == 4)
{
a[N][i - 2][j] = 6;
a[N][i - 1][j] = 2;
a[N][i][j] = 0;
}
}
//上一点是目标
if (a[N][i - 1][j] == 4 && a[N][i][j] == 2)
{
a[N][i - 1][j] = 5;
a[N][i][j] = 0;
}
//这一点是人&&目标
if (a[N][i][j] == 5)
{
if (a[N][i - 1][j] == 0)
{
a[N][i - 1][j] = 2;
a[N][i][j] = 4;
}
if (a[N][i - 1][j] == 3 && a[N][i - 2][j] == 0)
{
a[N][i - 1][j] = 2;
a[N][i - 2][j] = 3;
a[N][i][j] = 4;
}
if (a[N][i - 1][j] == 3 && a[N][i - 2][j] == 4)
{
a[N][i - 1][j] = 2;
a[N][i - 2][j] = 6;
a[N][i][j] = 4;
}
}
}
break;
}
case 'w':
{
//上一点不是墙
if (a[N][i - 1][j] != 1)
{
//上一点是空地
if (a[N][i - 1][j] == 0 && a[N][i][j] == 2)
{
a[N][i - 1][j] = 2;
a[N][i][j] = 0;
}
//上一点是目标&&箱子
if (a[N][i - 1][j] == 6 && a[N][i][j] == 2)
{
}
//上一点是箱子
if (a[N][i - 1][j] == 3 && a[N][i][j] == 2)
{
//上上一点是空地
if (a[N][i - 2][j] == 0)
{
a[N][i - 1][j] = 2;
a[N][i][j] = 0;
a[N][i - 2][j] = 3;
}
//上上一点是目标
if (a[N][i - 2][j] == 4)
{
a[N][i - 2][j] = 6;
a[N][i - 1][j] = 2;
a[N][i][j] = 0;
}
}
//上一点是目标
if (a[N][i - 1][j] == 4 && a[N][i][j] == 2)
{
a[N][i - 1][j] = 5;
a[N][i][j] = 0;
}
//这一点是人&&目标
if (a[N][i][j] == 5)
{
if (a[N][i - 1][j] == 0)
{
a[N][i - 1][j] = 2;
a[N][i][j] = 4;
}
if (a[N][i - 1][j] == 3 && a[N][i - 2][j] == 0)
{
a[N][i - 1][j] = 2;
a[N][i - 2][j] = 3;
a[N][i][j] = 4;
}
if (a[N][i - 1][j] == 3 && a[N][i - 2][j] == 4)
{
a[N][i - 1][j] = 2;
a[N][i - 2][j] = 6;
a[N][i][j] = 4;
}
}
}
break;
}
case 72:
{
//上一点不是墙
if (a[N][i - 1][j] != 1)
{
//上一点是空地
if (a[N][i - 1][j] == 0 && a[N][i][j] == 2)
{
a[N][i - 1][j] = 2;
a[N][i][j] = 0;
}
//上一点是目标&&箱子
if (a[N][i - 1][j] == 6 && a[N][i][j] == 2)
{
}
//上一点是箱子
if (a[N][i - 1][j] == 3 && a[N][i][j] == 2)
{
//上上一点是空地
if (a[N][i - 2][j] == 0)
{
a[N][i - 1][j] = 2;
a[N][i][j] = 0;
a[N][i - 2][j] = 3;
}
//上上一点是目标
if (a[N][i - 2][j] == 4)
{
a[N][i - 2][j] = 6;
a[N][i - 1][j] = 2;
a[N][i][j] = 0;
}
}
//上一点是目标
if (a[N][i - 1][j] == 4 && a[N][i][j] == 2)
{
a[N][i - 1][j] = 5;
a[N][i][j] = 0;
}
//这一点是人&&目标
if (a[N][i][j] == 5)
{
if (a[N][i - 1][j] == 0)
{
a[N][i - 1][j] = 2;
a[N][i][j] = 4;
}
if (a[N][i - 1][j] == 3 && a[N][i - 2][j] == 0)
{
a[N][i - 1][j] = 2;
a[N][i - 2][j] = 3;
a[N][i][j] = 4;
}
if (a[N][i - 1][j] == 3 && a[N][i - 2][j] == 4)
{
a[N][i - 1][j] = 2;
a[N][i - 2][j] = 6;
a[N][i][j] = 4;
}
}
}
break;
}
case 'S':
{
//下一点不是墙
if (a[N][i + 1][j] != 1)
{
//下一点是空地
if (a[N][i + 1][j] == 0 && a[N][i][j] == 2)
{
a[N][i + 1][j] = 2;
a[N][i][j] = 0;
}
//下一点是目标&&箱子
if (a[N][i + 1][j] == 6 && a[N][i][j] == 2)
{
}
//下一点是箱子
if (a[N][i + 1][j] == 3 && a[N][i][j] == 2)
{
//下下一点是空地
if (a[N][i + 2][j] == 0)
{
a[N][i + 1][j] = 2;
a[N][i][j] = 0;
a[N][i + 2][j] = 3;
}
//下下一点是目标
if (a[N][i + 2][j] == 4)
{
a[N][i + 2][j] = 6;
a[N][i + 1][j] = 2;
a[N][i][j] = 0;
}
}
//下一点是目标
if (a[N][i + 1][j] == 4 && a[N][i][j] == 2)
{
a[N][i + 1][j] = 5;
a[N][i][j] = 0;
}
//这一点是人&&目标
if (a[N][i][j] == 5)
{
if (a[N][i + 1][j] == 0)
{
a[N][i + 1][j] = 2;
a[N][i][j] = 4;
}
if (a[N][i + 1][j] == 3 && a[N][i + 2][j] == 0)
{
a[N][i + 1][j] = 2;
a[N][i + 2][j] = 3;
a[N][i][j] = 4;
}
if (a[N][i + 1][j] == 3 && a[N][i + 2][j] == 4)
{
a[N][i + 1][j] = 2;
a[N][i + 2][j] = 6;
a[N][i][j] = 4;
}
}
}
break;
}
case 's':
{
//下一点不是墙
if (a[N][i + 1][j] != 1)
{
//下一点是空地
if (a[N][i + 1][j] == 0 && a[N][i][j] == 2)
{
a[N][i + 1][j] = 2;
a[N][i][j] = 0;
}
//下一点是目标&&箱子
if (a[N][i + 1][j] == 6 && a[N][i][j] == 2)
{
}
//下一点是箱子
if (a[N][i + 1][j] == 3 && a[N][i][j] == 2)
{
//下下一点是空地
if (a[N][i + 2][j] == 0)
{
a[N][i + 1][j] = 2;
a[N][i][j] = 0;
a[N][i + 2][j] = 3;
}
//下下一点是目标
if (a[N][i + 2][j] == 4)
{
a[N][i + 2][j] = 6;
a[N][i + 1][j] = 2;
a[N][i][j] = 0;
}
}
//下一点是目标
if (a[N][i + 1][j] == 4 && a[N][i][j] == 2)
{
a[N][i + 1][j] = 5;
a[N][i][j] = 0;
}
//这一点是人&&目标
if (a[N][i][j] == 5)
{
if (a[N][i + 1][j] == 0)
{
a[N][i + 1][j] = 2;
a[N][i][j] = 4;
}
if (a[N][i + 1][j] == 3 && a[N][i + 2][j] == 0)
{
a[N][i + 1][j] = 2;
a[N][i + 2][j] = 3;
a[N][i][j] = 4;
}
if (a[N][i + 1][j] == 3 && a[N][i + 2][j] == 4)
{
a[N][i + 1][j] = 2;
a[N][i + 2][j] = 6;
a[N][i][j] = 4;
}
}
}
break;
}
case 80:
{
//下一点不是墙
if (a[N][i + 1][j] != 1)
{
//下一点是空地
if (a[N][i + 1][j] == 0 && a[N][i][j] == 2)
{
a[N][i + 1][j] = 2;
a[N][i][j] = 0;
}
//下一点是目标&&箱子
if (a[N][i + 1][j] == 6 && a[N][i][j] == 2)
{
}
//下一点是箱子
if (a[N][i + 1][j] == 3 && a[N][i][j] == 2)
{
//下下一点是空地
if (a[N][i + 2][j] == 0)
{
a[N][i + 1][j] = 2;
a[N][i][j] = 0;
a[N][i + 2][j] = 3;
}
//下下一点是目标
if (a[N][i + 2][j] == 4)
{
a[N][i + 2][j] = 6;
a[N][i + 1][j] = 2;
a[N][i][j] = 0;
}
}
//下一点是目标
if (a[N][i + 1][j] == 4 && a[N][i][j] == 2)
{
a[N][i + 1][j] = 5;
a[N][i][j] = 0;
}
//这一点是人&&目标
if (a[N][i][j] == 5)
{
if (a[N][i + 1][j] == 0)
{
a[N][i + 1][j] = 2;
a[N][i][j] = 4;
}
if (a[N][i + 1][j] == 3 && a[N][i + 2][j] == 0)
{
a[N][i + 1][j] = 2;
a[N][i + 2][j] = 3;
a[N][i][j] = 4;
}
if (a[N][i + 1][j] == 3 && a[N][i + 2][j] == 4)
{
a[N][i + 1][j] = 2;
a[N][i + 2][j] = 6;
a[N][i][j] = 4;
}
}
}
break;
}
case 'A':
{
//左一点不是墙
if (a[N][i][j - 1] != 1)
{
//左一点是空地
if (a[N][i][j - 1] == 0 && a[N][i][j] == 2)
{
a[N][i][j - 1] = 2;
a[N][i][j] = 0;
}
//左一点是目标&&箱子
if (a[N][i][j - 1] == 6 && a[N][i][j] == 2)
{
}
//左一点是箱子
if (a[N][i][j - 1] == 3 && a[N][i][j] == 2)
{
//左左一点是空地
if (a[N][i][j - 2] == 0)
{
a[N][i][j - 1] = 2;
a[N][i][j] = 0;
a[N][i][j - 2] = 3;
}
//左左一点是目标
if (a[N][i][j - 2] == 4)
{
a[N][i][j - 2] = 6;
a[N][i][j - 1] = 2;
a[N][i][j] = 0;
}
}
//左一点是目标
if (a[N][i][j - 1] == 4 && a[N][i][j] == 2)
{
a[N][i][j - 1] = 5;
a[N][i][j] = 0;
}
//这一点是人&&目标
if (a[N][i][j] == 5)
{
if (a[N][i][j - 1] == 0)
{
a[N][i][j - 1] = 2;
a[N][i][j] = 4;
}
if (a[N][i][j - 1] == 3 && a[N][i][j - 2] == 0)
{
a[N][i][j - 1] = 2;
a[N][i][j - 2] = 3;
a[N][i][j] = 4;
}
if (a[N][i][j - 1] == 3 && a[N][i][j - 2] == 4)
{
a[N][i][j - 1] = 2;
a[N][i][j - 2] = 6;
a[N][i][j] = 4;
}
}
}
break;
}
case 'a':
{
//左一点不是墙
if (a[N][i][j - 1] != 1)
{
//左一点是空地
if (a[N][i][j - 1] == 0 && a[N][i][j] == 2)
{
a[N][i][j - 1] = 2;
a[N][i][j] = 0;
}
//左一点是目标&&箱子
if (a[N][i][j - 1] == 6 && a[N][i][j] == 2)
{
}
//左一点是箱子
if (a[N][i][j - 1] == 3 && a[N][i][j] == 2)
{
//左左一点是空地
if (a[N][i][j - 2] == 0)
{
a[N][i][j - 1] = 2;
a[N][i][j] = 0;
a[N][i][j - 2] = 3;
}
//左左一点是目标
if (a[N][i][j - 2] == 4)
{
a[N][i][j - 2] = 6;
a[N][i][j - 1] = 2;
a[N][i][j] = 0;
}
}
//左一点是目标
if (a[N][i][j - 1] == 4 && a[N][i][j] == 2)
{
a[N][i][j - 1] = 5;
a[N][i][j] = 0;
}
//这一点是人&&目标
if (a[N][i][j] == 5)
{
if (a[N][i][j - 1] == 0)
{
a[N][i][j - 1] = 2;
a[N][i][j] = 4;
}
if (a[N][i][j - 1] == 3 && a[N][i][j - 2] == 0)
{
a[N][i][j - 1] = 2;
a[N][i][j - 2] = 3;
a[N][i][j] = 4;
}
if (a[N][i][j - 1] == 3 && a[N][i][j - 2] == 4)
{
a[N][i][j - 1] = 2;
a[N][i][j - 2] = 6;
a[N][i][j] = 4;
}
}
}
break;
}
case 75:
{
//左一点不是墙
if (a[N][i][j - 1] != 1)
{
//左一点是空地
if (a[N][i][j - 1] == 0 && a[N][i][j] == 2)
{
a[N][i][j - 1] = 2;
a[N][i][j] = 0;
}
//左一点是目标&&箱子
if (a[N][i][j - 1] == 6 && a[N][i][j] == 2)
{
}
//左一点是箱子
if (a[N][i][j - 1] == 3 && a[N][i][j] == 2)
{
//左左一点是空地
if (a[N][i][j - 2] == 0)
{
a[N][i][j - 1] = 2;
a[N][i][j] = 0;
a[N][i][j - 2] = 3;
}
//左左一点是目标
if (a[N][i][j - 2] == 4)
{
a[N][i][j - 2] = 6;
a[N][i][j - 1] = 2;
a[N][i][j] = 0;
}
}
//左一点是目标
if (a[N][i][j - 1] == 4 && a[N][i][j] == 2)
{
a[N][i][j - 1] = 5;
a[N][i][j] = 0;
}
//这一点是人&&目标
if (a[N][i][j] == 5)
{
if (a[N][i][j - 1] == 0)
{
a[N][i][j - 1] = 2;
a[N][i][j] = 4;
}
if (a[N][i][j - 1] == 3 && a[N][i][j - 2] == 0)
{
a[N][i][j - 1] = 2;
a[N][i][j - 2] = 3;
a[N][i][j] = 4;
}
if (a[N][i][j - 1] == 3 && a[N][i][j - 2] == 4)
{
a[N][i][j - 1] = 2;
a[N][i][j - 2] = 6;
a[N][i][j] = 4;
}
}
}
break;
}
case 'D':
{
//右一点不是墙
if (a[N][i][j + 1] != 1)
{
//右一点是空地
if (a[N][i][j + 1] == 0 && a[N][i][j] == 2)
{
a[N][i][j + 1] = 2;
a[N][i][j] = 0;
}
//右一点是目标&&箱子
if (a[N][i][j + 1] == 6 && a[N][i][j] == 2)
{
}
//右一点是箱子
if (a[N][i][j + 1] == 3 && a[N][i][j] == 2)
{
//右右一点是空地
if (a[N][i][j + 2] == 0)
{
a[N][i][j + 1] = 2;
a[N][i][j] = 0;
a[N][i][j + 2] = 3;
}
//右右一点是目标
if (a[N][i][j + 2] == 4)
{
a[N][i][j + 2] = 6;
a[N][i][j + 1] = 2;
a[N][i][j] = 0;
}
}
//右一点是目标
if (a[N][i][j + 1] == 4 && a[N][i][j] == 2)
{
a[N][i][j + 1] = 5;
a[N][i][j] = 0;
}
//这一点是人&&目标
if (a[N][i][j] == 5)
{
if (a[N][i][j + 1] == 0)
{
a[N][i][j + 1] = 2;
a[N][i][j] = 4;
}
if (a[N][i][j + 1] == 3 && a[N][i][j + 2] == 0)
{
a[N][i][j + 1] = 2;
a[N][i][j + 2] = 3;
a[N][i][j] = 4;
}
if (a[N][i][j + 1] == 3 && a[N][i][j + 2] == 4)
{
a[N][i][j + 1] = 2;
a[N][i][j + 2] = 6;
a[N][i][j] = 4;
}
}
}
break;
}
case 'd':
{
//右一点不是墙
if (a[N][i][j + 1] != 1)
{
//右一点是空地
if (a[N][i][j + 1] == 0 && a[N][i][j] == 2)
{
a[N][i][j + 1] = 2;
a[N][i][j] = 0;
}
//右一点是目标&&箱子
if (a[N][i][j + 1] == 6 && a[N][i][j] == 2)
{
}
//右一点是箱子
if (a[N][i][j + 1] == 3 && a[N][i][j] == 2)
{
//右右一点是空地
if (a[N][i][j + 2] == 0)
{
a[N][i][j + 1] = 2;
a[N][i][j] = 0;
a[N][i][j + 2] = 3;
}
//右右一点是目标
if (a[N][i][j + 2] == 4)
{
a[N][i][j + 2] = 6;
a[N][i][j + 1] = 2;
a[N][i][j] = 0;
}
}
//右一点是目标
if (a[N][i][j + 1] == 4 && a[N][i][j] == 2)
{
a[N][i][j + 1] = 5;
a[N][i][j] = 0;
}
//这一点是人&&目标
if (a[N][i][j] == 5)
{
if (a[N][i][j + 1] == 0)
{
a[N][i][j + 1] = 2;
a[N][i][j] = 4;
}
if (a[N][i][j + 1] == 3 && a[N][i][j + 2] == 0)
{
a[N][i][j + 1] = 2;
a[N][i][j + 2] = 3;
a[N][i][j] = 4;
}
if (a[N][i][j + 1] == 3 && a[N][i][j + 2] == 4)
{
a[N][i][j + 1] = 2;
a[N][i][j + 2] = 6;
a[N][i][j] = 4;
}
}
}
break;
}
case 77:
{
//右一点不是墙
if (a[N][i][j + 1] != 1)
{
//右一点是空地
if (a[N][i][j + 1] == 0 && a[N][i][j] == 2)
{
a[N][i][j + 1] = 2;
a[N][i][j] = 0;
}
//右一点是目标&&箱子
if (a[N][i][j + 1] == 6 && a[N][i][j] == 2)
{
}
//右一点是箱子
if (a[N][i][j + 1] == 3 && a[N][i][j] == 2)
{
//右右一点是空地
if (a[N][i][j + 2] == 0)
{
a[N][i][j + 1] = 2;
a[N][i][j] = 0;
a[N][i][j + 2] = 3;
}
//右右一点是目标
if (a[N][i][j + 2] == 4)
{
a[N][i][j + 2] = 6;
a[N][i][j + 1] = 2;
a[N][i][j] = 0;
}
}
//右一点是目标
if (a[N][i][j + 1] == 4 && a[N][i][j] == 2)
{
a[N][i][j + 1] = 5;
a[N][i][j] = 0;
}
//这一点是人&&目标
if (a[N][i][j] == 5)
{
if (a[N][i][j + 1] == 0)
{
a[N][i][j + 1] = 2;
a[N][i][j] = 4;
}
if (a[N][i][j + 1] == 3 && a[N][i][j + 2] == 0)
{
a[N][i][j + 1] = 2;
a[N][i][j + 2] = 3;
a[N][i][j] = 4;
}
if (a[N][i][j + 1] == 3 && a[N][i][j + 2] == 4)
{
a[N][i][j + 1] = 2;
a[N][i][j + 2] = 6;
a[N][i][j] = 4;
}
}
}
break;
}
default:break;
}
}
int main()
{
//加载图片
loadimage(&image0, "0.png");
loadimage(&image1, "1.png");
loadimage(&image2, "2.png");
loadimage(&image3, "3.png");
loadimage(&image4, "4.png");
loadimage(&image5, "5.png");
loadimage(&image6, "6.png");
loadimage(&image7, "7.png");
loadimage(&image8, "8.png");
//vs多字节集就不要L,.代表的是当前文件位置,alias后面是自定义的别称
mciSendString("open 病变.mp3 alias bkmusic", NULL, 0, NULL);
//循环播放病变
mciSendString("play bkmusic repeat", NULL, 0, NULL);
//生成画布
initgraph(64 * 8, 64 * 8);
while (N<10)
{
screen();
control();
}
//游戏最终结束图片
putimage(0, 0, &image8);
delay_time(500);//延时
closegraph();//关闭画布
return 0;
}
|