坦克大战 自备注改成(非原创)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
#include<time.h>
#include<conio.h>
#include<stdbool.h>

#define UP 1        //方向键 上
#define DOWN 2  //方向键 下
#define LEFT 3    //方向键 左
#define RIGHT 4  //方向键 右

#define MAX_LEVET 8        //8位的数组23行
#define BULLET_NUM 20
#define MAX_LIFT 4
//里规格:长39*2=78 (真坐标)(假坐标宽为39)  高39
//外规格:长41*2=82 (真坐标)(假坐标宽为41)  高41
typedef struct     //这里的出现次序指的是一个AI_tank变量中的次序,游戏共有四个AI_tank变量
{                       //∵设定每个AI_tank每种特殊坦克只出现一次 ∴fast_tank & firm_tank 最多出现次数不超过1
    int fast_tank_order; //fast_tank出现的次序(在第fast_tank_order次复活出现,从第0次开始),且每个AI_tank只出现一次
    int firm_tank_order; //firm_tank出现的次序,同上
}LevInfo;                       //关卡信息(准确说是该关出现的坦克信息)

LevInfo level_info[MAX_LEVET]={{-1,-1},{3,-1},{-1,3},{2,3},{2,3},{2,3},{2,3},{2,3}}; //初始化,-1代表没有该类型坦克

typedef struct
{
    int x,y;                 //子弹坐标
    int direction;       //子弹方向变量
    bool exist;           //子弹存在与否的变量,1为存在,0为没有
    bool initial;         //子弹是否处于建立初状态,1为存在,0为没有
    bool my;             //区分敌方与我方的子弹,1为我方坦克,0为敌方
}Bullet;

Bullet bullet[BULLET_NUM];//考虑到地图不太可能存在20颗子弹,暂定为20个数组

typedef struct
{
    int x,y;                //坦克的图案的中心坐标
    int direction;     //坦克的方向
    int color;            //坦克的颜色参数,具体于自定义函数PrintTank()中说明
    int model;          //坦克图案模块,值为1 2 3 ,分别代表不同图案,0为玩家图案
    int stop;            //只有ai坦克才能用的参数值,非0代表坦克停止走动,0为可动
    int revive;          //坦克的复活次数
    int num;           //ai坦克的编号(固定值,为常量,会在初始化函数中定下)0--3
    int CD;             //发射子弹后的冷却时间(王者农药玩那么久还不知道CD)
    bool my;          //判读是否为敌方坦克的参数,1为我方,0是(不要怂,就是干)
    bool alive;       //存活为1,死亡为0
}Tank;

Tank AI_tank[MAX_LIFT];//敌方坦克,好吧有4种敌方坦克(联合国的选择真多)
Tank my_tank;               //我大中国的五对负重轮,各种改改改

//自定义函数--基本操作与游戏协助函数
void GoToxy(int x,int y);               //坐标移动函数(干货)
void HideCursor();                          //隐藏鼠标函数(干货)
void keyboard();                         //接受键盘操作输入(干货版)
void Initialize();                            //初始化数据(含有文件读写操作)
void stop();                                  //暂停游戏呗
void Getmap();                            //地图数据存放和获取的函数
void Frame();                               //打印游戏主体框架
void PrintMap();                          //打印内部详细地图(障碍物)(含对level读取)
void SideScreen();                       //副屏幕打印
void GameCheak();                     //检查游戏的输赢
void GameOver(bool home);      //失败了继续游戏就是了
void ClearMainScreen();             //主屏幕清屏函数∵system("cls")后打印框架有一定几率造成框架上移一行的错误
                                                  //∴单独编写清屏函数
void ColorChoose(int color);       //颜色选择输入的函数
void NextLevel();                         //下一关(含有全局level变量的读写)

//自定义函数--子弹部分的函数
void BuildAIBullet(Tank *tank);                   //AI坦克的子弹发射(含有对my_tank的文件读取,只读取my_tank坐标)
void BuildBullet(Tank tank);                       //子弹发射(人机共用)玩家坦克直接调用该函数,AI通过AIshoot调用
void BulletFly(Bullet bullet[BULLET_NUM]);//子弹移动与打击(人机共用)
void BulletHit(Bullet *bullet);                     //子弹碰撞(人机共用)含tank全局变量修改,只通过BulletFly调用,
                                                                 //子弹间的碰撞不在本函数,由Bulletshoot()进行检查处理
void PrintBullet(int x,int y,int T);               //打印子弹(人机共用)
void ClearBullet(int x,int y,int T);              //清除子弹(人机共用)
int BulletCheak(int x,int y);                       //判断子弹前面的情况(人机共用)

//自定义函数-- 坦克部分的函数
void BuildAITank(int *position,Tank *AI_tank);//建立AI坦克
void BuildMyTank(Tank *my_tank);                 //建立玩家坦克
void MoveAITank(Tank *AI_tank);                   //AI坦克的移动
void MoveMyTank(int turn);                           //玩家坦克移动,只能通过keyboard()函数解决,既是玩家操纵
void ClearTank(int x,int y);                             //清除坦克(人机共用)
void PrintTank(Tank tank);                             //打印坦克(人机共用)
bool TankCheak(Tank tank,int direction);       //检查坦克前方是否有障碍物(dirtection),1为阻碍,0为畅通
int AIPositionCheak(int position);                   //检查AI坦克前方情况(AIpostionCheak),1为阻碍,0为畅通

//DWORD WINAPI InputX(LPVOID lpParameter); //声明线程函数,用于检查X键输入并设置X键的输入冷却时间

//注意map数组应是纵坐标在前,横坐标在后,既map[y][x],(∵数组行长度在前,列长度在后)
//map里的值: 个位数的值为地图方块部分,百位数的值为坦克,子弹在map上没有值(子弹仅仅是一个假坐标)
//map里的值: 0为可通过陆地,1为红砖,2黄砖,5为水,100~103为敌方坦克,200为我的坦克,

//游戏全部数据---全局变量
int map[41][41];              //地图的二维数组
int key_x;                        //X键是否被“读入”的变量,也是子弹是否可以连续发射的变量
int bul_num=0;                   //bullet子弹的编号
int position;                    //位置计数,对应AI坦克生成位置,-1为左位置,0为中间,1为右,2为我的坦克位置
int speed=7;                   //游戏速度,刷新呗
int level=1;                     //游戏关卡
int score=0;                    //游戏得分
int remain_enemy;          //剩余敌人(游戏中每一关出现的敌机)

char* tank_figure[4][3][4]=//四种坦克,上下左右的变化
{
  {
    {"◢┃◣", "◢━◣", "◢┳◣", "◢┳◣"},
    {"┣●┫", "┣●┫", "━●┃", "┃●━"},
    {"◥━◤", "◥┃◤", "◥┻◤", "◥┻◤"}
  },
  {
    {"┏┃┓", "┏┳┓", "┏┳┓", "┏┳┓"},
    {"┣●┫", "┣●┫", "━●┫", "┣●━"},
    {"┗┻┛", "┗┃┛", "┗┻┛", "┗┻┛"}
  },
  {
    {"┏┃┓", "◢━◣", "┏┳◣", "◢┳┓"},
    {"┣●┫", "┣●┫", "━●┃", "┃●━"},
    {"◥━◤", "┗┃┛", "┗┻◤", "◥┻┛"}
  },
  {
    {"╔┃╗", "╔╦╗", "╔╦╗", "╔╦╗"},
    {"╠█╣", "╠█╣", "━█╣", "╠█━"},
    {"╚╩╝", "╚┃╝", "╚╩╝", "╚╩╝"}
  }
};//游戏中使用的坦克,图案不错不错,艺术细胞相当可怕

