这是一个超级超级大的橡木。。。

我去 可食用
在洛谷上看到的一个项目
devc++都能跑!!!

//                            _ooOoo_
//                           o8888888o
//                           88" . "88
//                           (| -_- |)
//                            O\ = /O
//                        ____/`---'\____
//                      .   ' \\| |// `.
//                       / \\||| 1 |||// \
//                     / _||||| -9- |||||- \
//                       | | \\\ 9 /// | |
//                     | \_| ''\-8-/'' | |
//                      \ .-\__ `0` ___/-. /
//                   ___`. .' /--2--\ `. . __
//                ."" '< `.___\_<0>_/___.' >'"".
//               | | : `- \`.;`\ 2 /`;.`/ - ` : | |
//                 \ \ `-. \_ __\ /__ _/ .-` / /
//         ======`-.____`-.___\_____/___.-`____.-'======
//                            `=---='
//
//         .............................................
//                  佛祖保佑                  永无BUG
//          佛曰:
//                  写字楼里写字间,写字间里程序员;
//                  程序人员写程序,又拿程序换酒钱。
//                  酒醒只在网上坐,酒醉还来网下眠;
//                  酒醉酒醒日复日,网上网下年复年。
//                  但愿老死电脑间,不愿鞠躬老板前;
//                  奔驰宝马贵者趣,公交自行程序员。
//                  别人笑我忒疯癫,我笑自己命太贱;



/**
 * 頂頂頂頂頂頂頂頂頂 頂頂頂頂頂頂頂頂頂
 * 頂頂頂頂頂頂頂     頂頂     
 *    頂頂   頂頂頂頂頂頂頂頂頂頂頂
 *    頂頂   頂頂頂頂頂頂頂頂頂頂頂
 *    頂頂   頂頂       頂頂
 *    頂頂   頂頂  頂頂頂  頂頂
 *    頂頂   頂頂  頂頂頂  頂頂
 *    頂頂   頂頂  頂頂頂  頂頂
 *    頂頂   頂頂  頂頂頂  頂頂
 *    頂頂       頂頂頂 
 *    頂頂      頂頂 頂頂 頂頂
 *  頂頂頂頂   頂頂頂頂頂 頂頂頂頂頂
 *  頂頂頂頂   頂頂頂頂   頂頂頂頂
 */


/**
 
 * 单身狗就这样默默地看着你,一句话也不说。
 */


/**
 *                   /88888888888888888888888888\
 *                   |88888888888888888888888888/
 *                    |~~____~~~~~~~~~"""""""""|
 *                   / \_________/"""""""""""""\
 *                  /  |              \         \
 *                 /   |  88    88     \         \
 *                /    |  88    88      \         \
 *               /    /                  \        |
 *              /     |   ________        \       |
 *              \     |   \______/        /       |
 *   /"\         \     \____________     /        |
 *   | |__________\_        |  |        /        /
 * /""""\           \_------'  '-------/       --
 * \____/,___________\                 -------/
 * ------*            |                    \
 *   ||               |                     \
 *   ||               |                 ^    \
 *   ||               |                | \    \
 *   ||               |                |  \    \
 *   ||               |                |   \    \
 *   \|              /                /"""\/    /
 *      -------------                |    |    /
 *      |\--_                        \____/___/
 *      |   |\-_                       |
 *      |   |   \_                     |
 *      |   |     \                    |
 *      |   |      \_                  |
 *      |   |        ----___           |
 *      |   |               \----------|
 *      /   |                     |     ----------""\
 * /"\--"--_|                     |               |  \
 * |_______/                      \______________/    )
 *                                               \___/
 */


/**
 *                        d*##$.
 *  zP"""""$e.           $"    $o
 * 4$       '$          $"      $
 * '$        '$        J$       $F
 *  'b        $k       $>       $
 *   $k        $r     J$       d$
 *   '$         $     $"       $~
 *    '$        "$   '$E       $
 *     $         $L   $"      $F ...
 *      $.       4B   $      $$$*"""*b
 *      '$        $.  $$     $$      $F
 *       "$       R$  $F     $"      $
 *        $k      ?$ u*     dF      .$
 *        ^$.      $$"     z$      u$$$$e
 *         #$b             $E.dW@e$"    ?$
 *          #$           .o$$# d$$$$c    ?F
 *           $      .d$$#" . zo$>   #$r .uF
 *           $L .u$*"      $&$$$k   .$$d$$F
 *            $$"            ""^"$$$P"$P9$
 *           JP              .o$$$$u:$P $$
 *           $          ..ue$"      ""  $"
 *          d$          $F              $
 *          $$     ....udE             4B
 *           #$    """"` $r            @$
 *            ^$L        '$            $F
 *              RN        4N           $
 *               *$b                  d$
 *                $$k                 $F
 *                 $$b                $F
 *                  $""               $F
 *                  '$                $
 *                   $L               $
 *                   '$               $
 *                    $               $
 */


/**
 *              ,----------------,              ,---------,
 *         ,-----------------------,          ,"        ,"|
 *       ,"                      ,"|        ,"        ,"  |
 *      +-----------------------+  |      ,"        ,"    |
 *      |  .-----------------.  |  |     +---------+      |
 *      |  |                 |  |  |     | -==----'|      |
 *      |  |  I LOVE DOS!    |  |  |     |         |      |
 *      |  |  Bad command or |  |  |/----|`---=    |      |
 *      |  |  C:\>_          |  |  |   ,/|==== ooo |      ;
 *      |  |                 |  |  |  // |(((( [33]|    ,"
 *      |  `-----------------'  |," .;'| |((((     |  ,"
 *      +-----------------------+  ;;  | |         |,"
 *         /_)______________(_/  //'   | +---------+
 *    ___________________________/___  `,
 *   /  oooooooooooooooo  .o.  oooo /,   \,"-----------
 *  / ==ooooooooooooooo==.o.  ooo= //   ,`\--{)B     ,"
 * /_==__==========__==_ooo__ooo=_/'   /___________,"
 *
 */


/**
 *                 .-~~~~~~~~~-._       _.-~~~~~~~~~-.
 *             __.'              ~.   .~              `.__
 *           .'//                  \./                  \\`.
 *         .'//                     |                     \\`.
 *       .'// .-~"""""""~~~~-._     |     _,-~~~~"""""""~-. \\`.
 *     .'//.-"                 `-.  |  .-'                 "-.\\`.
 *   .'//______.============-..   \ | /   ..-============.______\\`.
 * .'______________________________\|/______________________________`.
 *
 */
 
/**
 * 你可能会认为你读得懂以下的代码。但是你不会懂的,相信我吧。
 * 要是你尝试玩弄这段代码的话,你将会在无尽的通宵中不断地咒骂自己为什么会认为自己聪明到可以优化这段代码。
 * 现在请关闭这个文件去玩点别的吧。
 */
#include<iostream>
#include<windows.h>
#include<time.h>
#include<conio.h>
#include <stdlib.h>
int main();//提前定义主函数 