int main()//主函数,总BOSS,大哥大
{
    int i;
    unsigned int interval[12]={1,1,1,1,1,1,1,1,1,1,1,1};//间隔计数器数组,用于控制速度
    srand(time(NULL));
    //设置随机数种子(若不设置种子而调用rand会使每次运行的随机数序列一致)
    //随机数序列指:如首次调用rand得到1,第二次得2,第三次3,则此次随机数序列为1,2,3

    HideCursor();//首先隐藏掉光标
    system("mode con cols=112 lines=42");//控制游戏窗口大小
    Frame();//打印游戏框架
    Initialize();//初始化游戏数据,另外level一开始就是初始化为1的

    for(;;) //来一个循环   while(1)
    {
        if(interval[0]++%speed==0)//速度调整用,假设interval[0]为a, 语句意为 a % 2==0,a=a+1;
        {
            GameCheak();//检查游戏内敌方坦克存在否或者检查自身存在否(家被毁的不在这里面)
            BulletFly(bullet);//子弹的移动与打击
            for(i=0;i<=3;i++)
            {
                if(AI_tank[i].model==2 && interval[i+1]++%2==0) //四个坦克中的快速坦克单独使用计数器1,2,3,4
					MoveAITank( & AI_tank[i]);//AI坦克的移动
				if(AI_tank[i].model!=2 && interval[i+5]++%3==0) //四个坦克中的慢速坦克单独使用计数器5,6,7,8
					MoveAITank( & AI_tank[i]);//AI坦克的移动
            }
            for(i=0;i<=3;i++)//建立AI坦克部分
                if(AI_tank[i].alive==0&&AI_tank[i].revive<4&&interval[9]++%90==0)//一个敌方坦克每局只有4条命
            {//如果坦克不存活。计时,每次建立有间隔  1750 ms
                BuildAITank( &position, & AI_tank[i] );     //建立AI坦克(复活)
			  		break;                                      //每次循环只建立一个坦克
            }
            for(i=0;i<=3;i++)
				if(AI_tank[i].alive)
					BuildAIBullet(&AI_tank[i]);                 //AIshoot自带int自增计数CD,不使用main中的CD interval
			if(my_tank.alive && interval[10]++%2==0 )
                //如果我方已经存在于战场上,并且计时限制已经解开
         		keyboard ();//接受键盘操作输入
    		if(my_tank.alive==0 && interval[11]++%30==0 && my_tank.revive < MAX_LIFT)
                //如果我方还未存在于场上,而且计时器11++已经等于0,,还有生命值尚且没有大于4
     			BuildMyTank( &my_tank );//建立我方坦克
        }
        Sleep(5);
    }

    return 0;
}

//自定义函数--基本操作与游戏协助函数
void GoToxy(int x,int y)               //坐标移动函数(干货)
{
    COORD loc={x,y};//定下坐标点
    HANDLE houpt=GetStdHandle(STD_OUTPUT_HANDLE);//标准输出
    SetConsoleCursorPosition(houpt,loc);//将鼠标移动该坐标点标准输出
}
void HideCursor()                          //隐藏鼠标函数(干货)
{
    CONSOLE_CURSOR_INFO cursor_info={1,0};//鼠标厚度1-100,后面的0是不显示,1则是显示
    HANDLE houpt=GetStdHandle(STD_OUTPUT_HANDLE);//标准输出
    SetConsoleCursorInfo(houpt,&cursor_info);//好吧这里已经不用多说了,鼠标都看不见了
}
void keyboard()                         //接受键盘操作输入(干货版)
{
    int count=0;
    if(GetAsyncKeyState(VK_UP)&0x8000)
        MoveMyTank(UP);//方向控制 上
    else if(GetAsyncKeyState(VK_DOWN)&0x8000)
        MoveMyTank(DOWN);//方向控制 下
    else if(GetAsyncKeyState(VK_LEFT)&0x8000)
        MoveMyTank(LEFT);//方向控制 左
    else if(GetAsyncKeyState(VK_RIGHT)&0x8000)
        MoveMyTank(RIGHT);//方向控制 右
    else if (GetAsyncKeyState( 0x1B )& 0x8000)  // Esc键
		exit(0);                                //退出程序函数
	else if (GetAsyncKeyState( 0x60 )& 0x8000)
		NextLevel();//下一关
	else if (GetAsyncKeyState( 0x20 )& 0x8000)  //空格
		stop();//暂停

    else if(count++%7==0)
    {
        if (speed>1 && GetAsyncKeyState( 0x6B )& 0x8000)   // +键
		{
			speed--;
			GoToxy(102,11);           //在副屏幕打印出当前速度
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                            |FOREGROUND_BLUE|FOREGROUND_RED);
			printf("%d ",21-speed);   //副屏幕显示的速度为1~10
		}
		else if (speed<20 && GetAsyncKeyState( 0x6D )& 0x8000)  // - 键
		{
			speed++;
			GoToxy(102,11);           //在副屏幕打印出当前速度
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                           |FOREGROUND_BLUE|FOREGROUND_RED);
			printf("%d ",21-speed);   //副屏幕显示的速度为1~10
		}
    }
    if(my_tank.CD==7)
    {
        if(GetAsyncKeyState(88)&0x8000)
        {
            BuildBullet(my_tank);
            my_tank.CD=0;
        }
    }
    else
        my_tank.CD++;//子弹间隔时间
}
void Initialize()                           //初始化数据(含有文件读写操作)
{
    int i=0;

    remain_enemy=16;//每一关内敌人数量,每消灭一只就会减少一只
    my_tank.revive=0;//我的坦克复活次数为0
    position=0;//位置计数,对应AI坦克生成位置,-1为左位置,0为中间,1为右,2为我的坦克位置
    bul_num=0;//bullet子弹的编号

    Getmap();//打印地图
    BuildMyTank(&my_tank);//建立玩家坦克

    for(i=0;i<12;i++)//子弹初始化,存在与否跟玩家操作有关
    {
        bullet[i].exist=0;//子弹存在与否的变量,1为存在,0为没有
        bullet[i].initial=0;//子弹是否处于建立初状态,1为存在,0为没有
    }

    for(i=0;i<=3;i++)//AI坦克的初始化,反正咱们就是3号的坦克,这里可不是<=
    {
        AI_tank [i].revive=0;//坦克的复活次数,AI要什么复活,无敌吗????
		AI_tank [i].alive=0;  //初始化坦克全是不存活的,BuildAITank()会建立重新建立不存活的坦克
		AI_tank [i].stop=0;//只有ai坦克才能用的参数值,非0代表坦克停止走动,0为可动
		AI_tank [i].num=i;//ai坦克的编号(固定值,为常量,会在初始化函数中定下)0--3
		AI_tank [i].my=0;//判读是否为敌方坦克的参数,1为我方,0是(不要怂,就是干)
		AI_tank [i].CD=0;//存活为1,死亡为0
    }

    GoToxy(97,2);                        //在副屏幕上关卡数
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                         |FOREGROUND_RED|FOREGROUND_GREEN);
	printf("%d",level);

	GoToxy(102,5);                       //在副屏幕上打印分数
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                         |FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_GREEN);
	printf("%d   ",score);

	GoToxy(102,7);                       //在副屏幕打印我的剩余生命值
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                         |FOREGROUND_GREEN);
	printf("%d", MAX_LIFT-my_tank.revive);

	GoToxy(102,9);                       //在副屏幕上打印剩余坦克数
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                         |FOREGROUND_RED);
	printf("%d ",remain_enemy);

	GoToxy(100,13);                      //在副屏幕上打印状态
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                         |FOREGROUND_BLUE|FOREGROUND_GREEN);
	printf("正在游戏");
}
void stop()                                  //暂停游戏呗
{
    int color=1,timing=1;
    while(1)
    {
        if(timing++%30==0)
        {
            ColorChoose(color);//颜色选择
            GoToxy(100,30);//副屏幕打印(提前对准坐标吧!!大兄弟)
            printf("游戏暂停!");
            GoToxy(88,17);
            printf("按回车键继续游戏");
            GoToxy(88,18);
            printf("按Esc键退出游戏");
            if(++color%8==0)
                color=1;//这里的if可以控制颜色变化,因为这个整个都是while
        }
        if(GetAsyncKeyState(0xD)&0x8000)//回车键
        {
            GoToxy(100,13);
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                                    |FOREGROUND_GREEN|FOREGROUND_BLUE);
			printf("正在进行");   //覆盖掉原来的提示
			GoToxy(88,17);
			printf("                     ");
			GoToxy(88,18);
			printf("                     ");
			break;//退出暂停后要退出循环,之后要把暂停输出的字去除(覆盖)
        }
        else if(GetAsyncKeyState( 0x1B )& 0x8000) //Esc键退出
			exit(0);
		Sleep(20);//刷新的时间1000为1秒
    }
}
void Getmap()                            //地图数据存放和获取的函数
{
    //map里的值: 0为可通过陆地,1为红砖,2待定,5为水,100为敌方坦克,200为我的坦克,
	int Map[8][41][41]=
	{     //map里的值: 个位数的值为地图方块部分,百位数的值为坦克
		{//第1关 map[0]
			{4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4},
			{4,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,6,6,6,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,6,6,6,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,6,6,6,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,4},
			{4,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,4},
			{4,6,6,6,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,6,6,6,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4}
		},
		{//第2关 map[1]
			{4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,2,2,2,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,2,2,2,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,2,2,2,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,0,0,0,0,0,0,6,6,6,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,0,0,0,0,0,0,6,6,6,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,0,0,0,0,0,0,6,6,6,0,0,0,4},
			{4,1,1,1,2,2,2,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,6,6,6,0,0,0,4},
			{4,1,1,1,2,2,2,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,6,6,6,0,0,0,4},
			{4,1,1,1,2,2,2,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,6,6,6,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,2,2,2,1,1,1,6,6,6,6,6,6,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,2,2,2,1,1,1,6,6,6,6,6,6,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,2,2,2,1,1,1,6,6,6,6,6,6,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,0,0,0,2,2,2,6,6,6,1,1,1,2,2,2,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,0,0,0,2,2,2,6,6,6,1,1,1,2,2,2,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,0,0,0,2,2,2,6,6,6,1,1,1,2,2,2,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,0,0,0,1,1,1,6,6,6,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,0,0,0,1,1,1,6,6,6,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,0,0,0,1,1,1,6,6,6,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,1,1,1,6,6,6,1,1,1,0,0,0,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,1,1,1,6,6,6,1,1,1,0,0,0,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,1,1,1,6,6,6,1,1,1,0,0,0,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,0,0,0,2,2,2,1,1,1,6,6,6,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,0,0,0,2,2,2,1,1,1,6,6,6,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,0,0,0,2,2,2,1,1,1,6,6,6,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,6,6,6,6,6,6,6,6,6,2,2,2,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,4},
			{4,6,6,6,6,6,6,6,6,6,2,2,2,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,4},
			{4,6,6,6,6,6,6,6,6,6,2,2,2,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,4},
			{4,6,6,6,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,6,6,6,6,6,6,0,0,0,0,0,0,4},
			{4,6,6,6,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,6,6,6,6,6,6,0,0,0,0,0,0,4},
			{4,6,6,6,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,6,6,6,6,6,6,0,0,0,0,0,0,4},
			{4,6,6,6,0,0,0,0,0,0,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,1,1,1,1,1,1,0,0,0,4},
			{4,6,6,6,0,0,0,0,0,0,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,1,1,1,1,1,1,0,0,0,4},
			{4,6,6,6,0,0,0,0,0,0,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,1,1,1,1,1,1,0,0,0,4},
			{4,2,2,2,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,6,6,6,6,6,6,4},
			{4,2,2,2,6,6,6,6,6,6,6,6,6,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,6,6,6,6,6,6,4},
			{4,2,2,2,6,6,6,6,6,6,6,6,6,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,6,6,6,6,6,6,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6,6,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6,6,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6,6,4},
			{4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4}
		},
		{//第3关 map[2]
			{4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4},
			{4,0,0,0,0,0,0,0,0,0,5,5,5,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,5,5,5,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,5,5,5,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,4},
			{4,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,1,0,0,0,6,6,6,0,0,0,0,0,0,4},
			{4,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,1,0,0,0,6,6,6,0,0,0,0,0,0,4},
			{4,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,1,0,0,0,6,6,6,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,6,6,6,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,5,5,5,0,0,0,1,1,1,6,6,6,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,5,5,5,0,0,0,1,1,1,6,6,6,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,4},
			{4,6,6,6,0,0,0,1,1,1,5,5,5,0,0,0,6,6,6,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,5,5,5,0,0,0,6,6,6,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,5,5,5,0,0,0,6,6,6,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,5,5,5,0,0,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,4},
			{4,0,0,0,0,0,0,1,1,1,5,5,5,0,0,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,4},
			{4,0,0,0,0,0,0,1,1,1,5,5,5,0,0,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,4},
			{4,1,1,1,0,0,0,1,1,1,5,5,5,5,5,5,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,1,1,1,4},
			{4,1,1,1,0,0,0,1,1,1,5,5,5,5,5,5,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,1,1,1,4},
			{4,1,1,1,0,0,0,1,1,1,5,5,5,5,5,5,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,1,1,1,4},
			{4,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,0,0,5,5,5,0,0,0,6,6,6,6,6,6,4},
			{4,0,0,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,5,5,5,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,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,5,5,5,0,0,0,0,0,0,0,0,0,4},
			{4,1,1,1,1,1,1,0,1,1,1,1,1,0,0,0,6,6,6,0,0,0,1,1,1,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,4},
			{4,1,1,1,1,1,1,0,1,1,1,1,1,0,0,0,6,6,6,0,0,0,1,1,1,0,0,0,5,5,5,0,0,0,1,1,1,1,1,1,4},
			{4,1,1,1,1,1,1,0,1,1,1,1,1,0,0,0,6,6,6,0,0,0,1,1,1,0,0,0,5,5,5,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,5,5,5,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,5,5,5,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,6,6,6,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,6,6,6,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,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,9,9,9,1,1,0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,9,9,9,1,1,0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,9,9,9,1,1,0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,4},
			{4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4}
		},
		{//第4关 map[3]
			{4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4},
			{4,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,6,6,6,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,4},
			{4,6,6,6,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,4},
			{4,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,1,1,1,1,1,0,0,0,0,0,0,0,0,0,4},
			{4,5,5,5,0,0,0,0,1,1,1,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,4},
			{4,5,5,5,0,0,0,0,1,1,1,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,4},
			{4,5,5,5,0,0,0,0,1,1,1,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,5,5,5,4},
			{4,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,5,5,5,4},
			{4,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,5,5,5,4},
			{4,0,0,0,0,0,0,1,1,1,1,1,0,0,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,4},
			{4,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,4},
			{4,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,4},
			{4,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,4},
			{4,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,4},
			{4,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,4},
			{4,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,4},
			{4,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,4},
			{4,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,4},
			{4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4}
		},
		{//第5关 map[4]
			{4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4},
			{4,0,0,0,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,5,5,5,5,5,5,0,0,0,5,5,5,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,5,5,5,5,5,5,5,5,5,4},
			{4,5,5,5,5,5,5,0,0,0,5,5,5,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,5,5,5,5,5,5,5,5,5,4},
			{4,5,5,5,5,5,5,0,0,0,5,5,5,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,5,5,5,5,5,5,5,5,5,4},
			{4,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,5,5,5,0,0,0,5,5,5,0,0,0,5,5,5,4},
			{4,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,5,5,5,0,0,0,5,5,5,0,0,0,5,5,5,4},
			{4,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,5,5,5,0,0,0,5,5,5,0,0,0,5,5,5,4},
			{4,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,6,6,6,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,6,6,6,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,6,6,6,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,5,5,5,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,5,5,5,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,5,5,5,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,4},
			{4,5,5,5,5,5,5,0,0,0,5,5,5,0,0,0,5,5,5,5,5,5,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,4},
			{4,5,5,5,5,5,5,0,0,0,5,5,5,0,0,0,5,5,5,5,5,5,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,4},
			{4,5,5,5,5,5,5,0,0,0,5,5,5,0,0,0,5,5,5,5,5,5,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,5,5,5,4},
			{4,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,5,5,5,4},
			{4,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,5,5,5,4},
			{4,0,0,0,5,5,5,5,5,5,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,1,1,1,0,0,0,5,5,5,4},
			{4,0,0,0,5,5,5,5,5,5,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,1,1,1,0,0,0,5,5,5,4},
			{4,0,0,0,5,5,5,5,5,5,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,1,1,1,0,0,0,5,5,5,4},
			{4,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,5,5,5,0,0,0,5,5,5,4},
			{4,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,5,5,5,0,0,0,5,5,5,4},
			{4,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,5,5,5,0,0,0,5,5,5,4},
			{4,5,5,5,5,5,5,0,0,0,5,5,5,5,5,5,0,0,0,5,5,5,1,1,1,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,4},
			{4,5,5,5,5,5,5,0,0,0,5,5,5,5,5,5,0,0,0,5,5,5,1,1,1,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,4},
			{4,5,5,5,5,5,5,0,0,0,5,5,5,5,5,5,0,0,0,5,5,5,1,1,1,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,4},
			{4,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,5,5,5,0,0,0,0,0,0,5,5,5,4},
			{4,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,5,5,5,0,0,0,0,0,0,5,5,5,4},
			{4,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,5,5,5,0,0,0,0,0,0,5,5,5,4},
			{4,0,0,0,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,0,0,0,5,5,5,5,5,5,4},
			{4,0,0,0,5,5,5,5,5,5,5,5,5,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,5,5,5,0,0,0,5,5,5,5,5,5,4},
			{4,0,0,0,5,5,5,5,5,5,5,5,5,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,5,5,5,0,0,0,5,5,5,5,5,5,4},
			{4,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,0,1,1,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,0,1,1,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0,0,1,1,9,9,9,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4}
		},
		{//第6关 map[5]
			{4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4},
			{4,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,1,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,1,1,1,1,0,0,0,4},
			{4,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,1,0,0,0,0,0,0,2,2,2,2,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,0,4},
			{4,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,2,2,2,2,2,2,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,4},
			{4,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,2,2,2,2,2,2,2,2,0,0,0,1,1,0,0,0,0,0,0,0,1,1,4},
			{4,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,2,2,2,2,2,2,2,2,0,0,1,1,1,0,0,0,0,0,0,0,1,1,4},
			{4,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,0,0,0,0,0,0,0,0,1,1,4},
			{4,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,0,0,0,0,0,0,0,0,1,1,4},
			{4,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,0,0,0,0,0,0,0,0,1,1,4},
			{4,1,1,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,2,6,6,6,6,6,6,2,2,2,2,1,1,1,0,0,0,0,0,1,1,1,4},
			{4,1,1,0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,6,6,6,6,6,6,2,2,2,2,1,1,1,1,0,0,0,0,1,1,1,4},
			{4,1,1,0,0,0,0,0,0,0,1,1,1,1,1,2,2,2,2,6,6,6,6,6,6,2,2,2,2,1,1,1,1,0,0,0,1,1,1,1,4},
			{4,0,1,1,0,0,0,0,0,0,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,0,0,1,1,1,1,4},
			{4,0,1,1,1,0,0,0,0,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,1,1,1,1,1,4},
			{4,0,0,1,1,1,1,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,1,1,1,1,1,4},
			{4,0,0,0,1,1,1,1,1,1,1,1,1,6,6,6,6,6,6,1,1,1,6,6,6,6,6,6,1,1,1,1,1,1,1,1,1,1,1,0,4},
			{4,0,0,0,1,1,1,1,1,1,1,1,1,6,6,6,6,6,6,1,1,1,6,6,6,6,6,6,1,1,1,1,1,1,1,1,1,1,1,0,4},
			{4,0,0,0,0,1,1,1,1,1,1,1,1,6,6,6,6,6,6,1,1,1,6,6,6,6,6,6,1,1,1,1,1,1,1,1,1,1,0,0,4},
			{4,0,0,0,0,0,1,1,1,1,1,1,1,6,6,6,0,0,0,1,1,1,0,0,0,6,6,6,1,1,1,1,1,1,1,1,1,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,1,1,1,6,6,6,0,0,0,1,1,1,0,0,0,6,6,6,1,1,1,1,1,1,1,1,1,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,1,1,1,6,6,6,0,0,0,1,1,1,0,0,0,6,6,6,1,1,1,1,1,1,1,1,1,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,4},
			{4,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,6,6,6,6,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,4},
			{4,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,6,6,6,6,6,6,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,4},
			{4,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,4},
			{4,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,0,0,0,0,0,0,0,0,0,0,0,1,1,1,4},
			{4,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,0,0,0,0,0,0,0,0,0,0,0,1,1,1,4},
			{4,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,0,0,0,0,0,0,0,0,0,0,0,1,1,1,4},
			{4,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,9,9,9,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,9,9,9,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,9,9,9,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,4},
			{4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4}
		},
		{//第7关 map[6]
			{4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4},
			{4,0,0,0,0,0,0,0,0,0,6,6,6,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,6,6,6,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,6,6,6,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,6,6,6,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,6,6,6,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,6,6,6,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,6,6,6,0,0,0,0,0,0,6,6,6,0,0,0,6,6,6,6,6,6,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,6,6,6,0,0,0,0,0,0,6,6,6,0,0,0,6,6,6,6,6,6,4},
			{4,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,6,6,6,0,0,0,0,0,0,6,6,6,0,0,0,6,6,6,6,6,6,4},
			{4,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,6,6,6,1,1,1,0,0,0,0,0,0,0,0,0,6,6,6,4},
			{4,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,6,6,6,1,1,1,0,0,0,0,0,0,0,0,0,6,6,6,4},
			{4,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,6,6,6,1,1,1,0,0,0,0,0,0,0,0,0,6,6,6,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,6,6,6,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,6,6,6,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,6,6,6,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,6,6,6,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,4},
			{4,0,0,0,0,0,0,6,6,6,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,4},
			{4,0,0,0,0,0,0,6,6,6,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,4},
			{4,6,6,6,0,0,0,6,6,6,0,0,0,0,0,0,1,1,1,0,0,0,6,6,6,0,0,0,0,0,0,6,6,6,1,1,1,0,0,0,4},
			{4,6,6,6,0,0,0,6,6,6,0,0,0,0,0,0,1,1,1,0,0,0,6,6,6,0,0,0,0,0,0,6,6,6,1,1,1,0,0,0,4},
			{4,6,6,6,0,0,0,6,6,6,0,0,0,0,0,0,1,1,1,0,0,0,6,6,6,0,0,0,0,0,0,6,6,6,1,1,1,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,6,6,6,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,6,6,6,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,6,6,6,0,0,0,0,0,0,4},
			{4,0,0,0,6,6,6,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,4},
			{4,0,0,0,6,6,6,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,4},
			{4,0,0,0,6,6,6,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,4},
			{4,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,4},
			{4,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,4},
			{4,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,4},
			{4,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,1,1,6,6,6,0,0,0,6,6,6,0,0,0,0,0,0,1,1,1,4},
			{4,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,1,1,6,6,6,0,0,0,6,6,6,0,0,0,0,0,0,1,1,1,4},
			{4,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,1,1,6,6,6,0,0,0,6,6,6,0,0,0,0,0,0,1,1,1,4},
			{4,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,6,6,6,0,0,0,0,0,0,4},
			{4,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,1,1,1,6,6,6,0,0,0,0,0,0,4},
			{4,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,1,1,1,6,6,6,0,0,0,0,0,0,4},
			{4,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,9,9,9,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,4},
			{4,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,9,9,9,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,4},
			{4,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,9,9,9,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,4},
			{4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4}
		},
		{//第8关 map[7]
			{4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4},
			{4,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,0,0,0,0,0,1,1,1,0,0,0,0,0,0,4},
			{4,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,0,0,0,0,0,1,1,1,0,0,0,0,0,0,4},
			{4,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,0,0,0,0,0,1,1,1,0,0,0,0,0,0,4},
			{4,0,0,0,1,1,1,5,5,5,5,5,5,0,0,0,6,6,6,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,1,1,1,5,5,5,5,5,5,0,0,0,6,6,6,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,1,1,1,5,5,5,5,5,5,0,0,0,6,6,6,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,5,5,5,5,5,5,1,1,1,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,6,6,6,0,0,0,4},
			{4,0,0,0,0,0,0,5,5,5,5,5,5,1,1,1,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,6,6,6,0,0,0,4},
			{4,0,0,0,0,0,0,5,5,5,5,5,5,1,1,1,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,6,6,6,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,1,1,1,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,1,1,1,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,1,1,1,0,0,0,0,0,0,4},
			{4,0,0,0,6,6,6,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,6,6,6,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,6,6,6,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,0,0,0,5,5,5,5,5,5,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,0,0,0,5,5,5,5,5,5,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,0,0,0,5,5,5,5,5,5,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,4},
			{4,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,0,0,6,6,6,0,0,0,0,0,0,6,6,6,4},
			{4,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,0,0,6,6,6,0,0,0,0,0,0,6,6,6,4},
			{4,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,0,0,6,6,6,0,0,0,0,0,0,6,6,6,4},
			{4,0,0,0,1,1,1,5,5,5,5,5,5,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,4},
			{4,0,0,0,1,1,1,5,5,5,5,5,5,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,4},
			{4,0,0,0,1,1,1,5,5,5,5,5,5,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,4},
			{4,6,6,6,0,0,0,5,5,5,5,5,5,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,4},
			{4,6,6,6,0,0,0,5,5,5,5,5,5,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,4},
			{4,6,6,6,0,0,0,5,5,5,5,5,5,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,4},
			{4,0,0,0,0,0,0,0,0,0,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,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,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
			{4,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,9,9,9,1,1,0,0,0,0,0,0,0,1,1,1,6,6,6,0,0,0,4},
			{4,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,9,9,9,1,1,0,0,0,0,0,0,0,1,1,1,6,6,6,0,0,0,4},
			{4,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,9,9,9,1,1,0,0,0,0,0,0,0,1,1,1,6,6,6,0,0,0,4},
			{4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4}
		},
	};
		for(int i=0;i<41;i++)
			for(int j=0;j<41;j++)
					map[i][j]=Map[level-1][i][j];
	PrintMap();         //打印地图
	//地图是地图,坦克大军并未有在里面
}
void Frame()                               //打印游戏主体框架
{
    int i;
    //SetConsoleTextAttribute为设置文本颜色和文本背景颜色函数
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_INTENSITY);
    printf("  ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁  ");//高亮红色
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE|FOREGROUND_INTENSITY);
    printf("  ▂▂▂▂▂▂▂▂▂▂▂▂▂ \n");//高亮蓝色
    for(i=0;i<14;i++)
    {
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_INTENSITY
                                |FOREGROUND_RED|FOREGROUND_INTENSITY);
	    printf("▕                                                                              ▏");//高亮黄色
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY|FOREGROUND_BLUE);
		printf(" |                          |\n");//高亮蓝色
    }
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_INTENSITY
                            |FOREGROUND_RED|FOREGROUND_INTENSITY);
	printf("▕                                                                              ▏");//高亮黄色
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY|FOREGROUND_BLUE);
	printf(" |═════════════|\n");//高亮蓝色
	for(i=0;i<24;i++)
	{
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN
                          |FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_INTENSITY);
	    printf("▕                                                                              ▏");//高亮黄色
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY|FOREGROUND_BLUE);
		printf(" |                          |\n");//高亮蓝色
	}
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN
                         |FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_INTENSITY);
	printf("  ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔  ");//高亮黄色
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY| FOREGROUND_BLUE);
	printf(" ﹊﹊﹊﹊﹊﹊﹊﹊﹊﹊﹊﹊﹊﹊\n");//高亮蓝色
	SideScreen();  //打印副屏幕
}
void PrintMap()                          //打印内部详细地图(障碍物)(含对level读取)
{
    int i,j;
    for(j=0;j<41;j++)
		for(i=0;i<41;i++)
			if(map[i][j]==6)
			{
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                            |FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE|BACKGROUND_GREEN
                            |BACKGROUND_RED|BACKGROUND_BLUE);
				GoToxy(2*j,i);
				printf("■");
			}
			else if(map[i][j]==2)
			{
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                            |FOREGROUND_GREEN|FOREGROUND_RED|BACKGROUND_GREEN|BACKGROUND_RED);
				GoToxy(2*j,i);
				printf("▓");
			}
			else if(map[i][j]==1)
			{
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                            |FOREGROUND_RED|BACKGROUND_GREEN|BACKGROUND_RED);
				GoToxy(2*j,i);
				printf("▓");
			}
			else if(map[i][j]==5)
			{
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                            |BACKGROUND_BLUE|FOREGROUND_BLUE|FOREGROUND_GREEN);
				GoToxy(2*j,i);
				printf("~");
			}
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE
                         |FOREGROUND_RED|FOREGROUND_GREEN);
	GoToxy(38,37);	 printf("◣★◢");//这是你的家族徽章
	GoToxy(38,38);	 printf("███");    //∵无论地图怎么变,家所在位置不变,且家的字符多种,不方便用上述方式打印
	GoToxy(38,39);	 printf("◢█◣");    //∴直接打印(且家的map值与符号无关)
	/*
	此打印图像方式非常适用于正方形体,回平面进行扩大,增加观赏性。
	图像打印位置是经过SetConsoleCurcorPosition()函数根据数据打印于屏幕相应位置上,而不是根据
	数据(数组)直接打印。
	*/
}
void SideScreen()                       //副屏幕打印
{//行(84起,110末,若双字符宽则在108打印最后一个字)列(11上屏末,13下屏初,39下屏末。为美观最好打在38)
    GoToxy(93,2);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                         |FOREGROUND_GREEN|FOREGROUND_RED);
	printf("第     关");
	GoToxy(92,5);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                         |FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_BLUE);
	printf("分  数:");
	GoToxy(92,7);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
	printf("生  命:");
	GoToxy(86,9);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
	printf("剩余敌方坦克:");
	GoToxy(86,11);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                         |FOREGROUND_RED|FOREGROUND_BLUE);
	printf("当前游戏速度:  %d",21-speed);
	GoToxy(86,13);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                         |FOREGROUND_GREEN|FOREGROUND_BLUE);
	printf("当前游戏状态:");
	GoToxy(94,19);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                         |FOREGROUND_GREEN|FOREGROUND_RED);
	GoToxy(94,24);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                         |FOREGROUND_GREEN|FOREGROUND_RED);
	printf("帮  助");
	GoToxy(86,27);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
	printf("方向键  ←↑→↓  移动");
	GoToxy(93,29);
	printf("x 键 射击");
	GoToxy(89,31);
	printf("+ - 调整游戏速度");
	GoToxy(90,33);
	printf("游戏速度范围1~20");
	GoToxy(90,35);
	printf("回车键 暂停游戏");
	GoToxy(90,37);
	printf("Esc键  退出游戏");