int diffy;bool gigantic;//难度 
char gmGnd;//background
time_t defen;
using namespace std;
HANDLE hout=GetStdHandle(STD_OUTPUT_HANDLE);
COORD coord;
void locate(int x,int y)//光标定位 
{
    coord.X=y;
    coord.Y=x;
    SetConsoleCursorPosition(hout,coord);
};
void hide()//光标隐藏 
{
    CONSOLE_CURSOR_INFO cursor_info={1,0};
    SetConsoleCursorInfo(hout, &cursor_info);
}
void show()//光标显现 
{
    CONSOLE_CURSOR_INFO cursor_info={1,1};
    SetConsoleCursorInfo(hout, &cursor_info);
}
#define fBLUE FOREGROUND_BLUE
#define fRED FOREGROUND_RED
#define fGREEN FOREGROUND_GREEN
#define fINTE FOREGROUND_INTENSITY
#define bBLUE BACKGROUND_BLUE
#define bRED BACKGROUND_RED
#define bGREEN BACKGROUND_GREEN
#define bINTE BACKGROUND_INTENSITY
void Color(WORD a)
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
}
void Color(WORD a,WORD b)
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a|b);
}
void Color(WORD a,WORD b,WORD c)
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a|b|c);
}
void Color(WORD a,WORD b,WORD c,WORD d)
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a|b|c|d);
}
int shuafen;//刷分(双倍经验) 
int fenx[10000000],feny[10000000],cntfen,fenlive[10000000];//分坐标(*) 
int direct[4][2]={{0,-1},{-1,0},{0,1},{1,0}};//行动方向(四向) 
int dir;//方向存储 
int x1=10,y1=95;//玩家坐标(@) 
int cnt1,cnt2;//cnt1:分数($),cnt2:血量(显示时是 %:A_life-cnt2) 
int map[1000][1000];//地图 
int bltslt[1000][1000],bltsltx[1000000],bltslty[1000000],cntbltslt;//子弹岗亭 
int uinwater;//气泡码 
bool onfire;//岩码 
time_t first,fir,second;//时间:first:开始时间(秒),fir:开始时间(毫秒),second:当前时间(秒/毫秒) 
int DIER[9][2]={{0,0},{-1,0},{1,0},{0,-1},{0,1},{-1,-1},{-1,1},{1,-1},{1,1}};//子弹方向(八向) 
int bltx[10000000],blty[10000000],blt[10000000],bltdier[10000000],liveblt[10000000],cntblt,bltnum;
/*(上排)
bltx[],blty[]:子弹坐标;blt[]:子弹行径时间(射程);bltdier[]:子弹方向;liveblt[]:子弹是否可用(0:no/1:yes);
cntblt:场上子弹数量;bltnum:可用子弹数量。
*/
int bltx_ene[10000000],blty_ene[10000000],blt_ene[10000000],bltdier_ene[10000000],liveblt_ene[10000000],cntblt_ene;
/*(上排)
bltx_ene[],blty_ene[]:子弹坐标;blt_ene[]:子弹行径时间(射程);bltdier_ene[]:子弹方向;liveblt_ene[]:子弹是否可用(0:no/1:yes);cntblt:场上子弹数量;
但是敌人() 
*/
int A_life=30;//血量上限 
int DIS_blt=50;//子弹射程 
int numshelter;//手持安全屋数量 
int numbltshelter;//手持岗亭数量 
int bossx=11,bossy=30;
void compleblt(int z,int i,int yy)//bullet_clean 
{
    while(--i>=yy)
    {
        switch(map[bltx[z]][blty[z]+i])
        {
            case 0:locate(bltx[z],blty[z]+i);cout<<' ';break;
            case 1:locate(bltx[z],blty[z]+i);cout<<'=';break;
            case 2:locate(bltx[z],blty[z]+i);cout<<'x';break;
            case 3:locate(bltx[z],blty[z]+i);cout<<char(1);break;
            case 4:locate(bltx[z],blty[z]+i);cout<<'~';break;
            case 5:locate(bltx[z],blty[z]+i);cout<<'!';break;
            case 6:locate(bltx[z],blty[z]+i);cout<<'N';break;
            case 7:locate(bltx[z],blty[z]+i);cout<<'+';break;
        }
    }
}
void compleblt_ene(int z,int i,int yy)//bullet_clean 
{
    while(--i>=yy)
    {
        switch(map[bltx_ene[z]][blty_ene[z]+i])
        {
            case 0:locate(bltx_ene[z],blty_ene[z]+i);cout<<' ';break;
            case 1:locate(bltx_ene[z],blty_ene[z]+i);cout<<'=';break;
            case 2:locate(bltx_ene[z],blty_ene[z]+i);cout<<'x';break;
            case 3:locate(bltx_ene[z],blty_ene[z]+i);cout<<char(1);break;
            case 4:locate(bltx_ene[z],blty_ene[z]+i);cout<<'~';break;
            case 5:locate(bltx_ene[z],blty_ene[z]+i);cout<<'!';break;
            case 6:locate(bltx_ene[z],blty_ene[z]+i);cout<<'N';break;
            case 7:locate(bltx_ene[z],blty_ene[z]+i);cout<<'+';break;
        }
    }
}
void comple1(int i,int y)//@_clean
{
    while(--i>=y)
    {
        switch(map[x1][y1+i])
        {
            case 0:locate(x1,y1+i);cout<<' ';break;
            case 1:locate(x1,y1+i);cout<<'=';break;
            case 2:locate(x1,y1+i);cout<<',';map[x1][y1+i]=0;break;
            case 3:locate(x1,y1+i);cout<<char(1);break;
            case 4:locate(x1,y1+i);cout<<'~';break;
            case 5:locate(x1,y1+i);cout<<'!';break;
            case 6:locate(x1,y1+i);cout<<'N';break;
            case 7:locate(x1,y1+i);cout<<'+';if(bltslt[x1][y1]>0)bltslt[x1][y1]--,bltnum++;break;
        }
    }
}
int x[10000000],y[10000000],cnt=0,live[10000000];//#坐标,数量,是否存活(0:live/1:dead) 
int inwater[10000000];//#憋气(三字节) 
void comple(int z,int i,int yy)//#_clean 
{
    while(--i>=yy)
    {
        switch(map[x[z]][y[z]+i])
        {
            case 0:locate(x[z],y[z]+i);cout<<' ';break;
            case 1:locate(x[z],y[z]+i);cout<<'=';break;
            case 2:locate(x[z],y[z]+i);cout<<',';map[x[z]][y[z]+i]=0;break;
            case 3:locate(x[z],y[z]+i);cout<<char(1);break;
            case 4:locate(x[z],y[z]+i);cout<<'~';break;
            case 5:locate(x[z],y[z]+i);cout<<'!';break;
            case 6:locate(x[z],y[z]+i);cout<<'N';break;
            case 7:locate(x[z],y[z]+i);cout<<'+';break;
        }
    }
}
int kkk[10000000];//#行动方向(井路)/#是否变为$ 
int factcnt;
bool cntrelive;
void _jing_(int i)//#_move
{//%9999:防越界(其实没用) 
    if(i>cnt)return;
    if(live[i%9999])//#已经寄了:执行下一个 
    {
        if(cntrelive==1)live[i%9999]=0;
        else factcnt--;
        _jing_((i+1)%9999);
        return;
    }
    if(kkk[i%9999]<=10||kkk[i%9999]>=30)//竖走 
    {
        if(y1>=75&&gmGnd=='1')
        {
            if(y[i%9999]==74&&x[i%9999]<=24)
            {
                if(map[x[i%9999]+1][y[i%9999]]==3||map[x[i%9999]+1][y[i%9999]]==1||map[x[i%9999]+1][y[i%9999]]==7)
                {
                    int lshsh=rand()%5;
                    if(lshsh)
                    {
                        _jing_((i+1)%9999);
                        return;
                    }
                    else{
                        comple(i%9999,1,0);
                        kkk[i%9999]=20;
                        locate(x[i%9999],y[i%9999]);
                        if(kkk[i%9999]<20)
                        cout<<"#";
                        else cout<<"$";
		                _jing_((i+1)%9999);
		                return;
					}
	            }
	            comple(i%9999,1,0);
	            x[i%9999]++;
	            locate(x[i%9999],y[i%9999]);
	            if(kkk[i%9999]<20)
	            cout<<"#";
	            else cout<<"$";
            }
        }
        else if(x1>x[i%9999])
        {
            if(map[x[i%9999]+1][y[i%9999]]==3||map[x[i%9999]+1][y[i%9999]]==1||map[x[i%9999]+1][y[i%9999]]==7)
            {
                int lshsh=rand()%5;
                if(lshsh)
                {
                    _jing_((i+1)%9999);
                    return;
                }
                else{
                    comple(i%9999,1,0);
                    kkk[i%9999]=20;
                    locate(x[i%9999],y[i%9999]);
                    if(kkk[i%9999]<20)
                    cout<<"#";
                    else cout<<"$";
	                _jing_((i+1)%9999);
	                return;
				}
            }
            comple(i%9999,1,0);
            x[i%9999]++;
            locate(x[i%9999],y[i%9999]);
            if(kkk[i%9999]<20)
            cout<<"#";
            else cout<<"$";
        }
        else if(x1<x[i%9999])
        {
            if(x[i%9999]-1<0||map[x[i%9999]-1][y[i%9999]]==3||map[x[i%9999]-1][y[i%9999]]==1||map[x[i%9999]-1][y[i%9999]]==7)
            {
                int lshsh=rand()%5;
                if(lshsh)
                {
                    _jing_((i+1)%9999);
                    return;
                }
                else{
                    comple(i%9999,1,0);
                    kkk[i%9999]=20;
                    locate(x[i%9999],y[i%9999]);
                    if(kkk[i%9999]<20)
                    cout<<"#";
                    else cout<<"$";
	                _jing_((i+1)%9999);
	                return;
				}
			}
    		comple(i%9999,1,0);
			x[i%9999]--;
		    locate(x[i%9999],y[i%9999]);
		    if(kkk[i%9999]<20)
		    cout<<"#";
	    	else cout<<"$";
        }
    }
    else//横走 
    {
        if(y1>y[i%9999])
        {
            if(map[x[i%9999]][y[i%9999]+1]==3||map[x[i%9999]][y[i%9999]+1]==1||map[x[i%9999]][y[i%9999]+1]==7)
            {
                int lshsh=rand()%5;
                if(lshsh)
                {
                    _jing_((i+1)%9999);
                    return;
                }
                else{
                    comple(i%9999,1,0);
                    kkk[i%9999]=0;
                    locate(x[i%9999],y[i%9999]);
                    if(kkk[i%9999]<20)
                    cout<<"#";
                    else cout<<"$";
	                _jing_((i+1)%9999);
	                return;
				}
            }
            comple(i%9999,1,0);
            y[i%9999]++;
            locate(x[i%9999],y[i%9999]);
            if(kkk[i%9999]<20)
            cout<<"#";
            else cout<<"$";
        }
        if(y1<y[i%9999])
        {
            if(y[i%9999]-1<0||map[x[i%9999]][y[i%9999]-1]==3||map[x[i%9999]][y[i%9999]-1]==1||map[x[i%9999]][y[i%9999]-1]==7)
            {
                int lshsh=rand()%5;
                if(lshsh)
                {
                    _jing_((i+1)%9999);
                    return;
                }
                else{
                    comple(i%9999,1,0);
                    kkk[i%9999]=0;
                    locate(x[i%9999],y[i%9999]);
                    if(kkk[i%9999]<20)
                    cout<<"#";
                    else cout<<"$";
	                _jing_((i+1)%9999);
	                return;
				}
			}
    		comple(i%9999,1,0);
			y[i%9999]--;
		    locate(x[i%9999],y[i%9999]);
		    if(kkk[i%9999]<20)
		    cout<<"#";
	    	else cout<<"$";
        }
    }
    kkk[i%9999]++;
    kkk[i%9999]%=40;
    _jing_((i+1)%9999);
}
void comple_boss(int i,int y)//_clean
{
    while(--i>=y)
    {
        switch(map[bossx][bossy+i])
        {
            case 0:
            locate(bossx,bossy+i);cout<<' ';
            break;
            case 1:locate(bossx,bossy+i);cout<<'=';
            break;
            case 2:locate(bossx,bossy+i);cout<<',';map[bossx][bossy+i]=0;
            break;
            case 3:locate(bossx,bossy+i);cout<<char(1);
            break;
            case 4:locate(bossx,bossy+i);cout<<'~';
            break;
            case 5:locate(bossx,bossy+i);cout<<'!';
            break;
            case 6:locate(bossx,bossy+i);cout<<'N';
            break;
            case 7:locate(bossx,bossy+i);cout<<'+';
            break;
        }
        switch(map[bossx+1][bossy+i])
        {
            case 0:
            locate(bossx+1,bossy+i);cout<<' ';
            break;
            case 1:locate(bossx+1,bossy+i);cout<<'=';
            break;
            case 2:locate(bossx+1,bossy+i);cout<<',';map[bossx][bossy+i]=0;
            break;
            case 3:locate(bossx+1,bossy+i);cout<<char(1);
            break;
            case 4:locate(bossx+1,bossy+i);cout<<'~';
            break;
            case 5:locate(bossx+1,bossy+i);cout<<'!';
            break;
            case 6:locate(bossx+1,bossy+i);cout<<'N';
            break;
            case 7:locate(bossx+1,bossy+i);cout<<'+';
            break;
        }
        switch(map[bossx-1][bossy+i])
        {
            case 0:
            locate(bossx-1,bossy+i);cout<<' ';
            break;
            case 1:locate(bossx-1,bossy+i);cout<<'=';
            break;
            case 2:locate(bossx-1,bossy+i);cout<<',';map[bossx][bossy+i]=0;
            break;
            case 3:locate(bossx-1,bossy+i);cout<<char(1);
            break;
            case 4:locate(bossx-1,bossy+i);cout<<'~';
            break;
            case 5:locate(bossx-1,bossy+i);cout<<'!';
            break;
            case 6:locate(bossx-1,bossy+i);cout<<'N';
            break;
            case 7:locate(bossx-1,bossy+i);cout<<'+';
            break;
        }
        switch(map[bossx][bossy+i-1])
        {
            case 0:
            locate(bossx,bossy+i-1);cout<<' ';
            break;
            case 1:locate(bossx,bossy+i-1);cout<<'=';
            break;
            case 2:locate(bossx,bossy+i-1);cout<<',';map[bossx][bossy+i]=0;
            break;
            case 3:locate(bossx,bossy+i-1);cout<<char(1);
            break;
            case 4:locate(bossx,bossy+i-1);cout<<'~';
            break;
            case 5:locate(bossx,bossy+i-1);cout<<'!';
            break;
            case 6:locate(bossx,bossy+i-1);cout<<'N';
            break;
            case 7:locate(bossx,bossy+i-1);cout<<'+';
            break;
        }
        switch(map[bossx][bossy+i+1])
        {
            case 0:
            locate(bossx,bossy+i+1);cout<<' ';
            break;
            case 1:locate(bossx,bossy+i+1);cout<<'=';
            break;
            case 2:locate(bossx,bossy+i+1);cout<<',';map[bossx][bossy+i]=0;
            break;
            case 3:locate(bossx,bossy+i+1);cout<<char(1);
            break;
            case 4:locate(bossx,bossy+i+1);cout<<'~';
            break;
            case 5:locate(bossx,bossy+i+1);cout<<'!';
            break;
            case 6:locate(bossx,bossy+i+1);cout<<'N';
            break;
            case 7:locate(bossx,bossy+i+1);cout<<'+';
            break;
        }
    }
}
int direboss;
bool ifBossMove;
void BOSS()//Boss_move
{
    if(direboss==1)
    {
        if(map[bossx+2][bossy]==3||map[bossx+2][bossy]==1||map[bossx+2][bossy]==7)
        {
            direboss++;
            return;
        }
        comple_boss(1,0);
        bossx++;
        locate(bossx,bossy);
        locate(bossx,bossy);cout<<char(2);
        locate(bossx-1,bossy);cout<<"#";
        locate(bossx+1,bossy);cout<<"#";
        locate(bossx,bossy-1);cout<<"#";
        locate(bossx,bossy+1);cout<<"#";
    }
    if(direboss==3)
    {
        if(bossx-2<0||map[bossx-2][bossy]==3||map[bossx-2][bossy]==1||map[bossx-2][bossy]==7)
        {
            direboss++;
            return;
        }
        comple_boss(1,0);
        bossx--;
        locate(bossx,bossy);
        locate(bossx,bossy);cout<<char(2);
        locate(bossx-1,bossy);cout<<"#";
        locate(bossx+1,bossy);cout<<"#";
        locate(bossx,bossy-1);cout<<"#";
        locate(bossx,bossy+1);cout<<"#";
    }
    if(direboss==2)
    {
        if(map[bossx][bossy+2]==3||map[bossx][bossy+2]==1||map[bossx][bossy+2]==7)
        {
            direboss++;
            return;
        }
        comple_boss(1,0);
        bossy++;
        locate(bossx,bossy);
        locate(bossx,bossy);cout<<char(2);
        locate(bossx-1,bossy);cout<<"#";
        locate(bossx+1,bossy);cout<<"#";
        locate(bossx,bossy-1);cout<<"#";
        locate(bossx,bossy+1);cout<<"#";
    }
    if(direboss==4)
    {
        if(bossy-2<0||map[bossx][bossy-2]==3||map[bossx][bossy-2]==1||map[bossx][bossy-2]==7)
        {
            direboss++;
            return;
        }
        comple_boss(1,0);
        bossy--;
        locate(bossx,bossy);
        locate(bossx,bossy);cout<<char(2);
        locate(bossx-1,bossy);cout<<"#";
        locate(bossx+1,bossy);cout<<"#";
        locate(bossx,bossy-1);cout<<"#";
        locate(bossx,bossy+1);cout<<"#";
    }
}
int xO[10000000],yO[10000000],cntO,liveO[10000000];//井母(O)(坐标、数量、存活(0:存活/1:不活)) 
int kkO[10000000];//O行动方向(母路)
int xo[40000000],yo[40000000],cnto=0,liveo[40000000],inwatero[10000000];//井母的追随者(坐标、数量、存活(0:存活/1:不活)) 
int kko[10000000];//追随者行动方向 
int xK[10000000],yK[10000000],cntK,liveK[10000000];//K坐标,数量,是否存活(0:live/1:dead) 
int kkK[10000000];
int xR[10000000],yR[10000000],cntR,liveR[10000000];//R坐标,数量,是否存活(0:live/1:dead) 
int kkR[10000000];
void compleO(int z,int i,int y)//O_clean 
{
    while(--i>=y)
    {
        switch(map[xO[z]][yO[z]+i])
        {
            case 0:locate(xO[z],yO[z]+i);cout<<'W';map[xO[z]][yO[z]+i]=2;break;
            case 1:locate(xO[z],yO[z]+i);cout<<'=';break;
            case 2:locate(xO[z],yO[z]+i);cout<<'W';break;
            case 3:locate(xO[z],yO[z]+i);cout<<char(1);break;
            case 4:locate(xO[z],yO[z]+i);cout<<'~';break;
            case 5:locate(xO[z],yO[z]+i);cout<<'!';break;
            case 6:locate(xO[z],yO[z]+i);cout<<'N';break;
            case 7:locate(xO[z],yO[z]+i);cout<<'+';break;
        }
    }
}
void compleo(int z,int i,int y)//#_clean(o)
{
    while(--i>=y)
    {
        switch(map[xo[z]][yo[z]+i])
        {
            case 0:locate(xo[z],yo[z]+i);cout<<' ';break;
            case 1:locate(xo[z],yo[z]+i);cout<<'=';break;
            case 2:locate(xo[z],yo[z]+i);cout<<',';map[xo[z]][yo[z]+i]=0;break;
            case 3:locate(xo[z],yo[z]+i);cout<<char(1);break;
            case 4:locate(xo[z],yo[z]+i);cout<<'~';break;
            case 5:locate(xo[z],yo[z]+i);cout<<'!';break;
            case 6:locate(xo[z],yo[z]+i);cout<<'N';break;
            case 7:locate(xo[z],yo[z]+i);cout<<'+';break;
        }
    }
}
void O(int i)//O_move
{
    if(i>cntO)return;
    if(liveO[i%9999])
    {
        O((i+1)%9999);
        return;
    }
    if(kkO[i%9999]<=10||kkO[i%9999]>=30)
    {
        if(x1>xO[i%9999])
        {
            if(map[xO[i%9999]+1][yO[i%9999]]==3||map[xO[i%9999]+1][yO[i%9999]]==1||map[xO[i%9999]+1][yO[i%9999]]==7)
            {
                O((i+1)%9999);
                return;
            }
            compleO(i%9999,1,0);
            xO[i%9999]++;
            locate(xO[i%9999],yO[i%9999]);
            cout<<"O";
        }
        if(x1<xO[i%9999])
        {
            if(xO[i%9999]-1<0||map[xO[i%9999]-1][yO[i%9999]]==3||map[xO[i%9999]-1][yO[i%9999]]==1||map[xO[i%9999]-1][yO[i%9999]]==7)
            {
                O((i+1)%9999);
                return;
            }
            compleO(i%9999,1,0);
            xO[i%9999]--;
            locate(xO[i%9999],yO[i%9999]);
            cout<<"O";
        }
    }
    else
    {
        if(y1>yO[i%9999])
        {
            if(map[xO[i%9999]][yO[i%9999]+1]==3||map[xO[i%9999]][yO[i%9999]+1]==1||map[xO[i%9999]][yO[i%9999]+1]==7)
            {
                O((i+1)%9999);
                return;
            }
            compleO(i%9999,1,0);
            yO[i%9999]++;
            locate(xO[i%9999],yO[i%9999]);
            cout<<"O";
        }
        if(y1<yO[i%9999])
        {
            if(yO[i%9999]-1<0||map[xO[i%9999]][yO[i%9999]-1]==3||map[xO[i%9999]][yO[i%9999]-1]==1||map[xO[i%9999]][yO[i%9999]-1]==7)
            {
                O((i+1)%9999);
                return;
            }
            compleO(i%9999,1,0);
            yO[i%9999]--;
            locate(xO[i%9999],yO[i%9999]);
            cout<<"O";
        }
    }
    kkO[i%9999]++;
    kkO[i%9999]%=40;
    O((i+1)%9999);
}
void compleK(int z,int i,int y)//K_clean 
{
    while(--i>=y)
    {
        switch(map[xK[z]][yK[z]+i])
        {
            case 0:locate(xK[z],yK[z]+i);cout<<'W';map[xK[z]][yK[z]+i]=2;break;
            case 1:locate(xK[z],yK[z]+i);cout<<'=';break;
            case 2:locate(xK[z],yK[z]+i);cout<<'W';break;
            case 3:locate(xK[z],yK[z]+i);cout<<char(1);break;
            case 4:locate(xK[z],yK[z]+i);cout<<'~';break;
            case 5:locate(xK[z],yK[z]+i);cout<<'!';break;
            case 6:locate(xK[z],yK[z]+i);cout<<'N';break;
            case 7:locate(xK[z],yK[z]+i);cout<<'+';break;
        }
    }
}
void K(int i)//K_move
{
    if(i>cntK)return;
    if(liveK[i%9999])
    {
        K((i+1)%9999);
        return;
    }
    if(kkK[i%9999]<=10||kkK[i%9999]>=30)
    {
        if(x1>xK[i%9999])
        {
            if(map[xK[i%9999]+1][yK[i%9999]]==3||map[xK[i%9999]+1][yK[i%9999]]==1||map[xK[i%9999]+1][yK[i%9999]]==7)
            {
                K((i+1)%9999);
                return;
            }
            compleK(i%9999,1,0);
            xK[i%9999]++;
            locate(xK[i%9999],yK[i%9999]);
            cout<<"K";
        }
        if(x1<xK[i%9999])
        {
            if(xK[i%9999]-1<0||map[xK[i%9999]-1][yK[i%9999]]==3||map[xK[i%9999]-1][yK[i%9999]]==1||map[xK[i%9999]-1][yK[i%9999]]==7)
            {
                K((i+1)%9999);
                return;
            }
            compleK(i%9999,1,0);
            xK[i%9999]--;
            locate(xK[i%9999],yK[i%9999]);
            cout<<"K";
        }
    }
    else
    {
        if(y1>yK[i%9999])
        {
            if(map[xK[i%9999]][yK[i%9999]+1]==3||map[xK[i%9999]][yK[i%9999]+1]==1||map[xK[i%9999]][yK[i%9999]+1]==7)
            {
                K((i+1)%9999);
                return;
            }
            compleK(i%9999,1,0);
            yK[i%9999]++;
            locate(xK[i%9999],yK[i%9999]);
            cout<<"K";
        }
        if(y1<yK[i%9999])
        {
            if(yK[i%9999]-1<0||map[xK[i%9999]][yK[i%9999]-1]==3||map[xK[i%9999]][yK[i%9999]-1]==1||map[xK[i%9999]][yK[i%9999]-1]==7)
            {
                K((i+1)%9999);
                return;
            }
            compleK(i%9999,1,0);
            yK[i%9999]--;
            locate(xK[i%9999],yK[i%9999]);
            cout<<"K";
        }
    }
    kkK[i%9999]++;
    kkK[i%9999]%=40;
    K((i+1)%9999);
}
void compleR(int z,int i,int y)//R_clean 
{
    while(--i>=y)
    {
        switch(map[xR[z]][yR[z]+i])
        {
            case 0:locate(xR[z],yR[z]+i);cout<<'W';map[xR[z]][yR[z]+i]=2;break;
            case 1:locate(xR[z],yR[z]+i);cout<<'=';break;
            case 2:locate(xR[z],yR[z]+i);cout<<'W';break;
            case 3:locate(xR[z],yR[z]+i);cout<<char(1);break;
            case 4:locate(xR[z],yR[z]+i);cout<<'~';break;
            case 5:locate(xR[z],yR[z]+i);cout<<'!';break;
            case 6:locate(xR[z],yR[z]+i);cout<<'N';break;
            case 7:locate(xR[z],yR[z]+i);cout<<'+';break;
        }
    }
}
void R(int i)//R_move
{
    if(i>cntR)return;
    if(liveR[i%9999])
    {
        R((i+1)%9999);
        return;
    }
    if(kkR[i%9999]<=10||kkR[i%9999]>=30)
    {
        if(x1>xR[i%9999])
        {
            if(map[xR[i%9999]+1][yR[i%9999]]==3||map[xR[i%9999]+1][yR[i%9999]]==1||map[xR[i%9999]+1][yR[i%9999]]==7)
            {
                R((i+1)%9999);
                return;
            }
            compleR(i%9999,1,0);
            xR[i%9999]++;
            locate(xR[i%9999],yR[i%9999]);
            cout<<"R";
        }
        if(x1<xR[i%9999])
        {
            if(xR[i%9999]-1<0||map[xR[i%9999]-1][yR[i%9999]]==3||map[xR[i%9999]-1][yR[i%9999]]==1||map[xR[i%9999]-1][yR[i%9999]]==7)
            {
                R((i+1)%9999);
                return;
            }
            compleR(i%9999,1,0);
            xR[i%9999]--;
            locate(xR[i%9999],yR[i%9999]);
            cout<<"R";
        }
    }
    else
    {
        if(y1>yR[i%9999])
        {
            if(map[xR[i%9999]][yR[i%9999]+1]==3||map[xR[i%9999]][yR[i%9999]+1]==1||map[xR[i%9999]][yR[i%9999]+1]==7)
            {
                R((i+1)%9999);
                return;
            }
            compleR(i%9999,1,0);
            yR[i%9999]++;
            locate(xR[i%9999],yR[i%9999]);
            cout<<"R";
        }
        if(y1<yR[i%9999])
        {
            if(yR[i%9999]-1<0||map[xR[i%9999]][yR[i%9999]-1]==3||map[xR[i%9999]][yR[i%9999]-1]==1||map[xR[i%9999]][yR[i%9999]-1]==7)
            {
                R((i+1)%9999);
                return;
            }
            compleR(i%9999,1,0);
            yR[i%9999]--;
            locate(xR[i%9999],yR[i%9999]);
            cout<<"R";
        }
    }
    kkR[i%9999]++;
    kkR[i%9999]%=40;
    R((i+1)%9999);
}
void o(int i)//#_move(o)
{
    if(i>cnto)return;
    if(liveo[i%9999])
    {
        o((i+1)%9999);
        return;
    }
    if(kko[i%9999]<=10||kko[i%9999]>=30)
    {
        if(x1>xo[i%9999])
        {
            if(map[xo[i%9999]+1][yo[i%9999]]==3||map[xo[i%9999]+1][yo[i%9999]]==1||map[xo[i%9999]+1][yo[i%9999]]==7)
            {
                o((i+1)%9999);
                return;
            }
            compleo(i%9999,1,0);
            xo[i%9999]++;
            locate(xo[i%9999],yo[i%9999]);
            if(kkk[i%9999]<20)
            cout<<"#";
            else cout<<"$";
		}
    	if(x1<xo[i%9999])
		{
    		if(xo[i%9999]-1<0||map[xo[i%9999]-1][yo[i%9999]]==3||map[xo[i%9999]-1][yo[i%9999]]==1||map[xo[i%9999]-1][yo[i%9999]]==7)
    		{
    			o((i+1)%9999);
    			return;
			}
    		compleo(i%9999,1,0);
			xo[i%9999]--;
		    locate(xo[i%9999],yo[i%9999]);
		    if(kkk[i%9999]<20)
		    cout<<"#";
	    	else cout<<"$";
        }
    }
    else
    {
        if(y1>yo[i%9999])
        {
            if(map[xo[i%9999]][yo[i%9999]+1]==3||map[xo[i%9999]][yo[i%9999]+1]==1||map[xo[i%9999]][yo[i%9999]+1]==7)
            {
                o((i+1)%9999);
                return;
            }
            compleo(i%9999,1,0);
            yo[i%9999]++;
            locate(xo[i%9999],yo[i%9999]);
            if(kkk[i%9999]<20)
            cout<<"#";
            else cout<<"$";
		}
    	if(y1<yo[i%9999])
		{
    		if(yo[i%9999]-1<0||map[xo[i%9999]][yo[i%9999]-1]==3||map[xo[i%9999]][yo[i%9999]-1]==1||map[xo[i%9999]][yo[i%9999]-1]==7)
    		{
    			o((i+1)%9999);
    			return;
			}
    		compleo(i%9999,1,0);
			yo[i%9999]--;
		    locate(xo[i%9999],yo[i%9999]);
		    if(kkk[i%9999]<20)
		    cout<<"#";
	    	else cout<<"$";
        }
    }
    kko[i%9999]++;
    kko[i%9999]%=40;
    o((i+1)%9999);
}
int kkk03;//计数器左端点(diffy>=6基本就用不到了) 
bool luogu,luogu2;//确保#/O/.每次只走一字节 
void Bullet(int i)//子弹行动 
{
    if(map[bltx[i]+DIER[bltdier[i]][0]][blty[i]+DIER[bltdier[i]][1]]!=3&&bltx[i]+DIER[bltdier[i]][0]>=0&&blty[i]+DIER[bltdier[i]][1]>=0)
    {
        for(int j=0;j<=cnt;j++)
        {
            if(live[j%9999])continue;
            if(bltx[i]==x[j%9999]&&blty[i]==y[j%9999])
            {
                    cnt1++,live[j%9999]=1;//打到算分 
                    x[j]=rand()%26+1,y[j]=rand()%75+1;
                    while(map[x[j]][y[j]]==3)x[j]=rand()%26+1,y[j]=rand()%75+1;
            }
        }
        for(int j=0;j<=cnto;j++)
        {
            if(liveo[j%9999])continue;
            if(bltx[i]==xo[j%9999]&&blty[i]==yo[j%9999])
            {
                    cnt1++,liveo[j%9999]=1;
            }
        }
        for(int j=0;j<=cntK;j++)
        {
            if(liveK[j%9999])continue;
            if(bltx[i]==xK[j%9999]&&blty[i]==yK[j%9999])
            {
                    cnt1+=50,liveK[j%9999]=1;
                    xK[j]=rand()%26+1,yK[j]=rand()%75+1;
                    while(map[xK[j]][yK[j]]==3)xK[j]=rand()%26+1,yK[j]=rand()%75+1;
            }
        }
        for(int j=0;j<=cntR;j++)
        {
            if(liveR[j%9999])continue;
            if(bltx[i]==xR[j%9999]&&blty[i]==yR[j%9999])
            {
                    cnt1+=25,liveR[j%9999]=1;
                    xR[j]=rand()%26+1,yR[j]=rand()%116+1;
                    while(map[xR[j]][yR[j]]==3||map[xR[j]][yR[j]]==1||map[xR[j]][yR[j]]==6||map[xR[j]][yR[j]]==7)xR[j]=rand()%26+1,yR[j]=rand()%116+1;
            }
        }
        locate(bltx[i],blty[i]);
        compleblt(i,1,0);
        bltx[i]+=DIER[bltdier[i]][0];
        blty[i]+=DIER[bltdier[i]][1];
        locate(bltx[i],blty[i]);
        cout<<'.';
    }
    else//子弹反弹 
    {
        switch(bltdier[i])
        {
            case 1:bltdier[i]=2;break;
            case 2:bltdier[i]=1;break;
            case 3:bltdier[i]=4;break;
            case 4:bltdier[i]=3;break;
            case 5:if(map[bltx[i]-1][blty[i]+1]!=3&&bltx[i]-1>=0&&blty[i]+1>=0)bltdier[i]=6;
            if(map[bltx[i]+1][blty[i]-1]!=3&&bltx[i]+1>=0&&blty[i]-1>=0)bltdier[i]=7;
            break;
            case 6:if(map[bltx[i]-1][blty[i]-1]!=3&&bltx[i]-1>=0&&blty[i]-1>=0)bltdier[i]=5;
            if(map[bltx[i]+1][blty[i]+1]!=3&&bltx[i]+1>=0&&blty[i]+1>=0)bltdier[i]=8;
            break;
            case 7:if(map[bltx[i]-1][blty[i]-1]!=3&&bltx[i]-1>=0&&blty[i]-1>=0)bltdier[i]=5;
            if(map[bltx[i]+1][blty[i]+1]!=3&&bltx[i]+1>=0&&blty[i]+1>=0)bltdier[i]=8;
            break;
            case 8:if(map[bltx[i]-1][blty[i]+1]!=3&&bltx[i]-1>=0&&blty[i]+1>=0)bltdier[i]=6;
            if(map[bltx[i]+1][blty[i]-1]!=3&&bltx[i]+1>=0&&blty[i]-1>=0)bltdier[i]=7;
            break;
        }
    }
}
void Bullet_ene(int i)//ene_子弹行动 
{
    if(map[bltx_ene[i]+DIER[bltdier_ene[i]][0]][blty_ene[i]+DIER[bltdier_ene[i]][1]]!=3&&bltx_ene[i]+DIER[bltdier_ene[i]][0]>=0&&blty_ene[i]+DIER[bltdier_ene[i]][1]>=0)
    {
        if(bltx_ene[i]==x1&&blty_ene[i]==y1)
        {
            cnt2+=5;
            liveblt_ene[i]=0;
        }
        locate(bltx_ene[i],blty_ene[i]);
        compleblt_ene(i,1,0);
        bltx_ene[i]+=DIER[bltdier_ene[i]][0];
        blty_ene[i]+=DIER[bltdier_ene[i]][1];
        locate(10,0);
        cout<<"shooted";
        locate(bltx_ene[i],blty_ene[i]);
        cout<<char(2);
    }
    else//子弹反弹 
    {
        switch(bltdier_ene[i])
        {
            case 1:bltdier_ene[i]=2;break;
            case 2:bltdier_ene[i]=1;break;
            case 3:bltdier_ene[i]=4;break;
            case 4:bltdier_ene[i]=3;break;
            case 5:if(map[bltx_ene[i]-1][blty_ene[i]+1]!=3&&bltx_ene[i]-1>=0&&blty_ene[i]+1>=0)bltdier_ene[i]=6;
            if(map[bltx_ene[i]+1][blty_ene[i]-1]!=3&&bltx_ene[i]+1>=0&&blty_ene[i]-1>=0)bltdier_ene[i]=7;
            break;
            case 6:if(map[bltx_ene[i]-1][blty_ene[i]-1]!=3&&bltx_ene[i]-1>=0&&blty_ene[i]-1>=0)bltdier_ene[i]=5;
            if(map[bltx_ene[i]+1][blty_ene[i]+1]!=3&&bltx_ene[i]+1>=0&&blty_ene[i]+1>=0)bltdier_ene[i]=8;
            break;
            case 7:if(map[bltx_ene[i]-1][blty_ene[i]-1]!=3&&bltx_ene[i]-1>=0&&blty_ene[i]-1>=0)bltdier_ene[i]=5;
            if(map[bltx_ene[i]+1][blty_ene[i]+1]!=3&&bltx_ene[i]+1>=0&&blty_ene[i]+1>=0)bltdier_ene[i]=8;
            break;
            case 8:if(map[bltx_ene[i]-1][blty_ene[i]+1]!=3&&bltx_ene[i]-1>=0&&blty_ene[i]+1>=0)bltdier_ene[i]=6;
            if(map[bltx_ene[i]+1][blty_ene[i]-1]!=3&&bltx_ene[i]+1>=0&&blty_ene[i]-1>=0)bltdier_ene[i]=7;
            break;
        }
    }
}

void shopping_mall_painting()//顾名思义 
{
    locate(1,3);
    cout<<"<";
    locate(1,7);cout<<"    ";
    locate(1,5);
    cout<<"$:"<<cnt1;
	locate(1,13);cout<<"    ";
	locate(1,11);
	cout<<"%:"<<A_life;
	locate(1,19);cout<<"    ";
	locate(1,17);
	cout<<".:"<<bltnum;
	
	int lshh=10;
	locate(5,lshh);
	cout<<"---------";
	locate(6,lshh);
	cout<<"|       |";
	locate(7,lshh);
	cout<<"|   .   |";
	locate(8,lshh);
	cout<<"|       |";
	locate(9,8);
	cout<<"子弹+10 25$";
    locate(11,lshh+4);
    cout<<"B";

    lshh=25;
    locate(5,lshh);
    cout<<"---------";
    locate(6,lshh);
    cout<<"|       |";
    locate(7,lshh);
    cout<<"|   %   |";
    locate(8,lshh);
    cout<<"|       |";
    locate(9,20);
    cout<<"生命上线+10 500$";
	locate(11,lshh+4);
	cout<<"B";
	
    lshh=40;
	locate(5,lshh);
    cout<<"---------";
    locate(6,lshh);
    cout<<"|       |";
    locate(7,lshh);
    cout<<"|  DIS  |";
    locate(8,lshh);
    cout<<"|       |";
    locate(9,lshh-2);
    cout<<"射程+50 500$";
    locate(11,lshh+4);
    cout<<"B";

    lshh=55;
    locate(5,lshh);
    cout<<"---------";
    locate(6,lshh);
    cout<<"|       |";
    locate(7,lshh);
    cout<<"|   =   |";
    locate(8,lshh);
    cout<<"|       |";
    locate(9,lshh-2);
    cout<<"前哨放置 100$";
	locate(11,lshh+4);
	cout<<"B";
	
	lshh=10;
	locate(13,lshh);
	cout<<"---------";
	locate(14,lshh);
	cout<<"|       |";
	locate(15,lshh);
	cout<<"|   +   |";
	locate(16,lshh);
	cout<<"|       |";
	locate(17,lshh-2);
	cout<<"岗亭放置 300$";
    locate(19,lshh+4);
    cout<<"B";

    locate(29,1);cout<<"选择/确定:空格键"; 
}
void shopping(int &money)//商铺 
{
    system("cls");
    int lshx,x_shop=10,y_shop=10;
    locate(x_shop-1,y_shop);cout<<"-";
    locate(x_shop+1,y_shop);cout<<"-";
    locate(x_shop,y_shop-1);cout<<"|";
    locate(x_shop,y_shop+1);cout<<"|";
    locate(x_shop-1,y_shop+1);cout<<"+";
    locate(x_shop+1,y_shop+1);cout<<"+";
    locate(x_shop-1,y_shop-1);cout<<"+";
    locate(x_shop+1,y_shop-1);cout<<"+";
    shopping_mall_painting(); 
    while(1)
    {
        shopping_mall_painting();
        lshx=getch();
        if(lshx==27){
            x1+=2;
            y1+=2;
            locate(0,0);
             for(int i=0;i<=30;i++)//map_printing
                {
                    for(int j=0;j<=118;j++)
                    {
                        if(map[i][j]==0)cout<<" ";
                        if(map[i][j]==1)cout<<'=';
                        if(map[i][j]==2)cout<<'W';
                        if(map[i][j]==3)cout<<char(1);
                        if(map[i][j]==4)cout<<'~';
                        if(map[i][j]==5)cout<<'!';
                        if(map[i][j]==6)cout<<'N';
                        if(map[i][j]==7)cout<<',';
                    }
                    cout<<endl;
                }
                return;//回到地图   
        }
        locate(x_shop-1,y_shop);cout<<" ";
        locate(x_shop+1,y_shop);cout<<" ";
        locate(x_shop,y_shop-1);cout<<" ";
        locate(x_shop,y_shop+1);cout<<" ";
        locate(x_shop-1,y_shop+1);cout<<" ";
        locate(x_shop+1,y_shop+1);cout<<" ";
        locate(x_shop-1,y_shop-1);cout<<" ";
        locate(x_shop+1,y_shop-1);cout<<" ";
        lshx=getch();
        if(lshx==27){
            x1+=2;
            y1+=2;
            locate(0,0);
             for(int i=0;i<=30;i++)//map_printing
                {
                    for(int j=0;j<=118;j++)
                    {
                        if(map[i][j]==0)cout<<" ";
                        if(map[i][j]==1)cout<<'=';
                        if(map[i][j]==2)cout<<'W';
                        if(map[i][j]==3)cout<<char(1);
                        if(map[i][j]==4)cout<<'~';
                        if(map[i][j]==5)cout<<'!';
                        if(map[i][j]==6)cout<<'N';
                        if(map[i][j]==7)cout<<',';
                    }
                    cout<<endl;
                }
                return;//回到地图   
        }
        switch(lshx)
        {
            case 72:if(x_shop>=2)x_shop--;break;
            case 75:if(y_shop>=2)y_shop--;break;
            case 80:if(x_shop<=28)x_shop++;break;
            case 77:if(y_shop<=116)y_shop++;break;
        }
        locate(x_shop-1,y_shop);cout<<"-";
        locate(x_shop+1,y_shop);cout<<"-";
        locate(x_shop,y_shop-1);cout<<"|";
        locate(x_shop,y_shop+1);cout<<"|";
        locate(x_shop-1,y_shop+1);cout<<"+";
        locate(x_shop+1,y_shop+1);cout<<"+";
        locate(x_shop-1,y_shop-1);cout<<"+";
        locate(x_shop+1,y_shop-1);cout<<"+";
        if(x_shop==11&&(y_shop==14||y_shop==29||y_shop==44))
        {
            locate(x_shop,y_shop);
            cout<<"B";
        } 
        if(x_shop==1&&y_shop==3)
        {
            locate(x_shop,y_shop);
            cout<<"<";
            int lshy=getch();
            if(lshy==' ')
            {
                x1+=2;
                y1+=2;
                locate(0,0);
                for(int i=0;i<=30;i++)//map_printing
                {
                    for(int j=0;j<=118;j++)
                    {
                        if(map[i][j]==0)cout<<" ";
                        if(map[i][j]==1)cout<<'=';
                        if(map[i][j]==2)cout<<'W';
                        if(map[i][j]==3)cout<<char(1);
                        if(map[i][j]==4)cout<<'~';
                        if(map[i][j]==5)cout<<'!';
                        if(map[i][j]==6)cout<<'N';
                        if(map[i][j]==7)cout<<',';
                    }
                    cout<<endl;
                }
                return;//回到地图 
            }
            else
            {
                locate(x_shop-1,y_shop);cout<<" ";
                locate(x_shop+1,y_shop);cout<<" ";
                locate(x_shop,y_shop-1);cout<<" ";
                locate(x_shop,y_shop+1);cout<<" ";
                locate(x_shop-1,y_shop+1);cout<<" ";
                locate(x_shop+1,y_shop+1);cout<<" ";
                locate(x_shop-1,y_shop-1);cout<<" ";
                locate(x_shop+1,y_shop-1);cout<<" ";
                lshx=getch();
                switch(lshx)
                {
                    case 72:if(x_shop>=2)x_shop--;break;
                    case 75:if(y_shop>=2)y_shop--;break;
                    case 80:if(x_shop<=28)x_shop++;break;
                    case 77:if(y_shop<=116)y_shop++;break;
                }
                locate(x_shop-1,y_shop);cout<<"-";
                locate(x_shop+1,y_shop);cout<<"-";
                locate(x_shop,y_shop-1);cout<<"|";
                locate(x_shop,y_shop+1);cout<<"|";
                locate(x_shop-1,y_shop+1);cout<<"+";
                locate(x_shop+1,y_shop+1);cout<<"+";
                locate(x_shop-1,y_shop-1);cout<<"+";
                locate(x_shop+1,y_shop-1);cout<<"+";
            }
        }
        if(x_shop==11&&y_shop==14)//bullet_buy 
        {
            locate(x_shop,y_shop);
            cout<<"B";
            int lshy=getch();
            if(lshy==' ')
            {
                if(cnt1>=25)
                {
                    cnt1-=25;
                    bltnum+=10;
                }
                else{
                    locate(10,16);
                    cout<<"!";//没钱 
                    int lshz=getch();
                    locate(10,16);
                    cout<<' ';
                }
            }
            else
            {
                locate(x_shop-1,y_shop);cout<<" ";
                locate(x_shop+1,y_shop);cout<<" ";
                locate(x_shop,y_shop-1);cout<<" ";
                locate(x_shop,y_shop+1);cout<<" ";
                locate(x_shop-1,y_shop+1);cout<<" ";
                locate(x_shop+1,y_shop+1);cout<<" ";
                locate(x_shop-1,y_shop-1);cout<<" ";
                locate(x_shop+1,y_shop-1);cout<<" ";
                lshx=getch();
                switch(lshx)
                {
                    case 72:if(x_shop>=2)x_shop--;break;
                    case 75:if(y_shop>=2)y_shop--;break;
                    case 80:if(x_shop<=28)x_shop++;break;
                    case 77:if(y_shop<=116)y_shop++;break;
                }
                locate(x_shop-1,y_shop);cout<<"-";
                locate(x_shop+1,y_shop);cout<<"-";
                locate(x_shop,y_shop-1);cout<<"|";
                locate(x_shop,y_shop+1);cout<<"|";
                locate(x_shop-1,y_shop+1);cout<<"+";
                locate(x_shop+1,y_shop+1);cout<<"+";
                locate(x_shop-1,y_shop-1);cout<<"+";
                locate(x_shop+1,y_shop-1);cout<<"+";
            }
        }
        if(x_shop==11&&y_shop==29)//life_buy
        {
            locate(x_shop,y_shop);
            cout<<"B";
            int lshy=getch();
            if(lshy==' ')
            {
                if(cnt1>=500)
                {
                    cnt1-=500;
                    A_life+=10;
                }
                else{
                    locate(10,31);
                    cout<<"!";
                    int lshz=getch();
                    locate(10,31);
                    cout<<' ';
                }
            }
            else
            {
                lshx=getch();
                locate(x_shop-1,y_shop);cout<<" ";
                locate(x_shop+1,y_shop);cout<<" ";
                locate(x_shop,y_shop-1);cout<<" ";
                locate(x_shop,y_shop+1);cout<<" ";
                locate(x_shop-1,y_shop+1);cout<<" ";
                locate(x_shop+1,y_shop+1);cout<<" ";
                locate(x_shop-1,y_shop-1);cout<<" ";
                locate(x_shop+1,y_shop-1);cout<<" ";
                switch(lshx)
                {
                    case 72:if(x_shop>=2)x_shop--;break;
                    case 75:if(y_shop>=2)y_shop--;break;
                    case 80:if(x_shop<=28)x_shop++;break;
                    case 77:if(y_shop<=116)y_shop++;break;
                }
                locate(x_shop-1,y_shop);cout<<"-";
                locate(x_shop+1,y_shop);cout<<"-";
                locate(x_shop,y_shop-1);cout<<"|";
                locate(x_shop,y_shop+1);cout<<"|";
                locate(x_shop-1,y_shop+1);cout<<"+";
                locate(x_shop+1,y_shop+1);cout<<"+";
                locate(x_shop-1,y_shop-1);cout<<"+";
                locate(x_shop+1,y_shop-1);cout<<"+";
            }
        }
        if(x_shop==11&&y_shop==44)//DIS_blt_buy
        {
            locate(x_shop,y_shop);
            cout<<"B";
            int lshy=getch();
            if(lshy==' ')
            {
                if(cnt1>=500)
                {
                    cnt1-=500;
                    DIS_blt+=50;
                }
                else{
                    locate(10,46);
                    cout<<"!";
                    int lshz=getch();
                    locate(10,46);
                    cout<<' ';
                }
            }
            else
            {
                lshx=getch();
                locate(x_shop-1,y_shop);cout<<" ";
                locate(x_shop+1,y_shop);cout<<" ";
                locate(x_shop,y_shop-1);cout<<" ";
                locate(x_shop,y_shop+1);cout<<" ";
                locate(x_shop-1,y_shop+1);cout<<" ";
                locate(x_shop+1,y_shop+1);cout<<" ";
                locate(x_shop-1,y_shop-1);cout<<" ";
                locate(x_shop+1,y_shop-1);cout<<" ";
                switch(lshx)
                {
                    case 72:if(x_shop>=2)x_shop--;break;
                    case 75:if(y_shop>=2)y_shop--;break;
                    case 80:if(x_shop<=28)x_shop++;break;
                    case 77:if(y_shop<=116)y_shop++;break;
                }
                locate(x_shop-1,y_shop);cout<<"-";
                locate(x_shop+1,y_shop);cout<<"-";
                locate(x_shop,y_shop-1);cout<<"|";
                locate(x_shop,y_shop+1);cout<<"|";
                locate(x_shop-1,y_shop+1);cout<<"+";
                locate(x_shop+1,y_shop+1);cout<<"+";
                locate(x_shop-1,y_shop-1);cout<<"+";
                locate(x_shop+1,y_shop-1);cout<<"+";
            }
        }
        if(x_shop==11&&y_shop==59)//shelter_buy
        {
            locate(x_shop,y_shop);
            cout<<"B";
            int lshy=getch();
            if(lshy==' ')
            {
                if(cnt1>=100)
                {
                    cnt1-=100;
                    numshelter++;
                }
                else{
                    locate(10,61);
                    cout<<"!";
                    int lshz=getch();
                    locate(10,61);
                    cout<<' ';
                }
            }
            else
            {
                lshx=getch();
                locate(x_shop-1,y_shop);cout<<" ";
                locate(x_shop+1,y_shop);cout<<" ";
                locate(x_shop,y_shop-1);cout<<" ";
                locate(x_shop,y_shop+1);cout<<" ";
                locate(x_shop-1,y_shop+1);cout<<" ";
                locate(x_shop+1,y_shop+1);cout<<" ";
                locate(x_shop-1,y_shop-1);cout<<" ";
                locate(x_shop+1,y_shop-1);cout<<" ";
                switch(lshx)
                {
                    case 72:if(x_shop>=2)x_shop--;break;
                    case 75:if(y_shop>=2)y_shop--;break;
                    case 80:if(x_shop<=28)x_shop++;break;
                    case 77:if(y_shop<=116)y_shop++;break;
                }
                locate(x_shop-1,y_shop);cout<<"-";
                locate(x_shop+1,y_shop);cout<<"-";
                locate(x_shop,y_shop-1);cout<<"|";
                locate(x_shop,y_shop+1);cout<<"|";
                locate(x_shop-1,y_shop+1);cout<<"+";
                locate(x_shop+1,y_shop+1);cout<<"+";
                locate(x_shop-1,y_shop-1);cout<<"+";
                locate(x_shop+1,y_shop-1);cout<<"+";
            }
        }
        if(x_shop==19&&y_shop==14)//bltshelter_buy
        {
            locate(x_shop,y_shop);
            cout<<"B";
            int lshy=getch();
            if(lshy==' ')
            {
                if(cnt1>=300)
                {
                    cnt1-=300;
                    numbltshelter++;
                }
                else{
                    locate(18,16);
                    cout<<"!";
                    int lshz=getch();
                    locate(18,16);
                    cout<<' ';
                }
            }
            else
            {
                lshx=getch();
                locate(x_shop-1,y_shop);cout<<" ";
                locate(x_shop+1,y_shop);cout<<" ";
                locate(x_shop,y_shop-1);cout<<" ";
                locate(x_shop,y_shop+1);cout<<" ";
                locate(x_shop-1,y_shop+1);cout<<" ";
                locate(x_shop+1,y_shop+1);cout<<" ";
                locate(x_shop-1,y_shop-1);cout<<" ";
                locate(x_shop+1,y_shop-1);cout<<" ";
                switch(lshx)
                {
                    case 72:if(x_shop>=2)x_shop--;break;
                    case 75:if(y_shop>=2)y_shop--;break;
                    case 80:if(x_shop<=28)x_shop++;break;
                    case 77:if(y_shop<=116)y_shop++;break;
                }
                locate(x_shop-1,y_shop);cout<<"-";
                locate(x_shop+1,y_shop);cout<<"-";
                locate(x_shop,y_shop-1);cout<<"|";
                locate(x_shop,y_shop+1);cout<<"|";
                locate(x_shop-1,y_shop+1);cout<<"+";
                locate(x_shop+1,y_shop+1);cout<<"+";
                locate(x_shop-1,y_shop-1);cout<<"+";
                locate(x_shop+1,y_shop-1);cout<<"+";
            }
        }
    }
}
bool intro_1;
bool intro_2;
bool intro_3;
bool intro_4;
bool intro_5;
bool intro_6;
bool intro_7;
bool if_O_more=1;
bool if_K_more=1;
bool if_R_more=1;
bool if_blt_ene;
bool reporter;
void main1()
{
    while(1)
    {
        locate(0,0);cout<<"@";
//      locate(0,20);cout<<second<<' '<<fir;
        second=clock();
        if((second-fir)>=300&&luogu==0)//一秒两次左右 
        {
            fir=clock();cntrelive=0;
            luogu=1;
            second=time(NULL);
            O(1),o(1);
            factcnt=cnt;
            _jing_(1);
            K(1);
            R(1);

            if((second-first)%(60*5)){
                if_O_more^=1;
                if_K_more^=1;
            }

            if((second-first)%(60*7)){
                if_R_more^=1;
            }
            if((second-first)%(60*14)==0)
                if(if_R_more==0){
                    for(int i=1;i<=cntR;i++)
                    {
                        if(liveR[i]==1)continue;
                        locate(xR[i],yR[i]);
                        cout<<"H";
                    }
                    cntR=0;
                }

            if((int)difftime(second,first)%50==0)//Shelter Bullet ++ 
            {
                for(int cntcntbltslt=1;cntcntbltslt<=cntbltslt;cntcntbltslt++)
                {
                    bltslt[bltsltx[cntcntbltslt]][bltslty[cntcntbltslt]]++;
                }
            }
            if((int)difftime(second,first)%25==0&&cnt2>=1)//回血 
            {
                cnt2--;
            }
            if(map[x1][y1]==1||map[x1][y1]==7)//安全屋回血 
            {
                if(cnt2>=1)
                    cnt2--;
                onfire=false;
            }
            locate(30,0),cout<<factcnt;
            if((int)difftime(second,first)%abs(11-diffy)==0&&((gigantic==0&&cnt<=99*diffy)||(gigantic==1&&(cnt<=499*diffy&&factcnt<=15*diffy))))//#_number++ 
            {
                cnt++;
                if(gigantic==1)
                {
                    for(int cntcnt=cnt;cntcnt<=cnt+9;cntcnt++)live[cntcnt]=0;
                    cnt+=9;
                }
                if(cnt==1&&intro_1==0){
                    intro_1=1;
                    MessageBox(NULL,"#: 触碰减血!\n$: 触碰加分!","@",MB_OK);
				}
	            live[cnt]=0;
			}
			else if(gigantic==1&&factcnt<=15*diffy)cntrelive=1;
			else if(cnt>99*diffy||(gigantic==1&&cnt>499*diffy))
			{
				for(int i=1;i<=cnt;i++)
				{
					if(live[i]==0){
						live[i]=1;
						continue;
					}
					locate(x[i],y[i]);
					cout<<"H";
				}
				cnt=0;
			}
			if((int)difftime(second,first)%50==0&&cntO<=5*diffy&&if_O_more==0){//O_number++
				cntO++;
	            if(gigantic==1)
				{
					for(int cntcnt=cntO;cntcnt<=cntO+9;cntcnt++)liveO[cntcnt]=0;
					cntO+=9;
				}
	            if(cntO==1&&intro_2==0){
	            	intro_2=1;
	            	MessageBox(NULL,"O: 周围产生#,抓住获得5枚子弹!","@",MB_OK);
				}
				liveO[cntO]=0;
			}
			else if(cntO>5*diffy)
			{
				for(int i=1;i<=cntO;i++)
				{
					if(liveO[i]==1)continue;
					locate(xO[i],yO[i]);
					cout<<"H";
				}
				cntO=0;
			}
			if((int)difftime(second,first)%50==0&&(cntK<=5*diffy||gigantic==1)&&if_K_more==0){//K_number++
				cntK++;
	            if(gigantic==1)
				{
					for(int cntcnt=cntK;cntcnt<=cntK+4;cntcnt++)liveK[cntcnt]=0;
					cntK+=4;
				}
	            if(cntK==1&&intro_3==0){
	            	intro_3=1;
	            	MessageBox(NULL,"K: 发射子弹,击毙后加50分!","@",MB_OK);
				}
				liveK[cntK]=0;
			}
			else if((cntK>5*diffy&&gigantic==0)||(cntK>30*diffy&&gigantic==1))
			{
				for(int i=1;i<=cntK;i++)
				{
					if(liveK[i]==1)continue;
					locate(xK[i],yK[i]);
					cout<<"H";
				}
				cntK=0;
			}
			if((int)difftime(second,first)%100==0&&(cntR<=5*diffy||gigantic==1)&&if_R_more==0){//R_number++
				cntR++;
				while(map[xR[cntR]][yR[cntR]]==3||map[xR[cntR]][yR[cntR]]==1||map[xR[cntR]][yR[cntR]]==6||map[xR[cntR]][yR[cntR]]==7)xR[cntR]=rand()%26+1,yR[cntR]=rand()%116+1;
	            if(gigantic==1)
				{
					for(int cntcnt=cntR;cntcnt<=cntR+19;cntcnt++)
					{
						while(map[xR[cntcnt]][yR[cntcnt]]==3||map[xR[cntcnt]][yR[cntcnt]]==1||map[xR[cntcnt]][yR[cntcnt]]==6||map[xR[cntcnt]][yR[cntcnt]]==7)xR[cntcnt]=rand()%26+1,yR[cntcnt]=rand()%116+1;
						liveR[cntcnt]=0;
					}
					cntR+=19;
				}
	            if(cntR==1&&intro_7==0){
	            	intro_7=1;
	            	MessageBox(NULL,"R: 请远离。","@",MB_OK);
				}
				liveR[cntR]=0;
			}
			else if((cntR>5*diffy&&gigantic==0)||(cntR>30*diffy&&gigantic==1))
			{
				for(int i=1;i<=cntR;i++)
				{
					if(liveR[i]==1)continue;
					locate(xR[i],yR[i]);
					cout<<"H";
				}
				cntR=0;
			}
            if((int)difftime(second,first)%50==10)//#_number++(o) 
            {
                for(int i=0;i<=cntO;i++)
                {
                	if(liveO[i]==1)continue;//O已经寄了 
                    srand(time(0));
                    if(rand()%20==1)continue;
                    for(int j=0;j<4;j++)
                    {
                        if(xO[i]+2*direct[j][0]>0&&yO[i]+2*direct[j][1]>0&&map[xO[i]+2*direct[j][0]][yO[i]+2*direct[j][1]]!=3)
                        {
                            xo[++cnto]=xO[i]+2*direct[j][0];
                            yo[cnto]=yO[i]+2*direct[j][1];
                            liveo[cnto]=0;
                        }
                    }
                }
				if(cnto>99*diffy)
				{
					for(int i=1;i<=cnto;i++)
					{
						if(liveo[i]==0){
							liveo[i]=1;
							continue;
						}
						locate(xo[i],yo[i]);
						cout<<"H";
					}
					cnto=0;
				}
            }
            int rang=rand()%5;
            if(rang==1)
            {
            	xo[++cnto]=bossx;
        		yo[cnto]=bossy;
        		liveo[cnto]=0;
			}
            for(int i=0;i<=cntK;i++)//blt_number++(K) 
            {
            	if(liveK[i]==1)continue;//K已经寄了 
            	if(cntblt_ene>50)continue;
                if(rand()%15!=1)continue;
                if(abs(xK[i]-x1)+abs(yK[i]-y1)>=25)continue;
                int j;
                if(rand()%2==0)
                {
                	j=rand()%4;
                	cntblt_ene++;
                	bltdier_ene[cntblt_ene]=j+5;
                	liveblt_ene[cntblt_ene]=1;
					bltx_ene[cntblt_ene]=xK[i],blty_ene[cntblt_ene]=yK[i];
				}
				else{
					j=rand()%4;
                	cntblt_ene++;
                	bltdier_ene[cntblt_ene]=j;
                	liveblt_ene[cntblt_ene]=1;
					bltx_ene[cntblt_ene]=xK[i],blty_ene[cntblt_ene]=yK[i];
				}
            }
            for(int i=1;i<=cntR;i++)//R_BOOM
            {
            	if(liveR[i]==1)continue;
            	if(abs(xR[i]-x1)+abs(yR[i]-y1)<=2){
            		liveR[i]=1;
            		map[xR[i]][yR[i]]=5;
            		locate(xR[i],yR[i]),cout<<"!";
            		for(int ii=-1;ii<=1;ii++){
            			for(int jj=-1;jj<=1;jj++){
            				if(xR[i]+ii==29||yR[i]+jj==117)continue;
            				if(rand()%2==1){
            					map[xR[i]+ii][yR[i]+jj]=5;
            					locate(xR[i]+ii,yR[i]+jj),cout<<"!";
							}
						}
					}
				}
			}
            if(abs(bossx-x1)+abs(bossy-y1)<=10&&cntblt_ene<=30)//boss_bullets
            {
            		for(int j=1;j<=8;j++)
            		{
	                	cntblt_ene++;
	                	bltdier_ene[cntblt_ene]=j;
	                	liveblt_ene[cntblt_ene]=1;
						bltx_ene[cntblt_ene]=bossx,blty_ene[cntblt_ene]=bossy;
					}
            		for(int j=1;j<=8;j++)
            		{
						for(int jj=1;jj<=3;jj++)
						{
		                	cntblt_ene++;
		                	bltdier_ene[cntblt_ene]=j;
		                	liveblt_ene[cntblt_ene]=1;
							bltx_ene[cntblt_ene]=bossx,blty_ene[cntblt_ene]=bossy+1-j;
						}
					}
			}
            if((int)difftime(second,first)%10==5)//BOSS
            {
            	ifBossMove=1;
            	direboss++;
            	int ranf=rand()%3;
            	if(ranf==2)direboss++;
			}
            if((int)difftime(second,first)%10==10)//BOSS
            {
            	ifBossMove=0;
			}
			if(ifBossMove==1)
            {
            	direboss%=5;
            	BOSS();
			}
			else{
                locate(bossx,bossy);cout<<char(2);
                locate(bossx-1,bossy);cout<<"#";
                locate(bossx+1,bossy);cout<<"#";
                locate(bossx,bossy-1);cout<<"#";
                locate(bossx,bossy+1);cout<<"#";
			}
            if(cnt2<0)cnt2=0;//防止血量越界 
            if(map[x1][y1]==5)//踩上岩浆 
            {
	            if(intro_4==0){
	            	intro_4=1;
	            	MessageBox(NULL,"快跳进水里!","@",MB_OK);
				}
                onfire=true;//寄 
            }
            if(map[x1][y1]==4)//游泳 
            {
                onfire=false;//芜湖~ 
                uinwater++;
	            if(uinwater>=10&&intro_5==0){
	            	intro_5=1;
	            	MessageBox(NULL,"快回到岸上!","@",MB_OK);
				}
            }
            else
            {
                uinwater=0;
            }
            if(onfire==true&&(int)(difftime(first,second))%3==0)//闪屏警告 
            {
                cnt2++;
                locate(x1,y1);
                cout<<"!";
                Sleep(50);
                locate(x1,y1);
                Color(bBLUE,bRED,bGREEN,bINTE);
                cout<<"@";
                Color(fBLUE,fRED,fGREEN,fINTE);
                Sleep(50);
                locate(x1,y1);
                cout<<"!";
                Sleep(50);
                locate(x1,y1);
                Color(bBLUE,bRED,bGREEN,bINTE);
                cout<<"@";
                Color(fBLUE,fRED,fGREEN,fINTE);
                Sleep(50);
            }
            if(uinwater>=10)//闪屏警告 
            {
                cnt2++;
                uinwater-=3;
                locate(x1,y1);
                cout<<"~";
                Sleep(50);
                locate(x1,y1);
                Color(bBLUE,bRED,bGREEN,bINTE);
                cout<<"@";
                Color(fBLUE,fRED,fGREEN,fINTE);
                Sleep(50);
                locate(x1,y1);
                cout<<"~";
                Sleep(50);
                locate(x1,y1);
                Color(bBLUE,bRED,bGREEN,bINTE);
                cout<<"@";
                Color(fBLUE,fRED,fGREEN,fINTE);
                Sleep(50);
            }
            if(onfire==true)
            {
                locate(3,0);
                cout<<"!!!!";//信息码 
            }
            else 
            {
                locate(3,0);
                cout<<"safe     ";//信息码 
            }
            if(map[x1][y1]==4)//信息码 
            {
                locate(3,0);
                for(int i=1;i<=10-uinwater;i++)
                {
                    cout<<"o";
                }
                for(int i=1;i<=uinwater;i++)
                {
                    cout<<" ";
                }
            }
            if(cnt2>A_life-5)
            {
   	            if(intro_6==0){
	            	intro_6=1;
	            	MessageBox(NULL,"安全屋回血!","@",MB_OK);
				}
			}
            if(cnt2>A_life||(map[14][91]!=6&&map[13][91]!=6&&map[14][92]!=6&&map[13][92]!=6))//寄 
            {
                first=time(NULL);
                cout<<"\n死亡  "<<endl;
                Sleep(3000);
                cout<<"得分:"<<time(NULL)-defen<<endl;
                Sleep(5000);getch();
                cnt2=0;
                cnt1=0;
                system("cls");
                first=time(NULL);
                main();
            }
            shuafen++;
            locate(x1,y1);
            Color(bBLUE,bRED,bGREEN,bINTE);
            cout<<"@";//防止卡帧
            Color(fBLUE,fRED,fGREEN,fINTE); 
            if(shuafen%500==10)
            {
                cntfen++; 
                srand(time(0));
                fenx[cntfen%10]=rand()%5+3;
                feny[cntfen%10]=rand()%5+5;
                fenlive[cntfen%10]=1;
                if(cntfen>=10)
                {
                    locate(fenx[cntfen%10],feny[cntfen%10]);
                    cout<<" ";
                }
            }
            for(int i=0;i<=cntfen;i++)
            {
                if(fenlive[i%10]==0)continue;
                locate(fenx[i%10],feny[i%10]);
                cout<<"*";//双倍经验! 
            }
            for(int i=0;i<=cntO;i++)//吃井母 
            {
                if(liveO[i%9999])continue;
                srand(time(0));
                if(rand()%250==1)continue;
                if(x1==xO[i%9999]&&y1==yO[i%9999])
                {
                    if(map[x1][y1]!=1)
                    {
                        locate(x1,y1);
                        Color(bBLUE,bRED,bGREEN,bINTE);
                        cout<<"@",cnt1+=2,liveO[i%9999]=1;
                        Color(fBLUE,fRED,fGREEN,fINTE);
                        xO[i%9999]=rand()%26+1,yO[i%9999]=rand()%75+1;
						while(map[xO[i]][yO[i]]==3)xO[i]=rand()%26+1,yO[i]=rand()%75+1;
                        bltnum+=5;
                        Sleep(10);
                    }
                }
                if(map[xO[i%9999]][yO[i%9999]]==5)//岩浆烧井母 
                {
                    liveO[i%9999]=1;
                    compleO(i%9999,1,0);
                    xO[i%9999]=rand()%26+1,yO[i%9999]=rand()%75+1;
					while(map[xO[i]][yO[i]]==3)xO[i]=rand()%26+1,yO[i]=rand()%75+1;
                }
            }
            for(int i=0;i<=cnt;i++)//#_meeting 
            {
                if(live[i%9999])continue;
                srand(time(0));
                if(rand()%250==1)continue;
                if(x1==x[i%9999]&&y1==y[i%9999])
                {
                    if(map[x1][y1]!=1)
                    {
                        locate(x1,y1);
                        if(kkk[i%9999]>=20){
                            Color(bBLUE,bRED,bGREEN,bINTE);
							cout<<"@",cnt1++,live[i%9999]=1;//耶
                            Color(fBLUE,fRED,fGREEN,fINTE);
							x[i]=rand()%26+1,y[i]=rand()%75+1;
							while(map[x[i]][y[i]]==3)x[i]=rand()%26+1,y[i]=rand()%75+1;
						}
                        else //寄 
                        {
                            cout<<"#",cnt2++,kkk03++;
                    	}
                        locate(0,2);cout<<"   ";//防卡帧+在线输出 
                        locate(0,0);cout<<"@:"<<cnt1<<endl;
                        locate(1,2);cout<<"   ";
                        locate(1,0);cout<<"%:"<<A_life-cnt2<<endl;
                        locate(2,2);cout<<"   ";
                        locate(2,0);cout<<".:"<<bltnum;
                    }
                }
                if(map[x[i%9999]][y[i%9999]]==5)//岩浆烧# 
                {
                    live[i%9999]=1;
                    comple(i%9999,1,0);
					x[i]=rand()%26+1,y[i]=rand()%75+1;
					while(map[x[i]][y[i]]==3)x[i]=rand()%26+1,y[i]=rand()%75+1;
                }
                if(map[x[i%9999]][y[i%9999]]==4)//水淹# 
                {
                    inwater[i%9999]++;
                    if(inwater[i%9999]==5){
						comple(i%9999,1,0),live[i%9999]=1;
						x[i]=rand()%26+1,y[i]=rand()%75+1;
						while(map[x[i]][y[i]]==3)x[i]=rand()%26+1,y[i]=rand()%75+1;
					}
                }
            }
            for(int i=0;i<=cnto;i++)//#_meeting(o) 
            {
                if(liveo[i%9999])continue;
                srand(time(0));
                if(rand()%250==1)continue;
                if(x1==xo[i%9999]&&y1==yo[i%9999])
                {
                    if(map[x1][y1]!=1)
                    {
                        locate(x1,y1);
                        if(kko[i%9999]>=20)Color(bBLUE,bRED,bGREEN,bINTE),cout<<"@",Color(fBLUE,fRED,fGREEN,fINTE),cnt1++,liveo[i%9999]=1;
                        else 
                        {
                            cout<<"#",cnt2++,kkk03++;
                    	}
                        locate(0,2);cout<<"   ";
                        locate(0,0);cout<<"@:"<<cnt1<<endl;
                        locate(1,2);cout<<"   ";
                        locate(1,0);cout<<"%:"<<A_life-cnt2<<endl;
                        locate(2,2);cout<<"   ";
                        locate(2,0);cout<<".:"<<bltnum;
                    }
                }
                if(map[xo[i%9999]][yo[i%9999]]==5)
                {
                    liveo[i%9999]=1;
                    compleo(i%9999,1,0);
                }
                if(map[xo[i%9999]][yo[i%9999]]==4)
                {
                    inwatero[i%9999]++;
                    if(inwatero[i%9999]==5)
                    compleo(i%9999,1,0),liveo[i%9999]=1;
                }
            }
            if(map[x1][y1]==6)shopping(cnt1);//go_shopping
        }
        else luogu=0;
        if((fir-second)%50==0&&luogu2==0)//让子弹飞 
        {
            luogu2=1;
            for(int i=0;i<=cntblt;i++)
            {
                if(liveblt[i]==1)Bullet(i),blt[i]++;
                if(blt[i]==DIS_blt)blt[i]=0,liveblt[i]=0,compleblt(i,1,0);
                locate(x1,y1);
				Color(bBLUE,bRED,bGREEN,bINTE);
                cout<<"@";//防止被子弹淹没 
                Color(fBLUE,fRED,fGREEN,fINTE);
            }
            for(int i=0;i<=cntblt_ene;i++)
            {
                if(liveblt_ene[i]==1)Bullet_ene(i),blt_ene[i]++;
                if(blt_ene[i]==50)blt_ene[i]=0,liveblt_ene[i]=0,compleblt_ene(i,1,0);
            }
        }
        else luogu2=0;
//--------------------------------------------显著的分界线-------------------------------------------------
        bool lshbool=0;
        for(int i=0;i<=cntblt;i++)
        {
            if(liveblt[i]==1)
			{
				lshbool=1;
				break;
			} 
        }
        if(!lshbool)cntblt=0;
        lshbool=0;
        for(int i=0;i<=cntblt_ene;i++)
        {
            if(liveblt_ene[i]==1)
			{
				lshbool=1;
				break;
			} 
        }
        if(!lshbool)cntblt_ene=0;//可持续化发展 
        
        for(int i=0;i<=cnt;i++)//防止拿不到经验 
        {
            if(live[i%9999])continue;
            srand(time(0));
            if(rand()%250==1)continue;
            if(x1==x[i%9999]&&y1==y[i%9999])
            {
                if(map[x1][y1]!=1)
                {
                    locate(x1,y1);
                    if(kkk[i%9999]>=20)Color(bBLUE,bRED,bGREEN,bINTE),cout<<"@",Color(fBLUE,fRED,fGREEN,fINTE),cnt1++,live[i%9999]=1;
                }
            }
        }
        for(int i=0;i<=cnto;i++)
        {
            if(liveo[i%9999])continue;
            srand(time(0));
            if(rand()%250==1)continue;
            if(x1==xo[i%9999]&&y1==yo[i%9999])
            {
                if(map[x1][y1]!=1)
                {
                    locate(x1,y1);
                    if(kko[i%9999]>=20)Color(bBLUE,bRED,bGREEN,bINTE),cout<<"@",Color(fBLUE,fRED,fGREEN,fINTE),cnt1++,liveo[i%9999]=1;
                }
            }
        }
        for(int i=0;i<=cntfen;i++)//刷分 
        {
            if(fenlive[i%10]==0)continue;
            if(x1==fenx[i%10]&&y1==feny[i%10])
            {
                cnt1+=cnt1/2;
                fenlive[i%10]=0;
            }
        }
        while(kbhit())//如果有输入 
        {
            locate(0,2);cout<<"   ";
            locate(0,0);cout<<"@:"<<cnt1<<endl;
            locate(1,2);cout<<"   ";
            locate(1,0);cout<<"%:"<<A_life-cnt2<<endl;
            locate(2,2);cout<<"   ";
            locate(2,0);cout<<".:"<<bltnum;
            int lshx;
            lshx=getch();
            if(lshx!='i'&&lshx!='j'&&lshx!='k'&&lshx!='l'&&lshx!='u'&&lshx!='o'&&lshx!='m'&&lshx!=','&&lshx!=' ')
            {
                lshx=getch();
                switch(lshx)
                {
                    case 72:dir=0;break;
                    case 75:dir=1;break;
                    case 80:dir=2;break;
                    case 77:dir=3;break;
                    default:
                        main1();
                }
                if(x1+direct[dir][1]<0||y1+direct[dir][0]<0||map[x1+direct[dir][1]][y1+direct[dir][0]]==3)main1();
                comple1(1,0);
                x1+=direct[dir][1];
                y1+=direct[dir][0];
                locate(x1,y1);
				Color(bBLUE,bRED,bGREEN,bINTE);
                cout<<"@";
                Color(fBLUE,fRED,fGREEN,fINTE);
            }
            if(bltnum>0)//可以发射子弹 
            { 
	            switch(lshx)
	            {
	                case 'i':cntblt++;liveblt[cntblt]=1;bltx[cntblt]=x1,blty[cntblt]=y1;bltdier[cntblt]=1;bltnum--;break;
	                case 'k':cntblt++;liveblt[cntblt]=1;bltx[cntblt]=x1,blty[cntblt]=y1;bltdier[cntblt]=2;bltnum--;break;
	                case 'j':cntblt++;liveblt[cntblt]=1;bltx[cntblt]=x1,blty[cntblt]=y1;bltdier[cntblt]=3;bltnum--;break;
	                case 'l':cntblt++;liveblt[cntblt]=1;bltx[cntblt]=x1,blty[cntblt]=y1;bltdier[cntblt]=4;bltnum--;break;
	                case 'u':cntblt++;liveblt[cntblt]=1;bltx[cntblt]=x1,blty[cntblt]=y1;bltdier[cntblt]=5;bltnum--;break;
	                case 'o':cntblt++;liveblt[cntblt]=1;bltx[cntblt]=x1,blty[cntblt]=y1;bltdier[cntblt]=6;bltnum--;break;
	                case 'm':cntblt++;liveblt[cntblt]=1;bltx[cntblt]=x1,blty[cntblt]=y1;bltdier[cntblt]=7;bltnum--;break;
	                case ',':cntblt++;liveblt[cntblt]=1;bltx[cntblt]=x1,blty[cntblt]=y1;bltdier[cntblt]=8;bltnum--;break;
	            }
	        }
	        if(numshelter>0)
	        {
	        	if(lshx==' '&&map[x1][y1]!=1)numshelter--,map[x1][y1]=1;
	        	locate(31,2),cout<<"       ";
	        	locate(31,0),cout<<"=:"<<numshelter;
			}
			if(numbltshelter>0)
			{
				if(lshx==' '&&map[x1][y1]==1)numbltshelter--,cntbltslt++,bltsltx[cntbltslt]=x1,bltslty[cntbltslt]=y1,map[x1][y1]=7;
	        	locate(32,2),cout<<"       ";
	        	locate(32,0),cout<<"+:"<<numbltshelter;
			}
        }
    }
}
bool chenzhe;//是否可以出现终点 
int x_,y_;//终点坐标 
int CNT;//总分记录 
void comple_(int i,int y)//U_clean
{
    while(--i>=y)
    {
        switch(map[x_][y_+i])
        {
            case 0:locate(x_,y_+i);cout<<' ';break;
            case 1:locate(x_,y_+i);cout<<'=';break;
            case 2:locate(x_,y_+i);cout<<'W';break;
            case 3:locate(x_,y_+i);cout<<char(1);break;
            case 4:locate(x_,y_+i);cout<<'~';break;
            case 5:locate(x_,y_+i);cout<<'!';break;
            case 6:locate(x_,y_+i);cout<<'N';break;
            case 7:locate(x_,y_+i);cout<<'+';break;
        }
    }
}
void main2(int dif)
{
    while(1)
    {
    	locate(0,0);cout<<"@";
        srand(time(0));
        second=clock();
        second%=100000;
        if(cnt1>=dif*10&&chenzhe==0)
        {
            chenzhe=1; 
            x_=10+rand()%20;
            y_=10+rand()%20;
            while(map[x_][y_]==3)
            {
                x_=10+rand()%20;
                y_=10+rand()%20;
            }
        }
        if(cnt1>=dif*10&&chenzhe==1)
        {
            locate(x_,y_);cout<<"U";//终点输出 
        }
        if(x_==x1&&y_==y1)
        {
            CNT+=cnt1;
            cnt1=cnt2=0;
            cout<<"通关!\n";
            Sleep(3*1000);
            comple_(10,0);
            x_=y_=-1;
            chenzhe=0;
            x1=10;y1=100;
            if(dif==10)
            {
                cout<<"恭喜你,勇士!"<<endl; 
                Sleep(5000);
                main();
            }
            main2(dif+1); 
        }
        if((fir-second)%250==0&&luogu==0)
        {
            luogu=1;
            second=time(NULL);
            srand(time(0));
            if(rand()%10!=0)
            O(1),o(1);
            srand(time(0));
            if(rand()%10!=1)
            _jing_(1);
            if((int)difftime(second,first)%25==0&&cnt2>=1)//回血 
			{
				cnt2--;
			}
            if(map[x1][y1]==1&&cnt2>=1)//安全屋回血 
			{
				cnt2--;
			}
            int lsh_cnt=cnt;
			if((int)difftime(second,first)%abs(11-dif)==0&&cnt<=99*dif)//#_number++ 
			{
	            cnt++;
			}
			else if(cnt>-99*dif)
			{
				for(int i=1;i<=cnt;i++)
				{
					if(live[i]==1)continue;
					locate(x[i],y[i]);
					cout<<"H";
				}
				cnt=0;
			}
            while(++lsh_cnt<=cnt)live[lsh_cnt]=0;
			if((int)difftime(second,first)%50==0){
				cntO++;liveO[cntO]=0;
			}
            if((int)difftime(second,first)%50==10)
            {
                for(int i=0;i<=cntO;i++)
                {
                	if(liveO[i]==1)continue; 
                    srand(time(0));
                    if(rand()%20==1)continue;
                    for(int j=0;j<4;j++)
                    {
                        if(xO[i]+2*direct[j][0]>0&&yO[i]+2*direct[j][1]>0&&map[xO[i]+2*direct[j][0]][yO[i]+2*direct[j][1]]!=3)
                        {
                            xo[++cnto]=xO[i]+2*direct[j][0];
                            yo[cnto]=yO[i]+2*direct[j][1];
                            liveo[cnto]=0;
                        }
                    }
                }
            }
            if(cnt2<0)cnt2=0;
            if(map[x1][y1]==5)
            {
                onfire=true;
            }
            if(map[x1][y1]==4)
            {
                onfire=false;
                uinwater++;
            }
            else
            {
                uinwater=0;
            }
            if(onfire==true&&(int)(difftime(first,second))%3==0)
            {
                cnt2++;
                locate(x1,y1);
                cout<<"!";
                Sleep(50);
                locate(x1,y1);
                cout<<"@";
                Sleep(50);
                locate(x1,y1);
                cout<<"!";
                Sleep(50);
                locate(x1,y1);
                cout<<"@";
                Sleep(50);
            }
            if(uinwater>=10)
            {
                cnt2++;
                uinwater-=3;
                locate(x1,y1);
                cout<<"~";
                Sleep(50);
                locate(x1,y1);
                cout<<"@";
                Sleep(50);
                locate(x1,y1);
                cout<<"~";
                Sleep(50);
                locate(x1,y1);
                cout<<"@";
                Sleep(50);
            }
            if(onfire==true)
            {
                locate(3,0);
                cout<<"!!!!";
            }
            else 
            {
                locate(3,0);
                cout<<"safe     ";
            }
            if(map[x1][y1]==4)
            {
                locate(3,0);
                for(int i=1;i<=10-uinwater;i++)
                {
                    cout<<"o";
                }
                for(int i=1;i<=uinwater;i++)
                {
                    cout<<" ";
                }

            }
            if(cnt2>A_life)
            {
                first=time(NULL);  
                cout<<"\n死亡  "<<endl;
                Sleep(3000);
                cout<<"得分:"<<cnt1<<endl;
                Sleep(5000);
                cnt2=0;
                cnt1=0;
                system("cls");
                first=time(NULL);
                main();
            }
            shuafen++;
            locate(x1,y1);
            cout<<"@";
            if(shuafen%500==10)
            {
                cntfen++; 
                srand(time(0));
                fenx[cntfen%10]=rand()%5+3;
                feny[cntfen%10]=rand()%5+5;
                fenlive[cntfen%10]=1;
                if(cntfen>=10)
                {
                    locate(fenx[cntfen%10],feny[cntfen%10]);
                    cout<<" ";
                }
            }
            for(int i=0;i<=cntfen;i++)
            {
                if(fenlive[i%10]==0)continue;
                locate(fenx[i%10],feny[i%10]);
                cout<<"*";
            }
            for(int i=0;i<=cntO;i++)
            {
                if(liveO[i%9999])continue;
                srand(time(0));
                if(rand()%250==1)continue;
                if(x1==xO[i%9999]&&y1==yO[i%9999])
                {
                    if(map[x1][y1]!=1)
                    {
                        locate(x1,y1);
                        cout<<"@",cnt1+=2,liveO[i%9999]=1;
                        bltnum+=5;
                        Sleep(10);
                    }
                }
                if(map[xO[i%9999]][yO[i%9999]]==5)
                {
                    liveO[i%9999]=1;
                    compleO(i%9999,1,0);
                }
            }
            for(int i=0;i<=cnt;i++)
            {
                if(live[i%9999])continue;
                srand(time(0));
                if(rand()%250==1)continue;
                if(x1==x[i%9999]&&y1==y[i%9999])
                {
                    if(map[x1][y1]!=1)
                    {
                        locate(x1,y1);
                        if(kkk[i%9999]>=20)cout<<"@",cnt1++,live[i%9999]=1;
                        else 
                        {
                            cout<<"#",cnt2++,kkk03++;
                    	}
                        locate(0,2);cout<<"   ";
                        locate(0,0);cout<<"@:"<<cnt1<<endl;
                        locate(1,2);cout<<"  ";
                        locate(1,0);cout<<"%:"<<A_life-cnt2<<endl;
                        locate(2,2);cout<<"   ";
                        locate(2,0);cout<<".:"<<bltnum;
                    }
                }
                if(map[x[i%9999]][y[i%9999]]==5)
                {
                    live[i%9999]=1;
                    comple(i%9999,1,0);
                }
                if(map[x[i%9999]][y[i%9999]]==4)
                {
                    inwater[i%9999]++;
                    if(inwater[i%9999]==5)comple(i%9999,1,0),live[i%9999]=1;
                }
            }
            for(int i=0;i<=cnto;i++)
            {
                if(liveo[i%9999])continue;
                srand(time(0));
                if(rand()%250==1)continue;
                if(x1==xo[i%9999]&&y1==yo[i%9999])
                {
                    if(map[x1][y1]!=1)
                    {
                        locate(x1,y1);
                        if(kko[i%9999]>=20)cout<<"@",cnt1++,liveo[i%9999]=1;
                        else 
                        {
                            cout<<"#",cnt2++,kkk03++;
                    	}
                        locate(0,2);cout<<"   ";
                        locate(0,0);cout<<"@:"<<cnt1<<endl;
                        locate(1,2);cout<<"  ";
                        locate(1,0);cout<<"%:"<<A_life-cnt2<<endl;
                        locate(2,2);cout<<"   ";
                        locate(2,0);cout<<".:"<<bltnum;
                    }
                }
                if(map[xo[i%9999]][yo[i%9999]]==5)
                {
                    liveo[i%9999]=1;
                    compleo(i%9999,1,0);
                }
                if(map[xo[i%9999]][yo[i%9999]]==4)
                {
                    inwatero[i%9999]++;
                    if(inwatero[i%9999]==5)
                    compleo(i%9999,1,0),liveo[i%9999]=1;
                }
            }
        }
//--------------------------------------------显著的分界线-------------------------------------------------
        else luogu=0;
        if((fir-second)%50==0&&luogu2==0)
        {
            luogu2=1;
            for(int i=0;i<=cntblt;i++)
            {
                if(liveblt[i]==1)Bullet(i),blt[i]++;
                else if(liveblt[i]==0)locate(bltx[i],blty[i]),compleblt(i,0,0),liveblt[i]=2;
                if(blt[i]==50)blt[i]=0,liveblt[i]=0;
                locate(x1,y1);
                cout<<"@";
            }
        }
        else luogu2=0;
        for(int i=0;i<=cnt;i++)
        {
            if(live[i%9999])continue;
            srand(time(0));
            if(rand()%250==1)continue;
            if(x1==x[i%9999]&&y1==y[i%9999])
            {
                if(map[x1][y1]!=1)
                {
                    locate(x1,y1);
                    if(kkk[i%9999]>=20)cout<<"@",cnt1++,live[i%9999]=1;
                }
            }
        }
        for(int i=0;i<=cnto;i++)
        {
            if(liveo[i%9999])continue;
            srand(time(0));
            if(rand()%250==1)continue;
            if(x1==xo[i%9999]&&y1==yo[i%9999])
            {
                if(map[x1][y1]!=1)
                {
                    locate(x1,y1);
                    if(kko[i%9999]>=20)cout<<"@",cnt1++,liveo[i%9999]=1;
                }
            }
        }
        for(int i=0;i<=cntfen;i++)
        {
            if(fenlive[i%10]==0)continue;
            if(x1==fenx[i%10]&&y1==feny[i%10])
            {
                cnt1+=2;
                fenlive[i%10]=0;
            }
        }
        while(kbhit())
        {
            locate(0,2);cout<<"   ";
            locate(0,0);cout<<"@:"<<cnt1<<endl;
            locate(1,2);cout<<"  ";
            locate(1,0);cout<<"%:"<<A_life-cnt2<<endl;
            locate(2,2);cout<<"   ";
            locate(2,0);cout<<".:"<<bltnum;
            int lshx;
            lshx=getch();
            if(lshx!='i'&&lshx!='j'&&lshx!='k'&&lshx!='l'&&lshx!='u'&&lshx!='o'&&lshx!='m'&&lshx!=',')
            {
                lshx=getch();
                switch(lshx)
                {
                    case 72:dir=0;break;
                    case 75:dir=1;break;
                    case 80:dir=2;break;
                    case 77:dir=3;break;
                    default:
                        main2(dif);
                }
                if(x1+direct[dir][1]<0||y1+direct[dir][0]<0||map[x1+direct[dir][1]][y1+direct[dir][0]]==3)main2(dif);
                comple1(1,0);
                x1+=direct[dir][1];
                y1+=direct[dir][0];
                locate(x1,y1);
                cout<<"@";
            }
            if(bltnum>0)
            switch(lshx)
            {
                case 'i':cntblt++;liveblt[cntblt]=1;bltx[cntblt]=x1,blty[cntblt]=y1;bltdier[cntblt]=1;bltnum--;break;
                case 'k':cntblt++;liveblt[cntblt]=1;bltx[cntblt]=x1,blty[cntblt]=y1;bltdier[cntblt]=2;bltnum--;break;
                case 'j':cntblt++;liveblt[cntblt]=1;bltx[cntblt]=x1,blty[cntblt]=y1;bltdier[cntblt]=3;bltnum--;break;
                case 'l':cntblt++;liveblt[cntblt]=1;bltx[cntblt]=x1,blty[cntblt]=y1;bltdier[cntblt]=4;bltnum--;break;
                case 'u':cntblt++;liveblt[cntblt]=1;bltx[cntblt]=x1,blty[cntblt]=y1;bltdier[cntblt]=5;bltnum--;break;
                case 'o':cntblt++;liveblt[cntblt]=1;bltx[cntblt]=x1,blty[cntblt]=y1;bltdier[cntblt]=6;bltnum--;break;
                case 'm':cntblt++;liveblt[cntblt]=1;bltx[cntblt]=x1,blty[cntblt]=y1;bltdier[cntblt]=7;bltnum--;break;
                case ',':cntblt++;liveblt[cntblt]=1;bltx[cntblt]=x1,blty[cntblt]=y1;bltdier[cntblt]=8;bltnum--;break;
                default:
                    main2(dif);
            }
        }
    }
}