/*	printf("帮  助");     //这是第二种详细说明的样式
	GoToxy(86,21);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
	printf("方向键  ←↑→↓  移动");
	GoToxy(93,23);
	printf("x 键 射击");
	GoToxy(89,25);
	printf("+ - 调整游戏速度");
	GoToxy(90,27);
	printf("游戏速度范围1~20");
	GoToxy(90,29);
	printf("回车键 暂停游戏");
	GoToxy(90,31);
	printf("Esc键  退出游戏");
	GoToxy(86,33);
	printf("敌方坦克全部消灭则过关");
	GoToxy(87,34);
	printf("己方坦克生命值为0 或");
	GoToxy(86,35);
	printf("正下方的老家被毁则失败");
	GoToxy(86,36);
	printf("己坦克与敌坦克子弹碰撞");
	GoToxy(87,37);
	printf("则抵消,敌坦克间子弹碰");
	GoToxy(86,38);
	printf("撞不抵消且可穿过敌坦克");*/
}
void GameCheak()                     //检查游戏的输赢
{
    if(remain_enemy<=0&& !AI_tank[0].alive&& !AI_tank[1].alive&& !AI_tank[2].alive&& !AI_tank[3].alive)
    {//一关内AI坦克剩余数量是0和4种坦克都不存在(alive==0)
        NextLevel();//进入下一关
    }
    if(my_tank.revive>=MAX_LIFT)//如果我的坦克4次复活机会都没了
    {
        GameOver(0);//游戏都结束了,这里是一种状况,还有一种是老家没了
    }
}
void GameOver(bool home)      //失败了继续游戏就是了
{
    int timing=0,color=1;

    while(1)
    {
        if(timing++%30==0)//游戏结束原因为生命值为0
        {
            ColorChoose(color);//颜色选择函数
            if(home)
            {
                GoToxy(37,19);//特定位置,根据实际要求可变更
                printf("YOU BUYBUY");
            }
            GoToxy(37,20);         //主屏幕中心打印
			printf("游戏结束!");
			GoToxy(100,13);        //副屏幕打印
			printf("游戏结束");
			GoToxy(88,17);
			printf("请按回车键重新开始!");
			GoToxy(88,18);
			printf("或按 Esc键退出游戏!");
			if(++color==8)//颜色变换
				color=1;
        }
        if(GetAsyncKeyState(0xD)&0x8000)//回车键
        {
            //system("cls");       //清屏,这里清屏后再次打印框架有一定几率造成框架上移一行的bug,因此选用自建清屏函数
           //Frame ();            //重新打印游戏框架
			score-=500;          //分数-500
			ClearMainScreen();   //主屏清屏函数,无需再次打印框架
			Initialize();        //从本关重新开始
			break;
        }
            else if(GetAsyncKeyState( 0x1B )& 0x8000)  //Esc键退出
			exit(0);//拜拜
		Sleep(20);//需要时间给你看看怎么变
    }
}
void ClearMainScreen()             //主屏幕清屏函数∵system("cls")后打印框架有一定几率造成框架上移一行的错误
{                                                //∴单独编写清屏函数
    for(int i=1;i<40;i++)
	{
		GoToxy(2,i);
		printf("                                                                              ");
	}
}
void ColorChoose(int color)       //颜色选择输入的函数
{
    switch(color)
	{
	   	case 1:               //天蓝色(我的坦克颜色)
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                           |FOREGROUND_GREEN|FOREGROUND_BLUE);
			break;
		case 2:               //绿色
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                           |FOREGROUND_GREEN);
			break;
		case 3:               //黄色
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                           |FOREGROUND_RED|FOREGROUND_GREEN);
			break;
		case 4:               //红色
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                           |FOREGROUND_RED);
			break;
		case 5:               //紫色
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                           |FOREGROUND_RED|FOREGROUND_BLUE);
			break;
		case 6:               //白色
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                           |FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_GREEN);
			break;
		case 7:               //深蓝色(∵颜色深难与黑色背景辨识度不高 ∴坦克颜色不选用此颜色),只用在字体颜色闪烁中
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                           |FOREGROUND_BLUE);
			break;
	}
}
void NextLevel()                         //下一关(含有全局level变量的读写)
{
    int timing=0,color=1;
    level++;//使用到这个的时候肯定下一关
    if(level<=MAX_LEVET)//最多到8关
    while(1)
    {
        if(timing++%10==0)
        {
            ColorChoose(color);   //颜色选择
				GoToxy(37,20);        //主屏幕中心打印
				printf("恭喜过关!");
				GoToxy(100,13);       //副屏幕打印
				printf("等待下关");
				GoToxy(87,17);
				printf("请按回车键进入下一关!");
				GoToxy(88,18);
				printf("或按 Esc键退出游戏!");
				if(++color==8)
					color=1;
        }
        if (GetAsyncKeyState( 0xD )& 0x8000)  //回车键
			{
				GoToxy(88,17);        //抹除副屏幕中的提示
				printf("                     ");
				GoToxy(88,18);
				printf("                     ");
				ClearMainScreen();   //主屏清屏函数,无需再次打印框架
				Initialize();        //初始化从下一关开始,level已++
				break;
			}
			else if(GetAsyncKeyState( 0x1B )& 0x8000)  //Esc键退出
				exit(0);
			Sleep(20);
    }
    else   //level>8 通关
		while(1)
		{
			if(timing++%5==0)
			{
				ColorChoose(color);
				GoToxy(33,20);        //主屏幕中心打印
				printf("恭喜通过全部关卡!");
				GoToxy(100,13);       //副屏幕打印
				printf("已通全关");
				GoToxy(88,17);
				printf("恭喜通过全部关卡!");
				GoToxy(88,19);
				printf("按 Esc键退出游戏!");
				if(++color==8)
					color=1;
			}
			if(GetAsyncKeyState( 0x1B )& 0x8000)  //Esc键退出
				exit(0);
			Sleep(10);
		}
}