void dfs_hydro(int lx,int ly,int sz)
{
	if(sz==15)
	{
		if(rand()%5==2)
		map[lx][ly]=3;
		return;
	}
	map[lx][ly]=4;
	int A=rand()%3,B=rand()%3,C=rand()%3,D=rand()%3;
	if(A==1)
	{
		dfs_hydro(lx+1,ly,sz+1);
	}
	if(B==1)
	{
		dfs_hydro(lx-1,ly,sz+1);
	}
	if(C==1)
	{
		dfs_hydro(lx,ly+1,sz+1);
	}
	if(D==1)
	{
		dfs_hydro(lx,ly-1,sz+1);
	}
}
void dfs_magma(int lx,int ly,int sz)
{
	if(sz==5)
	{
		if(rand()%5==2)
		map[lx][ly]=3;
		return;
	}
	map[lx][ly]=5;
	int A=rand()%3,B=rand()%3,C=rand()%3,D=rand()%3;
	if(A==1)
	{
		dfs_magma(lx+1,ly,sz+1);
	}
	if(B==1)
	{
		dfs_magma(lx-1,ly,sz+1);
	}
	if(C==1)
	{
		dfs_magma(lx,ly+1,sz+1);
	}
	if(D==1)
	{
		dfs_magma(lx,ly-1,sz+1);
	}
}