//自定义函数--子弹部分的函数
void BuildAIBullet(Tank *tank)                   //AI坦克的子弹发射(含有对my_tank的文件读取,只读取my_tank坐标)
{
    if(tank->CD==15)//我们需要发射子弹
    {
        if(!(rand()%11))//有十分之一的几率
        {
            BuildBullet(*tank);
            tank->CD=0;
        }
    }
    else
        tank->CD++;//初始化中被设置为0
        //上面这一部分是自由开火时间,但是有一部分还是可能超出后还没开一次火。你以为自己气运逆天

    if(tank->CD>=14)//一枪不发是不可能的,我来一个强制发射
    {
        if(tank->y==38)//老家底部,反正就是直捣黄龙
        {
            if(tank->x<20)//老家左边(坐标画出来兄弟)
            {
                if(tank->direction==RIGHT)//枪口刚刚好对准老家
                {
                    BuildBullet(*tank);//对准老家,开火
                    tank->CD=0;
                }
            }
            else
            {
                if(tank->direction==LEFT)//枪口刚刚好对准老家
                {
                    BuildBullet(*tank);//对准老家,开火
                    tank->CD=0;
                }
            }
        }
        else if(tank->x==my_tank.x+1||tank->x==my_tank.x||tank->x==my_tank.x-1)
        {//AI坦克炮口对到MY坦克的身上,结局妙不可言
            if((tank->direction==DOWN&&my_tank.y>tank->y)||(tank->direction==UP&&my_tank.y<tank->y))
            {                  //如果AI坦克炮口朝下而且刚刚好MY坦克就在坦克炮口之下
                               //or AI坦克炮口朝上而且刚刚好MY坦克就在坦克炮口之上
                int big=my_tank.y,smal=tank->y,i;
                if(my_tank.y < tank->y)//如果MY坦克处于AI坦克上面
                {
                    big=tank->y;//大
                    smal=my_tank.y;//小
                }//调换一下
                for(i=smal+2;i<big-2;i++)//判断AI炮口的直线上两坦克间有无障碍
                {
                    if(map[i][tank->x]!=0||map[i][tank->x]!=5)//如果有障碍
                    break;
                }
                if(i==big-1)//若i走到big-1说明无障碍
                {
                    BuildBullet(*tank);     //则发射子弹
					tank->CD=0;
                }
            }
        }
        else if(tank->y==my_tank.y+1 || tank->y==my_tank.y || tank->y==my_tank.y-1) //AI坦克在横向上"炮口"对准我的坦克
		{
			if((tank->direction==RIGHT && my_tank.x > tank->x )|| (tank->direction==LEFT && my_tank.x < tank->x))
			{                  //若是AI朝右并且我的坦克在AI坦克右方(数值大的在下面)或者AI朝左我的坦克在AI左方
				int big=my_tank.y , smal=tank->y , i;
				if(my_tank.x < tank->x)
				{
					big=tank->x;
					smal=my_tank.x;
				}
				for(i=smal+2;i<=big-2;i++)  //判断AI炮口的直线上两坦克间有无障碍
					if(map[tank->y][i]!=0 || map[tank->y][i]!=5)      //若有障碍
						break;
				if(i==big-1)   //若i走到big-1说明无障碍
				{
					BuildBullet(*tank);     //则发射子弹
					tank->CD=0;
				}
			}
		}
    }
    /*
    首先确定了AI坦克的自由反射子弹的能力和到了一定时间后会发射子弹的几率。
    之后再确定了AI坦克跑到老家底部后面对老家一定开火的底气。
    最后如果在路上碰到MY坦克,中间没有障碍物的话,AI也不会客气的代码
    */
}
void BuildBullet(Tank tank)                       //子弹发射(人机共用)玩家坦克直接调用该函数,AI通过AIshoot调用
{                   //∵实现方式为顺序循环建立子弹,每次调用改变的bullet数组元素都不同
                   //∴为了方便,不将bullet放入参数,bullet作为全局变量使用
    switch(tank.direction)//确定下子弹方向
    {
        case UP    :
				bullet [bul_num].x = tank.x;
				bullet [bul_num].y = tank.y-2;
				bullet [bul_num].direction=1;
				break;
		case DOWN  :
				bullet [bul_num].x = tank.x;
				bullet [bul_num].y = tank.y+2;
				bullet [bul_num].direction=2;
				break;
		case LEFT  :
				bullet [bul_num].x = tank.x-2;
				bullet [bul_num].y = tank.y;
				bullet [bul_num].direction=3;
	    		break;
		case RIGHT :
				bullet [bul_num].x = tank.x+2;
				bullet [bul_num].y = tank.y;
				bullet [bul_num].direction=4;
				break;
    }//这里的图像建立可都是2的
    bullet [bul_num].exist = 1;    //子弹被建立,此值为1则此子弹存在
	bullet [bul_num].initial = 1;  //子弹处于初建立状态
	bullet [bul_num].my=tank.my;   //如果是我的坦克发射的子弹bullet.my=1,否则为0
	bul_num++;
	if(bul_num==BULLET_NUM)        //如果子弹编号增长到20号,那么重头开始编号
		bul_num=0;                 //考虑到地图上不可能同时存在20颗子弹,所以数组元素设置20个
}
void BulletFly(Bullet bullet[BULLET_NUM])//子弹移动与打击(人机共用)
{
    int i,j;
    for(i=0;i<BULLET_NUM;i++)//存在地图上的子弹数量
    {
        if(bullet[i].exist)//如果子弹存在的话
        {
            if(bullet[i].initial==0)//如果子弹不是初建立
                {
                    if(map[bullet[i].y][bullet[i].x]==0||map[bullet[i].y][bullet[i].x]==5)//子弹移动未遇到障碍物
                    ClearBullet(bullet[i].x,bullet[i].y,BulletCheak(bullet[i].x,bullet[i].y));//抹除子弹图像
                    switch(bullet[i].direction)
                    {
                        case UP         :(bullet [i].y)--;break;
        			    case DOWN  :(bullet [i].y)++; break;
        			    case LEFT      :(bullet [i].x)--;break;
        			    case RIGHT   :(bullet [i].x)++;break;
                    }
                }
                int collide=BulletCheak(bullet[i].x,bullet[i].y);判断子弹当前位置情况,判断子弹是否碰撞,是否位于水面上
                if( collide )                                      //如果检测到当前子弹坐标无障碍(无碰撞)(包括在地面上与在水面上)
				PrintBullet( bullet[i].x,bullet[i].y,collide);       //则打印子弹,若有碰撞则不打印
			else
				BulletHit( & bullet [i] );     //若有碰撞则执行子弹碰撞函数

            if(bullet [i].initial)             //若子弹初建立,则把初建立标记去除
				bullet [i].initial = 0;
			for(j=0; j< BULLET_NUM ; j++)  //子弹间的碰撞判断,若是我方子弹和敌方子弹碰撞则都删除
                                                                   //若为两敌方子弹则无视
				if(bullet [j].exist && j!=i && (bullet[i].my || bullet[j].my) && bullet[i].x==bullet[j].x && bullet[i].y==bullet[j].y)
				{                              //同样的两颗我方子弹不可能产生碰撞
					bullet [j].exist=0;
					bullet [i].exist=0;
					ClearBullet( bullet[j].x , bullet[j].y , BulletCheak(bullet[j].x , bullet[j].y ));  //抹除j子弹图形,子弹i图形已被抹除
					break;
				}
        }
    }
}
void BulletHit(Bullet *bullet)                     //子弹碰撞(人机共用)含tank全局变量修改,只通过BulletFly调用,
{                                                              //子弹间的碰撞不在本函数,由Bulletshoot()进行检查处理
                                         //∵每次打中的坦克都不一样,不可能把所有坦克放在参数表中
	int x=bullet->x;            //∴这里的Tank使用全局变量
	int y=bullet->y;            //这里传入的值是子弹坐标,这两个值不需要改变

	int i;

	if(map[y][x]==1||map[y][x]==2)//子弹碰到砖块
	{
	    if(bullet->direction==UP||bullet->direction==DOWN)//如果子弹是纵向(上下)
            for(i=-1;i<=1;i++)
            if(map[y][x+i]==1||map[y][x+i]==2)
            {   //如果子弹打中砖块两旁为砖块,则删除砖,若不是(一旁为坦克或其他地形)则忽略
                map[y][x+i]=0;//碎砖(改成背景)
                GoToxy(2*x+2*i,y);
                SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED); //背景黑色
                printf("  ");
            }
            if(bullet->direction==LEFT || bullet->direction==RIGHT)     //若子弹是横向的  (与子弹纵向实现同理)
			for(i = -1 ; i<=1 ; i++)
				if(map[y+i][x]==1 || map[y+i][x]==2)
				{
		    		map[y+i][x]=0;
                 	GoToxy(2*x,y+i);
	    			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED); //背景黑色
                 	printf("  ");
				}
				bullet->exist=0;//这颗子弹已经不存在了
	}

	else if(map[y][x]==4 || map[y][x]==6 )  //子弹碰到边框或者不可摧毁方块
	     bullet->exist=0;//子弹还是得消失

    else if(bullet->my&&map[y][x]>=100&&map[y][x]<104)//如果是我的子弹碰到AI坦克
    {
        int num = map[y][x]%100;   //map[y][x]%100 等同于 tank.num ,可通过map值读取该坦克信息
		if(AI_tank[num].model==3 && AI_tank[num].color==2)   //若为firm tank,且color==2。
		                                                                                    //该坦克为绿色,表明没有受到伤害
				AI_tank[num].color=3;                        //则变成黄色,color=3为黄色
		else if (AI_tank[num].model==3 && AI_tank[num].color==3)
				AI_tank[num].color=4;                        //4为红色
		else                       //其他类型的坦克或者firm tank为红色的情况
		{
			AI_tank[num].alive=0;
			ClearTank(AI_tank[num].x , AI_tank[num].y);      //清除该坦克
		}
		bullet->exist=0;//消除子弹
		score+=100;//得分
		GoToxy(102,5);             //在副屏幕上打印出分数
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                          |FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
		printf("%d ",score);
    }
        else if(map[y][x]==200 && bullet->my==0 )   //若敌方子弹击中我的坦克
	{
		my_tank.alive=0;//存活为1,死亡为0
		ClearTank(my_tank.x , my_tank.y);//清除MY坦克图像
		bullet->exist=0;//子弹存在与否的变量,1为存在,0为没有
		my_tank.revive++;      //我的坦克复活次数+1(∵我的坦克复活次数与生命值有关∴放在这里自减)
		score-=100;            //分数减少
		GoToxy(102,5);         //在副屏幕上打印出分数
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                          |FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
		printf("%d   ",score);
		GoToxy(102,7);         //在副屏幕打印出我的剩余生命值
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                          |FOREGROUND_GREEN);
		printf("%d   ", MAX_LIFT-my_tank.revive);
	}
	else if(map[y][x]==9)      //子弹碰到家(无论是谁的子弹)
	{
		bullet->exist=0;
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE
                          |FOREGROUND_RED|FOREGROUND_GREEN);
		GoToxy(38,37);	 printf("      ");
		GoToxy(38,38);	 printf("◢◣  ");
		GoToxy(38,39);	 printf("███");
		GameOver(1);           //游戏结束,传入1代表老家被毁
	}
}
void PrintBullet(int x,int y,int T)               //打印子弹(人机共用)
{
    if(T==1)          //  T==1 表示子弹当前坐标在陆地上
    	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED
                             |FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_INTENSITY);
	else if(T==2)     //  T==2 表示子弹当前坐标在水面上
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED
                          |FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_INTENSITY|BACKGROUND_BLUE);
    GoToxy(2*x,y);
    printf("凸");
}
void ClearBullet(int x,int y,int T)             //清除子弹(人机共用)
{
    GoToxy(2*x,y);
	if(T==2)        //  T==2 表示子弹当前坐标在水面上
	{
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                          |BACKGROUND_BLUE|FOREGROUND_BLUE|FOREGROUND_GREEN);
		printf("~");
	}
	else if(T==1)   //  T==1 表示子弹当前坐标在陆地上
	{
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
		printf("  ");
	}
}
int BulletCheak(int x,int y)                       //判断子弹前面的情况(人机共用)
{
    //判断子弹当前位置情况,判断子弹是否碰撞,是否位于水面上。
    //有障碍返回0,无障碍且子弹在地面返回1,子弹在水面上返回2
    if(map[y][x]==0)
		return 1;
	else if(map[y][x]==5)
		return 2;
	else
		return 0;
}