void dfs_magmaStream(int lx,int ly,int sz)
{
	if(sz==25)
	{
		if(rand()%5==2)
		map[lx][ly]=3;
		return;
	}
	map[lx][ly]=5;
	int A=rand()%4;
	if(A==0)
	{
		dfs_magmaStream(lx+1,ly,sz+1);
	}
	else if(A==1)
	{
		dfs_magmaStream(lx-1,ly,sz+1);
	}
	else if(A==2)
	{
		dfs_magmaStream(lx,ly+1,sz+1);
	}
	else if(A==3)
	{
		dfs_magmaStream(lx,ly-1,sz+1);
	}
}
int main()
{
	cout<<"初始化中...";
	system("color 0f");Sleep(10);
	system("color 07");Sleep(10);
	system("color 08");Sleep(10);
	system("color 00");Sleep(10);
	system("cls");
	srand(time(0));
    show();//init 
    A_life=30;
    bltnum=0;
	if_O_more=1;
	if_K_more=1;
	if_R_more=1;
    CNT=0;
    x1=14,y1=93;
    cnt1=0,cnt2=0;
    cnt=cntblt=cntbltslt=cntblt_ene=cntfen=cntK=cntO=cnto=cntR=0;
    diffy=-1;
    chenzhe=kkk03=0;
    memset(kkk,0,sizeof kkk);
    memset(blt,0,sizeof blt);
    memset(bltdier,0,sizeof bltdier);
    memset(liveblt,0,sizeof liveblt);
    memset(bltx,0,sizeof bltx);
    memset(blty,0,sizeof blty);
    memset(map,0,sizeof map);
    for(int i=0;i<1000000;i++)live[i]=1,liveO[i]=liveo[i]=liveK[i]=liveR[i]=1;

	system("color 00");Sleep(100);
	system("color 08");Sleep(100);
	locate(0,0);
	cout<<"SIMBLYTES  ";
	system("color 07");Sleep(100);
	system("color 0f");locate(0,9),getchar();
	system("color 07");Sleep(100);
	system("color 08");Sleep(100);
	system("cls");
	locate(0,0);
	cout<<"请选择:   \n1.草地迷宫\n2.海境\n3.岩境\n";
	system("color 08");Sleep(100);
	system("color 07");Sleep(100);
	system("color 0f");
	gmGnd=getch();
	while(gmGnd!='1'&&gmGnd!='2'&&gmGnd!='3')
		gmGnd=getch();
	cout<<endl;
	for(int i=0;i<=30;i++)//grass_planting
	{
		for(int j=0;j<=118;j++)
		{
			int randd=rand()%10;
			if(randd==2)map[i][j]=2;
		}
	}
	if(gmGnd=='1')
	{
	    for(int i=19;i<30;i++)map[i][25]=3;//Wall_building
	    for(int i=0;i<25;i++)map[i][75]=3;
	    for(int i=8;i<=25;i++)map[24][i]=3;
	    for(int i=0;i<=12;i++)map[i][12]=3;
	    for(int i=0;i<=16;i++)map[i][55]=3;
	    for(int i=13;i<=55;i++)
	    {
	        if(i>25&&i<34)continue;
	        map[9][i]=3;
	    }
	    for(int i=44;i<=65;i++)map[23][i]=3;
		for(int i=9;i<30;i++)map[i][65]=3;
//	    for(int i=11;i<=15;i++)//Habitate_building
//	    for(int j=81;j<=96;j++)map[i][j]=1;
//	    for(int i=9;i<=19;i++)for(int j=87;j<=95;j++)map[i][j]=1;
//	    map[7][91]=map[8][91]=map[7][92]=map[8][92]=map[20][91]=map[21][91]=map[20][92]=map[21][92]=map[20][93]=map[21][93]=1;
	    
	    for(int i=13;i<=18;i++)map[17][i]=map[18][i]=5;//magma_making
	    for(int i=17;i<=19;i++)map[18][i]=map[19][i]=map[20][i]=5;
	    for(int i=16;i<=24;i++)map[i][34]=map[i][35]=map[i][36]=map[i][37]=5;
	    map[20][33]=map[21][33]=map[22][33]=map[23][33]=5;
	    map[16][38]=5;
	    for(int i=12;i<=15;i++)
	    for(int j=17;j<=20;j++)map[j][i+26]=5;
	    for(int i=70;i<=74;i++)map[0][i]=map[1][i]=5;
	    for(int i=71;i<=74;i++)map[2][i]=map[3][i]=5;
	    for(int i=72;i<=74;i++)map[4][i]=map[5][i]=5;
	    map[6][74]=5;
	    for(int i=56;i<=59;i++)for(int j=0;j<5;j++)map[j][i]=4;//hydor_making
	    map[5][56]=map[5][58]=map[5][60]=map[1][60]=map[3][60]=4;
	    for(int i=24;i<29;i++)for(int j=59;j<=64;j++)map[i][j]=4;
	    map[24][58]=map[26][58]=map[28][58]=4;
	}
	if(gmGnd=='2')
	{
		for(int i=1;i<=30;i++)
		{
			int land_x=rand()%30,land_y=rand()%117;
			dfs_hydro(land_x,land_y,0);
		}
	}
	if(gmGnd=='3')
	{
		for(int i=1;i<=30;i++)
		{
			int land_x=rand()%30,land_y=rand()%117;
			dfs_magma(land_x,land_y,0);
			dfs_magmaStream(land_x,land_y,0);
		}
	}
    for(int i=0;i<118;i++)map[29][i]=3;//Wall_building
    for(int i=0;i<30;i++)map[i][117]=3;
	map[14][91]=map[13][91]=map[14][92]=map[13][92]=6;//Mall_building
	map[14][93]=map[13][93]=map[14][90]=map[13][90]=map[12][92]=map[12][91]=map[15][92]=map[15][91]=1;//Habitate_building
    
    cout<<"请选择:\n1.人机(子弹有限)\n2.通关(未优化,不建议使用)\n";
    char lsh;
    while(lsh!='1'&&lsh!='2')
    	lsh=getch();
	cout<<endl;
    cout<<"子弹:'u' 'i' 'o' 'j' 'k' 'l' 'm' ',' 控制\n ";
    cout<<"@:\n   上\n左 下 右\n";
    cout<<"=:安全屋:	免去一切伤害\n";
    cout<<"W:草丛:	降低可见度\n";
    cout<<char(1)<<":墙:		不可通过\n";
    cout<<"!:岩浆:	触碰着火!\n";
    cout<<"~:水:		小心溺亡!\n";
    getch();
    system("cls");
    for(int i=0;i<=30;i++)//map_printing
    {
        for(int j=0;j<=118;j++)
        {
            if(map[i][j]==0)cout<<" ";
            if(map[i][j]==1)cout<<'=';
            if(map[i][j]==2)
            {
            	int randd=rand()%5;
            	if(randd==1)cout<<"W";
            	else cout<<" ",map[i][j]=0;
			}
            if(map[i][j]==3)cout<<char(1);
            if(map[i][j]==4)cout<<'~';
            if(map[i][j]==5)cout<<'!';
            if(map[i][j]==6)cout<<'N';
        }
        cout<<endl;
    }
    if(lsh=='1')//PvE
    {
        srand(time(0));
        for(int i=0;i<1000;i++)
		{
			x[i]=rand()%26+1,y[i]=rand()%75+1,xO[i]=rand()%26+1,yO[i]=rand()%75+1,xK[i]=rand()%26+1,yK[i]=rand()%75+1,xR[i]=rand()%26+1,yR[i]=rand()%116+1;
			while(map[x[i]][y[i]]==3)x[i]=rand()%26+1,y[i]=rand()%75+1;
			while(map[xO[i]][yO[i]]==3)xO[i]=rand()%26+1,yO[i]=rand()%75+1;
			while(map[xK[i]][yK[i]]==3)xK[i]=rand()%26+1,yK[i]=rand()%75+1;
			while(map[xR[i]][yR[i]]==3||map[xR[i]][yR[i]]==1||map[xR[i]][yR[i]]==6||map[xR[i]][yR[i]]==7)xR[i]=rand()%26+1,yR[i]=rand()%75+1;
		}
        locate(0,0);
        cout<<"难度:(0~10)";
        string D;
        cin>>D;
        while(!(D[0]>'0'&&D[0]<'9'&&D.length()==1||D[0]=='1'&&D[1]=='0'&&D.length()==2||D[0]=='g'&&D.length()==8))
        	locate(0,11),cout<<"         ",locate(0,11),cin>>D;
        if(D.length()==1)diffy=D[0]-'0';
        if(D[0]=='1'&&D[1]=='0')diffy=10;
        if(D=="gigantic")diffy=10,gigantic=1;
        hide();
        locate(0,0);
        cout<<"             ";
        locate(0,0);
        cout<<"#:攻击\n$:休眠\nO:井母\n*:经验\n";
        Sleep(3*1000);
        locate(0,0);
        cout<<"      \n      \n      \n     \n";
        first=time(NULL);
        fir=clock();
        locate(0,0);cout<<"@:"<<cnt1<<endl;
        locate(1,2);cout<<"  ";
        locate(1,0);cout<<"%:"<<30-cnt2<<endl;
        locate(2,0);cout<<".:"<<bltnum;
        defen=time(NULL);
        main1();
    }
    if(lsh=='2')//rated
    {
        srand(time(0));
        for(int i=0;i<=1000;i++)x[i]=rand()%30,y[i]=rand()%75,xO[i]=rand()%28,yO[i]=rand()%75;
        hide();
        locate(0,0);
        cout<<"             ";
        locate(0,0);
        cout<<"#:攻击\n$:休眠\nO:井母\n*:经验\nU:终点\n";
        Sleep(3*1000);
        locate(0,0);
        cout<<"      \n      \n      \n      \n      \n";
        first=time(NULL);
        fir=clock();
        locate(0,0);cout<<"@:"<<cnt1<<endl;
        locate(1,2);cout<<"  ";
        locate(1,0);cout<<"%:"<<30-cnt2<<endl;
        locate(2,0);cout<<".:"<<bltnum;
        main2(1);
    }
    return 0;//我甚至 
}
  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值