//自定义函数-- 坦克部分的函数

void BuildAITank(int *position,Tank *AI_tank)    //建立AI坦克
{//position为坦克生成位置,-1为左上角,0为游戏范围中间,1为右上角(坦克游戏正统呗)2为自己
 //rand()随见函数公式:0 <= rand()%(a+1) <= a        0+m <= rand()%(n-m+1)+m <=n
 //rand函数实现1到n:1 <= rand()%(n)+1 <=n
     if(AIPositionCheak(*position))//随机赋予函数数值
     {//若此位置无障碍,可生成。position参数详见AIPositionCheak函数定义
         AI_tank->x=20+18*(*position);//20 + 18 * position 对应三个生成位置的x假坐标
         AI_tank->y=2;
         if(AI_tank->revive==level_info[level-1].firm_tank_order)
		{//坦克出现(复活)次序==关卡信息(level_info)中firm tank的出现次序
			AI_tank->model = 3;           //3为firm tank的模型(外观)
			AI_tank->color = 2;           //颜色参数2为绿色,具体详见函数ColorChoose
		}
		else if(AI_tank->revive==level_info[level-1].fast_tank_order)  //同上if,这里是fast_tank的
		{
			AI_tank->model = 2;//2为fast tanke模型
			AI_tank->color = rand()%6+1;  //若不是firm tank则随机颜色,颜色参数为1~6,分别代表不同颜色,详见函数ColorChoose
		}
		else      //普通坦克
		{
			AI_tank->model = 1;//第一号坦克模式
	 	  	AI_tank->color = rand()%6+1;  //若不是firm tank则随机颜色
		}
		AI_tank->alive = 1;       //坦克变为存在
		AI_tank->direction = 2 ;  //方向朝下
		AI_tank->revive++;        //复活次数+1
		PrintTank(*AI_tank);
		(*position)++;
		remain_enemy--;//敌方坦克数量减少
		GoToxy(102,9);            //在副屏幕上打印剩余坦克数
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY
                          |FOREGROUND_RED);
		printf("%d ",remain_enemy);
		if(*position==2)          //position只能为0,1,-1,这里position循环重置
    		*position = -1;
  	   	return ;                  //若生成了一辆坦克,则结束该函数
     }
     /*
     LevInfo level_info[MAX_LEVET]={{-1,-1},{3,-1},{-1,3},{2,3},{2,3},{2,3},{2,3},{2,3}}; //初始化,-1代表没有该类型坦克
     首先revive是确定了坦克存在的次数,每一次出现的坦克都会经过if,else if,else判断,和level_info【】进行对比
     之后对AI坦克模型进行输出变更。
     AI坦克出现的位置变更是使用了++方法,每一次等于2是强行变回-1进行处理。如此循环。
     游戏中不难发现每次坦克出现都是中间,右边后才左边。但是电脑处理速度快,所以这一瞬间很肉眼不认真观察
     很难察觉。
     另外实际上输出的三个位置也是经过计算的。左上角(2,2) 中间(2,20) 右上角(2,38)
     输出处理时会有其他判断,详情请到 PrintTank()函数观看
     */
}
void BuildMyTank(Tank *my_tank)                 //建立玩家坦克
{
    my_tank->x=15;//坐标
   	my_tank->y=38;//坐标
   	my_tank->stop=NULL;//没有暂停
   	my_tank->direction=1;//枪口对准敌人
    my_tank->model=0;//第0号坦克模型
    my_tank->color=1;//选择颜色而已
    my_tank->alive=1;//我终于存在于世界
    my_tank->my=1;//从1而终,我兔万岁。代表我方的标记
	my_tank->CD=7;//子弹冷却时间
    PrintTank (*my_tank) ;   //打印我的坦克
}
void MoveAITank(Tank *AI_tank)                   //AI坦克的移动
{//AI需要专门的加强吗???反正这样先就好了
    if(AI_tank->alive)//如果AI坦克存在于场上
    {
        if(AI_tank->stop!=0)//坦克是否在运动状态的判断
        {
            AI_tank->stop--;//如果不是0,那么就老老实实停止行动
            return ;//不做任何事情返回
        }
        if(!(rand()%23))//22分之一的几率执行该if
        {
            AI_tank->direction=rand()%4+1;//转向
            if(rand()%3) //在方向重置后有2分之1的概率停止走动3步的时间
            {
                AI_tank->stop=2;//停止时间
                return ;
            }
        }
            ClearTank(AI_tank->x,AI_tank->y);//清除坦克(人机共用)
            if(TankCheak(*AI_tank,AI_tank->direction))//坦克数组和坦克现在方向
            {//检查坦克前方是否一片坦途(没有障碍的话)
                switch(AI_tank->direction)
                {
                    case UP   : AI_tank->y--; break;  //上前进一格
        		    case DOWN : AI_tank->y++; break;  //下前进一格
         		    case LEFT : AI_tank->x--; break;  //左前进一格
        		    case RIGHT: AI_tank->x++; break;  //右前进一格
                }
            }
            else//哦哦,车长呀!!前方发生洪涝无法通行(有障碍物)
            {
                if(!(rand()%4))//3分之1的概率乱转
                {
                    AI_tank->direction=rand()%4+1;//转向
                    AI_tank->stop=2; //乱转之后停止走动3步的时间
                    PrintTank(*AI_tank);
				    return;          //∵continue会跳过下面的打印函数,∴这里先打印
                }
                else//另外三分之二可能会选择正确的方向
                {
                    int j;
                    for(j=0;j<=4;j++)
                    {
                        if(TankCheak(*AI_tank,j))
                            break;//循环判断坦克四周有无障碍,此函数返值1为可通过
                    }
                    if(j==5)         //j==5说明此坦克四周都有障碍物,无法通行
				{
					PrintTank(*AI_tank);
	    			return;      //则跳过下面的while循环以防程序卡死
				}
				while(TankCheak ( *AI_tank , AI_tank->direction) == 0)  //如果前方仍有障碍
	    			AI_tank->direction=(rand()%4+1); //则换个随机方向检测
                }
            }
            PrintTank(*AI_tank);
    }
}
void MoveMyTank(int turn)                           //玩家坦克移动,只能通过keyboard()函数解决,既是玩家操纵
{
    ClearTank(my_tank.x,my_tank.y);//要移动的话首先删除掉原来位置的东西
    my_tank.direction=turn;            将键盘输入的方向值传入我的坦克方向值
    //方向控制的键是箭头,但是我们按下时我们判断好使用的1 2 3 4来进行case的

    if(TankCheak(my_tank,my_tank.direction))//对坦克的前方进行判断的函数需要的话前往该函数观看
        switch(turn)//方向选择
    {
        case UP      :  my_tank.y--;    break;//前进
        case DOWN:  my_tank.y++;  break;//后退
        case LEFT    :  my_tank.x--;    break;//向左
        case RIGHT :  my_tank.x++;  break;//向右
        //整个运行框是0点坐标是有最左上角算起,因此对于坐标需要可以画图
    }
    PrintTank(my_tank);//立刻打印出新的位置
}
void ClearTank(int x,int y)                            //清除坦克(人机共用)
{
    int i,j;
        for(i=0;i<3;i++)
        for(j=0;j<3;j++)
        {
            map[y+j-1][x+i-1]=0;     //九宫格个坐标的算法,y轴:y+j-1  x轴:x+i-1   以此算出九宫格
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);  //接下来打印出来的是绿色
            GoToxy(2*x+2*j-2,y+i-1);  //给出横坐标空位
            printf("  ");
        }
}
void PrintTank(Tank tank)                            //打印坦克(人机共用)  由于读取的Tank参数较多,故就不将参数一一传入了
{
    ColorChoose(tank.color);//颜色选择函数,定义一个数组里装着字符指针(字符串),指向该字符串首地址
    char *(*tankF)[4]=tank_figure[tank.model];//将二维数组首址赋初值给数组指针 model==0为我的坦克
                                                                     //,4为电脑1坦克,8为电脑2,类推
    for(int i = 0; i < 3; i++)
	{
        GoToxy((tank.x-1)*2 , tank.y-1+i);        //在坦克中心坐标的左边,上中下三行打印
        printf("%s", tankF[i][tank.direction-1]); //打印的是地址,地址既字符串
     	for(int j=0;j<3;j++)
			if(tank.my)       //若为我的坦克,为1
	            map[tank.y+j-1][tank.x+i-1]=200;  //在map上把"坦克"九格填满代表敌我坦克的参数。
	                                                                 //敌方此值为100~103,我方为200
			else
		    	map[tank.y+j-1][tank.x+i-1]=100+tank.num;  //这样可以通过map值读取坦克编号,读取操作在BulletHit 函数
	}
}
bool TankCheak(Tank tank,int direction)       //检查坦克前方是否有障碍物(dirtection),1为阻碍,0为畅通
{
    switch(direction)//此时的变量是我们的方向
    {
    case UP:                     //上
        if(map[tank.y-2][tank.x]==0&&map[tank.y-2][tank.x-1]==0&&map[tank.y-2][tank.x+1]==0)
            return 1;
        else
            return 0;
    case DOWN:               //下
        if(map[tank.y+2][tank.x]==0&&map[tank.y+2][tank.x-1]==0&&map[tank.y+2][tank.x+1]==0)
            return 1;
        else
            return 0;
    case LEFT:                    //左
        if(map[tank.y][tank.x-2]==0&&map[tank.y-1][tank.x-2]==0&&map[tank.y+1][tank.x-2]==0)
            return 1;
        else
            return 0;
    case RIGHT:                //右
        if(map[tank.y][tank.x+2]==0&&map[tank.y-1][tank.x+2]==0&&map[tank.y+1][tank.x+2]==0)
            return 1;
        else
            return 0;
    }
    return 0;
}
int AIPositionCheak(int position)                  //检查AI坦克前方情况(AIpostionCheak),1为阻碍,0为畅通
{//position为坦克生成位置,-1为左上角,0为游戏范围中间,1为右上角(坦克游戏正统呗)2为自己
    int x,y,i,j;
    if(position==2)
        x=15,y=38;//自己的坦克呗!!!这里暂时用不到
    else
        y=2,x=20+18*position;//坦克出来的三个位置
    for(i=0;i<3;i++)
		for(j=0;j<3;j++)
			if( map[y+j-1][x+i-1]!=0)  //如果遍历的九宫格里有障碍物
				return 0;              //则返回0,表示此生成位置有阻碍
    return 1;                          //否则生成1,表示此生成位置无阻碍
}

//DWORD WINAPI InputX(LPVOID lpParameter); //声明线程函数,用于检查X键输入并设置X键的输入冷却时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值