C++免费小游戏:简字节

简单字节类免费原创小游戏源码。

转自本人的洛谷!

游戏概念图: 

 

下面贴上最新版代码(难度输入“gigantic”高难度游戏体验!):

/*=====Wei_wei_=====*/
/*=====2024.2.24====*/
/*=======6.7========*/ 
#include<iostream>
#include<windows.h>
#include<time.h>
#include<conio.h>
#include<stdlib.h>
#include<fstream>
#pragma GCC optimize(2)
#pragma GCC optimize(3)
int main();//提前定义主函数 
char transfer[1000000];
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[15],feny[15],cntfen,fenlive[15];//分坐标(*) 
int direct[4][2]={{0,-1},{-1,0},{0,1},{1,0}};//行动方向(四向) 
int dir;//方向存储 
int x1=10,y1=95;//玩家坐标(@) 
unsigned long long cnt1;
int cnt2;//cnt1:分数($),cnt2:血量(显示时是 %:A_life-cnt2) 
int map[1000][1000];//地图 
int bltslt[1000][1000],bltsltx[100000],bltslty[100000],cntbltslt;//子弹岗亭 
int tower[1000][1000],towerx[100000],towery[100000],cnttower;//塔 
int uinwater;//气泡码 
bool onfire;//岩码 
time_t first,fir,second,fir2,sec2,firtow,sectow;//时间: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[1000000],blty[1000000],blt[1000000],bltdier[1000000],liveblt[1000000],cntblt,bltnum;
/*(上排)
bltx[],blty[]:子弹坐标;blt[]:子弹行径时间(射程);bltdier[]:子弹方向;liveblt[]:子弹是否可用(0:no/1:yes);
cntblt:场上子弹数量;bltnum:可用子弹数量。
*/
int bltx_ene[1000000],blty_ene[1000000],blt_ene[1000000],bltdier_ene[1000000],liveblt_ene[1000000],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 numtower;//手持塔数量 
int nummagma;//手持岩浆数量
int numhydro;//手持水数量
int numN;//手持商店数量
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);putchar(' ');break;
            case 1:locate(bltx[z],blty[z]+i);putchar('=');break;
            case 2:locate(bltx[z],blty[z]+i);putchar('x');break;
            case 3:locate(bltx[z],blty[z]+i);putchar(char(1));break;
            case 4:locate(bltx[z],blty[z]+i);putchar('~');break;
            case 5:locate(bltx[z],blty[z]+i);putchar('!');break;
            case 6:locate(bltx[z],blty[z]+i);putchar('N');break;
            case 7:locate(bltx[z],blty[z]+i);putchar('+');break;
            case 8:locate(bltx[z],blty[z]+i);putchar('o');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);putchar(' ');break;
            case 1:locate(bltx_ene[z],blty_ene[z]+i);putchar('=');break;
            case 2:locate(bltx_ene[z],blty_ene[z]+i);putchar('x');break;
            case 3:locate(bltx_ene[z],blty_ene[z]+i);putchar(char(1));break;
            case 4:locate(bltx_ene[z],blty_ene[z]+i);putchar('~');break;
            case 5:locate(bltx_ene[z],blty_ene[z]+i);putchar('!');break;
            case 6:locate(bltx_ene[z],blty_ene[z]+i);putchar('N');break;
            case 7:locate(bltx_ene[z],blty_ene[z]+i);putchar('+');break;
            case 8:locate(bltx_ene[z],blty_ene[z]+i);putchar('o');break;
        }
    }
}
void comple1(int i,int y)//@_clean
{
    while(--i>=y)
    {
        switch(map[x1][y1+i])
        {
            case 0:locate(x1,y1+i);putchar(' ');break;
            case 1:locate(x1,y1+i);putchar('=');break;
            case 2:locate(x1,y1+i);putchar(',');map[x1][y1+i]=0;break;
            case 3:locate(x1,y1+i);putchar(char(1));break;
            case 4:locate(x1,y1+i);putchar('~');break;
            case 5:locate(x1,y1+i);putchar('!');break;
            case 6:locate(x1,y1+i);putchar('N');break;
            case 7:locate(x1,y1+i);putchar('+');if(bltslt[x1][y1]>0)bltslt[x1][y1]--,bltnum++;break;
            case 8:locate(x1,y1+i);putchar('o');break;
        }
    }
}
int x[10000],y[10000],cnt=0,live[10000];//#坐标,数量,是否存活(0:live/1:dead) 
int inwater[10000];//#憋气(三字节) 
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);putchar(' ');break;
            case 1:locate(x[z],y[z]+i);putchar('=');break;
            case 2:locate(x[z],y[z]+i);putchar(',');map[x[z]][y[z]+i]=0;break;
            case 3:locate(x[z],y[z]+i);putchar(char(1));break;
            case 4:locate(x[z],y[z]+i);putchar('~');break;
            case 5:locate(x[z],y[z]+i);putchar('!');break;
            case 6:locate(x[z],y[z]+i);putchar('N');break;
            case 7:locate(x[z],y[z]+i);putchar('+');break;
            case 8:locate(x[z],y[z]+i);putchar('o');break;
        }
    }
}
int kkk[10000];//#行动方向(井路)/#是否变为$ 
int _jing_stop[10000];
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(_jing_stop[i%9999]==10)
    {
    	_jing_stop[i%9999]=0;
    	comple(i%9999,1,0);
    	x[i%9999]=rand()%26+1,y[i%9999]=rand()%75+1;
    	while(map[x[i%9999]][y[i%9999]]==3)x[i%9999]=rand()%26+1,y[i%9999]=rand()%75+1;
	}
	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]=35;
                    locate(x[i%9999],y[i%9999]);
                    if(kkk[i%9999]<35)
                    putchar('#');
                    else putchar('$');
					_jing_stop[i%9999]++;
	                _jing_((i+1)%9999);
	                return;
				}
            }
            comple(i%9999,1,0);
            x[i%9999]++;
            locate(x[i%9999],y[i%9999]);
            if(kkk[i%9999]<35)
            putchar('#');
            else putchar('$');
		}
	}
    if(kkk[i%9999]>25&&kkk[i%9999]<45)//竖走 
    {
        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]=35;
                    locate(x[i%9999],y[i%9999]);
                    if(kkk[i%9999]<35)
                    putchar('#');
                    else putchar('$');
    				_jing_stop[i%9999]++;
	                _jing_((i+1)%9999);
	                return;
				}
            }
            comple(i%9999,1,0);
            x[i%9999]++;
            locate(x[i%9999],y[i%9999]);
            if(kkk[i%9999]<35)
            putchar('#');
            else putchar('$');
        }
        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]=35;
                    locate(x[i%9999],y[i%9999]);
                    if(kkk[i%9999]<35)
                    putchar('#');
                    else putchar('$');
    				_jing_stop[i%9999]++;
	                _jing_((i+1)%9999);
	                return;
				}
			}
    		comple(i%9999,1,0);
			x[i%9999]--;
		    locate(x[i%9999],y[i%9999]);
		    if(kkk[i%9999]<35)
		    putchar('#');
	    	else putchar('$');
        }
        else if(x[i%9999]==x1){
        	kkk[i%9999]=46;
			goto _jing_hengzou;
		}
    }
    else//横走 
    {
    	_jing_hengzou:
        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]<35)
                    putchar('#');
                    else putchar('$');
    				_jing_stop[i%9999]++;
	                _jing_((i+1)%9999);
	                return;
				}
            }
            comple(i%9999,1,0);
            y[i%9999]++;
            locate(x[i%9999],y[i%9999]);
            if(kkk[i%9999]<35)
            putchar('#');
            else putchar('$');
        }
        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]<35)
                    putchar('#');
                    else putchar('$');
    				_jing_stop[i%9999]++;
	                _jing_((i+1)%9999);
	                return;
				}
			}
    		comple(i%9999,1,0);
			y[i%9999]--;
		    locate(x[i%9999],y[i%9999]);
		    if(kkk[i%9999]<35)
		    putchar('#');
	    	else putchar('$');
        }
        else if(y[i%9999]==y1){
        	kkk[i%9999]=26;
		}
    }
    kkk[i%9999]++;
    kkk[i%9999]%=55;
    _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);putchar(' ');
            break;
            case 1:locate(bossx,bossy+i);putchar('=');
            break;
            case 2:locate(bossx,bossy+i);putchar(',');map[bossx][bossy+i]=0;
            break;
            case 3:locate(bossx,bossy+i);putchar(char(1));
            break;
            case 4:locate(bossx,bossy+i);putchar('~');
            break;
            case 5:locate(bossx,bossy+i);putchar('!');
            break;
            case 6:locate(bossx,bossy+i);putchar('N');
            break;
            case 7:locate(bossx,bossy+i);putchar('+');
            break;
            case 8:locate(bossx,bossy+i);putchar('o');
            break;
        }
        switch(map[bossx+1][bossy+i])
        {
            case 0:
            locate(bossx+1,bossy+i);putchar(' ');
            break;
            case 1:locate(bossx+1,bossy+i);putchar('=');
            break;
            case 2:locate(bossx+1,bossy+i);putchar(',');map[bossx][bossy+i]=0;
            break;
            case 3:locate(bossx+1,bossy+i);putchar(char(1));
            break;
            case 4:locate(bossx+1,bossy+i);putchar('~');
            break;
            case 5:locate(bossx+1,bossy+i);putchar('!');
            break;
            case 6:locate(bossx+1,bossy+i);putchar('N');
            break;
            case 7:locate(bossx+1,bossy+i);putchar('+');
            break;
            case 8:locate(bossx+1,bossy+i);putchar('o');
            break;
        }
        switch(map[bossx-1][bossy+i])
        {
            case 0:
            locate(bossx-1,bossy+i);putchar(' ');
            break;
            case 1:locate(bossx-1,bossy+i);putchar('=');
            break;
            case 2:locate(bossx-1,bossy+i);putchar(',');map[bossx][bossy+i]=0;
            break;
            case 3:locate(bossx-1,bossy+i);putchar(char(1));
            break;
            case 4:locate(bossx-1,bossy+i);putchar('~');
            break;
            case 5:locate(bossx-1,bossy+i);putchar('!');
            break;
            case 6:locate(bossx-1,bossy+i);putchar('N');
            break;
            case 7:locate(bossx-1,bossy+i);putchar('+');
            break;
            case 8:locate(bossx-1,bossy+i);putchar('o');
            break;
        }
        switch(map[bossx][bossy+i-1])
        {
            case 0:
            locate(bossx,bossy+i-1);putchar(' ');
            break;
            case 1:locate(bossx,bossy+i-1);putchar('=');
            break;
            case 2:locate(bossx,bossy+i-1);putchar(',');map[bossx][bossy+i]=0;
            break;
            case 3:locate(bossx,bossy+i-1);putchar(char(1));
            break;
            case 4:locate(bossx,bossy+i-1);putchar('~');
            break;
            case 5:locate(bossx,bossy+i-1);putchar('!');
            break;
            case 6:locate(bossx,bossy+i-1);putchar('N');
            break;
            case 7:locate(bossx,bossy+i-1);putchar('+');
            break;
            case 8:locate(bossx,bossy+i-1);putchar('o');
            break;
        }
        switch(map[bossx][bossy+i+1])
        {
            case 0:
            locate(bossx,bossy+i+1);putchar(' ');
            break;
            case 1:locate(bossx,bossy+i+1);putchar('=');
            break;
            case 2:locate(bossx,bossy+i+1);putchar(',');map[bossx][bossy+i]=0;
            break;
            case 3:locate(bossx,bossy+i+1);putchar(char(1));
            break;
            case 4:locate(bossx,bossy+i+1);putchar('~');
            break;
            case 5:locate(bossx,bossy+i+1);putchar('!');
            break;
            case 6:locate(bossx,bossy+i+1);putchar('N');
            break;
            case 7:locate(bossx,bossy+i+1);putchar('+');
            break;
            case 8:locate(bossx,bossy+i+1);putchar('o');
            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);putchar(char(2));
        locate(bossx-1,bossy);putchar('#');
        locate(bossx+1,bossy);putchar('#');
        locate(bossx,bossy-1);putchar('#');
        locate(bossx,bossy+1);putchar('#');
    }
    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);putchar(char(2));
        locate(bossx-1,bossy);putchar('#');
        locate(bossx+1,bossy);putchar('#');
        locate(bossx,bossy-1);putchar('#');
        locate(bossx,bossy+1);putchar('#');
    }
    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);putchar(char(2));
        locate(bossx-1,bossy);putchar('#');
        locate(bossx+1,bossy);putchar('#');
        locate(bossx,bossy-1);putchar('#');
        locate(bossx,bossy+1);putchar('#');
    }
    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);putchar(char(2));
        locate(bossx-1,bossy);putchar('#');
        locate(bossx+1,bossy);putchar('#');
        locate(bossx,bossy-1);putchar('#');
        locate(bossx,bossy+1);putchar('#');
    }
}
int xO[1000],yO[1000],cntO,liveO[1000];//井母(O)(坐标、数量、存活(0:存活/1:不活)) 
int kkO[1000];//O行动方向(母路)
int xo[10000],yo[10000],cnto=0,liveo[10000],inwatero[10000];//井母的追随者(坐标、数量、存活(0:存活/1:不活)) 
int kko[10000];//追随者行动方向 
int xK[1000],yK[1000],cntK,liveK[1000];//K坐标,数量,是否存活(0:live/1:dead) 
int kkK[1000];
int xR[1000],yR[1000],cntR,liveR[1000];//R坐标,数量,是否存活(0:live/1:dead) 
int kkR[1000];
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);putchar('W');map[xO[z]][yO[z]+i]=2;break;
            case 1:locate(xO[z],yO[z]+i);putchar('=');break;
            case 2:locate(xO[z],yO[z]+i);putchar('W');break;
            case 3:locate(xO[z],yO[z]+i);putchar(char(1));break;
            case 4:locate(xO[z],yO[z]+i);putchar('~');break;
            case 5:locate(xO[z],yO[z]+i);putchar('!');break;
            case 6:locate(xO[z],yO[z]+i);putchar('N');break;
            case 7:locate(xO[z],yO[z]+i);putchar('+');break;
            case 8:locate(xO[z],yO[z]+i);putchar('o');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);putchar(' ');break;
            case 1:locate(xo[z],yo[z]+i);putchar('=');break;
            case 2:locate(xo[z],yo[z]+i);putchar(',');map[xo[z]][yo[z]+i]=0;break;
            case 3:locate(xo[z],yo[z]+i);putchar(char(1));break;
            case 4:locate(xo[z],yo[z]+i);putchar('~');break;
            case 5:locate(xo[z],yo[z]+i);putchar('!');break;
            case 6:locate(xo[z],yo[z]+i);putchar('N');break;
            case 7:locate(xo[z],yo[z]+i);putchar('+');break;
            case 8:locate(xo[z],yo[z]+i);putchar('o');break;
        }
    }
}
void O(int i)//O_move
{
    if(i>cntO)return;
    if(liveO[i%999])
    {
        O((i+1)%999);
        return;
    }
    if(kkO[i%999]<=10||kkO[i%999]>=30)
    {
        if(x1>xO[i%999])
        {
            if(map[xO[i%999]+1][yO[i%999]]==3||map[xO[i%999]+1][yO[i%999]]==1||map[xO[i%999]+1][yO[i%999]]==7)
            {
                O((i+1)%999);
                return;
            }
            compleO(i%999,1,0);
            xO[i%999]++;
            locate(xO[i%999],yO[i%999]);
            putchar('O');
        }
        if(x1<xO[i%999])
        {
            if(xO[i%999]-1<0||map[xO[i%999]-1][yO[i%999]]==3||map[xO[i%999]-1][yO[i%999]]==1||map[xO[i%999]-1][yO[i%999]]==7)
            {
                O((i+1)%999);
                return;
            }
            compleO(i%999,1,0);
            xO[i%999]--;
            locate(xO[i%999],yO[i%999]);
            putchar('O');
        }
    }
    else
    {
        if(y1>yO[i%999])
        {
            if(map[xO[i%999]][yO[i%999]+1]==3||map[xO[i%999]][yO[i%999]+1]==1||map[xO[i%999]][yO[i%999]+1]==7)
            {
                O((i+1)%999);
                return;
            }
            compleO(i%999,1,0);
            yO[i%999]++;
            locate(xO[i%999],yO[i%999]);
            putchar('O');
        }
        if(y1<yO[i%999])
        {
            if(yO[i%999]-1<0||map[xO[i%999]][yO[i%999]-1]==3||map[xO[i%999]][yO[i%999]-1]==1||map[xO[i%999]][yO[i%999]-1]==7)
            {
                O((i+1)%999);
                return;
            }
            compleO(i%999,1,0);
            yO[i%999]--;
            locate(xO[i%999],yO[i%999]);
            putchar('O');
        }
    }
    kkO[i%999]++;
    kkO[i%999]%=40;
    O((i+1)%999);
}
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);putchar('W');map[xK[z]][yK[z]+i]=2;break;
            case 1:locate(xK[z],yK[z]+i);putchar('=');break;
            case 2:locate(xK[z],yK[z]+i);putchar('W');break;
            case 3:locate(xK[z],yK[z]+i);putchar(char(1));break;
            case 4:locate(xK[z],yK[z]+i);putchar('~');break;
            case 5:locate(xK[z],yK[z]+i);putchar('!');break;
            case 6:locate(xK[z],yK[z]+i);putchar('N');break;
            case 7:locate(xK[z],yK[z]+i);putchar('+');break;
            case 8:locate(xK[z],yK[z]+i);putchar('o');break;
        }
    }
}
void K(int i)//K_move
{
    if(i>cntK)return;
    if(liveK[i%999])
    {
        K((i+1)%999);
        return;
    }
    if(kkK[i%999]<=10||kkK[i%999]>=30)
    {
        if(x1>xK[i%999])
        {
            if(map[xK[i%999]+1][yK[i%999]]==3||map[xK[i%999]+1][yK[i%999]]==1||map[xK[i%999]+1][yK[i%999]]==7)
            {
                K((i+1)%999);
                return;
            }
            compleK(i%999,1,0);
            xK[i%999]++;
            locate(xK[i%999],yK[i%999]);
            putchar('K');
        }
        if(x1<xK[i%999])
        {
            if(xK[i%999]-1<0||map[xK[i%999]-1][yK[i%999]]==3||map[xK[i%999]-1][yK[i%999]]==1||map[xK[i%999]-1][yK[i%999]]==7)
            {
                K((i+1)%999);
                return;
            }
            compleK(i%999,1,0);
            xK[i%999]--;
            locate(xK[i%999],yK[i%999]);
            putchar('K');
        }
    }
    else
    {
        if(y1>yK[i%999])
        {
            if(map[xK[i%999]][yK[i%999]+1]==3||map[xK[i%999]][yK[i%999]+1]==1||map[xK[i%999]][yK[i%999]+1]==7)
            {
                K((i+1)%999);
                return;
            }
            compleK(i%999,1,0);
            yK[i%999]++;
            locate(xK[i%999],yK[i%999]);
            putchar('K');
        }
        if(y1<yK[i%999])
        {
            if(yK[i%999]-1<0||map[xK[i%999]][yK[i%999]-1]==3||map[xK[i%999]][yK[i%999]-1]==1||map[xK[i%999]][yK[i%999]-1]==7)
            {
                K((i+1)%999);
                return;
            }
            compleK(i%999,1,0);
            yK[i%999]--;
            locate(xK[i%999],yK[i%999]);
            putchar('K');
        }
    }
    kkK[i%999]++;
    kkK[i%999]%=40;
    K((i+1)%999);
}
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);putchar('W');map[xR[z]][yR[z]+i]=2;break;
            case 1:locate(xR[z],yR[z]+i);putchar('=');break;
            case 2:locate(xR[z],yR[z]+i);putchar('W');break;
            case 3:locate(xR[z],yR[z]+i);putchar(char(1));break;
            case 4:locate(xR[z],yR[z]+i);putchar('~');break;
            case 5:locate(xR[z],yR[z]+i);putchar('!');break;
            case 6:locate(xR[z],yR[z]+i);putchar('N');break;
            case 7:locate(xR[z],yR[z]+i);putchar('+');break;
            case 8:locate(xR[z],yR[z]+i);putchar('o');break;
        }
    }
}
void R(int i)//R_move
{
    if(i>cntR)return;
    if(liveR[i%999])
    {
        R((i+1)%999);
        return;
    }
    if(kkR[i%999]<=10||kkR[i%999]>=30)
    {
        if(x1>xR[i%999])
        {
            if(map[xR[i%999]+1][yR[i%999]]==3||map[xR[i%999]+1][yR[i%999]]==1||map[xR[i%999]+1][yR[i%999]]==7)
            {
                R((i+1)%999);
                return;
            }
            compleR(i%999,1,0);
            xR[i%999]++;
            locate(xR[i%999],yR[i%999]);
            putchar('R');
        }
        if(x1<xR[i%999])
        {
            if(xR[i%999]-1<0||map[xR[i%999]-1][yR[i%999]]==3||map[xR[i%999]-1][yR[i%999]]==1||map[xR[i%999]-1][yR[i%999]]==7)
            {
                R((i+1)%999);
                return;
            }
            compleR(i%999,1,0);
            xR[i%999]--;
            locate(xR[i%999],yR[i%999]);
            putchar('R');
        }
    }
    else
    {
        if(y1>yR[i%999])
        {
            if(map[xR[i%999]][yR[i%999]+1]==3||map[xR[i%999]][yR[i%999]+1]==1||map[xR[i%999]][yR[i%999]+1]==7)
            {
                R((i+1)%999);
                return;
            }
            compleR(i%999,1,0);
            yR[i%999]++;
            locate(xR[i%999],yR[i%999]);
            putchar('R');
        }
        if(y1<yR[i%999])
        {
            if(yR[i%999]-1<0||map[xR[i%999]][yR[i%999]-1]==3||map[xR[i%999]][yR[i%999]-1]==1||map[xR[i%999]][yR[i%999]-1]==7)
            {
                R((i+1)%999);
                return;
            }
            compleR(i%999,1,0);
            yR[i%999]--;
            locate(xR[i%999],yR[i%999]);
            putchar('R');
        }
    }
    kkR[i%999]++;
    kkR[i%999]%=40;
    R((i+1)%999);
}
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)
            putchar('#');
            else putchar('$');
		}
    	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)
		    putchar('#');
	    	else putchar('$');
        }
    }
    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)
            putchar('#');
            else putchar('$');
		}
    	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)
		    putchar('#');
	    	else putchar('$');
        }
    }
    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]);
        putchar('.');
    }
    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)
        {
			ifstream iread_txt;                     // 初始化输入流
			ofstream write_txt;                     // 初始化输出流 
			iread_txt.open("diary.txt");
			iread_txt>>transfer;
			iread_txt.close();
			
			write_txt.open("diary.txt");
            cnt2+=5;write_txt <<transfer<<'K';
            write_txt.close();
            
            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(bltx_ene[i],blty_ene[i]);
        putchar(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;
        }
    }
}

inline void shopping_mall_painting()//顾名思义 
{
    locate(1,3);
    putchar('<');
    locate(1,7);puts("    ");
    locate(1,5);
    printf("$:%d",cnt1);
	locate(1,13);puts("    ");
	locate(1,11);
	printf("%:%d",A_life);
	locate(1,19);puts("    ");
	locate(1,17);
	printf(".:%d",bltnum);
	
	int lshh=10;
	locate(5,lshh);
	puts("---------");
	locate(6,lshh);
	puts("|       |");
	locate(7,lshh);
	puts("|   .   |");
	locate(8,lshh);
	puts("|       |");
	locate(9,8);
	puts("子弹+10 25$");
    locate(11,lshh+4);
    putchar('B');
    
    lshh=25;
	locate(5,lshh);
    puts("---------");
    locate(6,lshh);
    puts("|       |");
    locate(7,lshh);
    puts("|   %   |");
    locate(8,lshh);
    puts("|       |");
    locate(9,20);
    puts("生命上线+10 500$");
	locate(11,lshh+4);
	putchar('B');
	
    lshh=40;
	locate(5,lshh);
    puts("---------");
    locate(6,lshh);
    puts("|       |");
    locate(7,lshh);
    puts("|  DIS  |");
    locate(8,lshh);
    puts("|       |");
    locate(9,lshh-2);
    puts("射程+10 500$");
	locate(11,lshh+4);
	putchar('B');
	
    lshh=55;
	locate(5,lshh);
    puts("---------");
    locate(6,lshh);
    puts("|       |");
    locate(7,lshh);
    puts("|   =   |");
    locate(8,lshh);
    puts("|       |");
    locate(9,lshh-2);
    puts("前哨放置 100$");
	locate(11,lshh+4);
	putchar('B');
	
    lshh=70;
	locate(5,lshh);
    puts("---------");
    locate(6,lshh);
    puts("|       |");
    locate(7,lshh);
    puts("|   o   |");
    locate(8,lshh);
    puts("|       |");
    locate(9,lshh-1);
    puts("塔放置 650$");
	locate(11,lshh+4);
	putchar('B');
	
    lshh=85;
	locate(5,lshh);
    puts("---------");
    locate(6,lshh);
    puts("|       |");
    locate(7,lshh);
    puts("|   !   |");
    locate(8,lshh);
    puts("|       |");
    locate(9,lshh);
    puts("岩浆 50$");
	locate(11,lshh+4);
	putchar('B');
	
    lshh=100;
	locate(5,lshh);
    puts("---------");
    locate(6,lshh);
    puts("|       |");
    locate(7,lshh);
    puts("|   ~   |");
    locate(8,lshh);
    puts("|       |");
    locate(9,lshh+1);
    puts("水 200$");
	locate(11,lshh+4);
	putchar('B');
	
	lshh=10;
	locate(13,lshh);
	puts("---------");
	locate(14,lshh);
	puts("|       |");
	locate(15,lshh);
	puts("|   +   |");
	locate(16,lshh);
	puts("|       |");
	locate(17,lshh-2);
	puts("岗亭放置 300$");
    locate(19,lshh+4);
    putchar('B');
    
	lshh=25;
	locate(13,lshh);
	puts("---------");
	locate(14,lshh);
	puts("|       |");
	locate(15,lshh);
	puts("|   N   |");
	locate(16,lshh);
	puts("|       |");
	locate(17,lshh-2);
	puts("商店放置 1500$");
    locate(19,lshh+4);
    putchar('B');
    
	locate(29,1);puts("选择/确定:空格键"); 
}
bool break_;
int x_shop=11,y_shop=14;
inline void shopping()//商铺 
{
	system("cls");
	int lshx;
    locate(x_shop-1,y_shop);putchar('-');
    locate(x_shop+1,y_shop);putchar('-');
    locate(x_shop,y_shop-1);putchar('|');
    locate(x_shop,y_shop+1);putchar('|');
    locate(x_shop-1,y_shop+1);putchar('+');
    locate(x_shop+1,y_shop+1);putchar('+');
    locate(x_shop-1,y_shop-1);putchar('+');
    locate(x_shop+1,y_shop-1);putchar('+');
    shopping_mall_painting(); 
	while(1)
	{
		break_=0;
    	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)putchar(' ');
			            if(map[i][j]==1)putchar('=');
			            if(map[i][j]==2)putchar('W');
			            if(map[i][j]==3)putchar(char(1));
			            if(map[i][j]==4)putchar('~');
			            if(map[i][j]==5)putchar('!');
			            if(map[i][j]==6)putchar('N');
			            if(map[i][j]==7)putchar('+');
			            if(map[i][j]==8)putchar('o');
			        }
			        printf("\n");
			    }
				return;//回到地图	
		}
		else if(lshx==' '){
			break_=1;
			goto shople;
		}
	    locate(x_shop-1,y_shop);putchar(' ');
	    locate(x_shop+1,y_shop);putchar(' ');
	    locate(x_shop,y_shop-1);putchar(' ');
	    locate(x_shop,y_shop+1);putchar(' ');
	    locate(x_shop-1,y_shop+1);putchar(' ');
	    locate(x_shop+1,y_shop+1);putchar(' ');
	    locate(x_shop-1,y_shop-1);putchar(' ');
	    locate(x_shop+1,y_shop-1);putchar(' ');
		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)putchar(' ');
			            if(map[i][j]==1)putchar('=');
			            if(map[i][j]==2)putchar('W');
			            if(map[i][j]==3)putchar(char(1));
			            if(map[i][j]==4)putchar('~');
			            if(map[i][j]==5)putchar('!');
			            if(map[i][j]==6)putchar('N');
			            if(map[i][j]==7)putchar('+');
			            if(map[i][j]==8)putchar('o');
			        }
			        printf("\n");
			    }
				return;//回到地图	
		}
		else if(lshx==' '){
			break_=1;
			goto shople;
		}
	    switch(lshx)
	    {
	        case 72:if(x_shop-8>=1)if(x_shop==11)x_shop=1,y_shop=3;else x_shop-=8;break;
	        case 75:if(y_shop==14)x_shop=1,y_shop=3;else if(y_shop-15>=1)y_shop-=15;break;
	        case 80:if(x_shop+8<=27)if(x_shop==1&&y_shop==3)x_shop=11,y_shop=14;else x_shop+=8;break;
	        case 77:if(y_shop+15<=115)if(x_shop==1&&y_shop==3)x_shop=11,y_shop=14;else y_shop+=15;break;
	    }
	    locate(x_shop-1,y_shop);putchar('-');
	    locate(x_shop+1,y_shop);putchar('-');
	    locate(x_shop,y_shop-1);putchar('|');
	    locate(x_shop,y_shop+1);putchar('|');
	    locate(x_shop-1,y_shop+1);putchar('+');
	    locate(x_shop+1,y_shop+1);putchar('+');
	    locate(x_shop-1,y_shop-1);putchar('+');
	    locate(x_shop+1,y_shop-1);putchar('+');/*
	    if(x_shop==11&&(y_shop==14||y_shop==29||y_shop==44))
		{
			locate(x_shop,y_shop);
			putchar('B');
		} */
		shople:
		if(x_shop==1&&y_shop==3)
		{
			locate(x_shop,y_shop);
			putchar('<');
			int lshy;
			if(break_==1){
				lshy=' ';
			}
			else
				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)putchar(' ');
			            if(map[i][j]==1)putchar('=');
			            if(map[i][j]==2)putchar('W');
			            if(map[i][j]==3)putchar(char(1));
			            if(map[i][j]==4)putchar('~');
			            if(map[i][j]==5)putchar('!');
			            if(map[i][j]==6)putchar('N');
			            if(map[i][j]==7)putchar('+');
			            if(map[i][j]==8)putchar('o');
			        }
			        printf("\n");
			    }
				return;//回到地图 
			}
			else
			{
			    locate(x_shop-1,y_shop);putchar(' ');
			    locate(x_shop+1,y_shop);putchar(' ');
			    locate(x_shop,y_shop-1);putchar(' ');
			    locate(x_shop,y_shop+1);putchar(' ');
			    locate(x_shop-1,y_shop+1);putchar(' ');
			    locate(x_shop+1,y_shop+1);putchar(' ');
			    locate(x_shop-1,y_shop-1);putchar(' ');
			    locate(x_shop+1,y_shop-1);putchar(' ');
				lshx=getch();
			    switch(lshx)
			    {
			        case 72:if(x_shop-8>=1)if(x_shop==11)x_shop=1,y_shop=3;else x_shop-=8;break;
			        case 75:if(y_shop==14)x_shop=1,y_shop=3;else if(y_shop-15>=1)y_shop-=15;break;
			        case 80:if(x_shop+8<=27)if(x_shop==1&&y_shop==3)x_shop=11,y_shop=14;else x_shop+=8;break;
			        case 77:if(y_shop+15<=115)if(x_shop==1&&y_shop==3)x_shop=11,y_shop=14;else y_shop+=15;break;
			    }
			    locate(x_shop-1,y_shop);putchar('-');
			    locate(x_shop+1,y_shop);putchar('-');
			    locate(x_shop,y_shop-1);putchar('|');
			    locate(x_shop,y_shop+1);putchar('|');
			    locate(x_shop-1,y_shop+1);putchar('+');
			    locate(x_shop+1,y_shop+1);putchar('+');
			    locate(x_shop-1,y_shop-1);putchar('+');
			    locate(x_shop+1,y_shop-1);putchar('+');
			}
		}
		if(x_shop==11&&y_shop==14)//bullet_buy 
		{
			locate(x_shop,y_shop);
			putchar('B');
			int lshy;
			if(break_==1){
				lshy=' ';
			}
			else
				lshy=getch();
			if(lshy==' ')
			{
				if(cnt1>=25)
				{
					cnt1-=25;
					bltnum+=10;
				}
				else{
					locate(10,16);
					putchar('!');//没钱 
					int lshz=getch();
					locate(10,16);
					putchar(' ');
				}
			}
			else
			{
			    locate(x_shop-1,y_shop);putchar(' ');
			    locate(x_shop+1,y_shop);putchar(' ');
			    locate(x_shop,y_shop-1);putchar(' ');
			    locate(x_shop,y_shop+1);putchar(' ');
			    locate(x_shop-1,y_shop+1);putchar(' ');
			    locate(x_shop+1,y_shop+1);putchar(' ');
			    locate(x_shop-1,y_shop-1);putchar(' ');
			    locate(x_shop+1,y_shop-1);putchar(' ');
				lshx=getch();
			    switch(lshx)
			    {
			        case 72:if(x_shop-8>=1)if(x_shop==11)x_shop=1,y_shop=3;else x_shop-=8;break;
			        case 75:if(y_shop==14)x_shop=1,y_shop=3;else if(y_shop-15>=1)y_shop-=15;break;
			        case 80:if(x_shop+8<=27)if(x_shop==1&&y_shop==3)x_shop=11,y_shop=14;else x_shop+=8;break;
			        case 77:if(y_shop+15<=115)if(x_shop==1&&y_shop==3)x_shop=11,y_shop=14;else y_shop+=15;break;
			    }
			    locate(x_shop-1,y_shop);putchar('-');
			    locate(x_shop+1,y_shop);putchar('-');
			    locate(x_shop,y_shop-1);putchar('|');
			    locate(x_shop,y_shop+1);putchar('|');
			    locate(x_shop-1,y_shop+1);putchar('+');
			    locate(x_shop+1,y_shop+1);putchar('+');
			    locate(x_shop-1,y_shop-1);putchar('+');
			    locate(x_shop+1,y_shop-1);putchar('+');
			}
		}
		if(x_shop==11&&y_shop==29)//life_buy
		{
			locate(x_shop,y_shop);
			putchar('B');
			int lshy;
			if(break_==1){
				lshy=' ';
			}
			else
				lshy=getch();
			if(lshy==' ')
			{
				if(cnt1>=500)
				{
					cnt1-=500;
					A_life+=10;
				}
				else{
					locate(10,31);
					putchar('!');
					int lshz=getch();
					locate(10,31);
					putchar(' ');
				}
			}
			else
			{
				lshx=getch();
			    locate(x_shop-1,y_shop);putchar(' ');
			    locate(x_shop+1,y_shop);putchar(' ');
			    locate(x_shop,y_shop-1);putchar(' ');
			    locate(x_shop,y_shop+1);putchar(' ');
			    locate(x_shop-1,y_shop+1);putchar(' ');
			    locate(x_shop+1,y_shop+1);putchar(' ');
			    locate(x_shop-1,y_shop-1);putchar(' ');
			    locate(x_shop+1,y_shop-1);putchar(' ');
			    switch(lshx)
			    {
			        case 72:if(x_shop-8>=1)if(x_shop==11)x_shop=1,y_shop=3;else x_shop-=8;break;
			        case 75:if(y_shop==14)x_shop=1,y_shop=3;else if(y_shop-15>=1)y_shop-=15;break;
			        case 80:if(x_shop+8<=27)if(x_shop==1&&y_shop==3)x_shop=11,y_shop=14;else x_shop+=8;break;
			        case 77:if(y_shop+15<=115)if(x_shop==1&&y_shop==3)x_shop=11,y_shop=14;else y_shop+=15;break;
			    }
			    locate(x_shop-1,y_shop);putchar('-');
			    locate(x_shop+1,y_shop);putchar('-');
			    locate(x_shop,y_shop-1);putchar('|');
			    locate(x_shop,y_shop+1);putchar('|');
			    locate(x_shop-1,y_shop+1);putchar('+');
			    locate(x_shop+1,y_shop+1);putchar('+');
			    locate(x_shop-1,y_shop-1);putchar('+');
			    locate(x_shop+1,y_shop-1);putchar('+');
			}
		}
		if(x_shop==11&&y_shop==44)//DIS_blt_buy
		{
			locate(x_shop,y_shop);
			putchar('B');
			int lshy;
			if(break_==1){
				lshy=' ';
			}
			else
				lshy=getch();
			if(lshy==' ')
			{
				if(cnt1>=500)
				{
					cnt1-=500;
					DIS_blt+=10;
				}
				else{
					locate(10,46);
					putchar('!');
					int lshz=getch();
					locate(10,46);
					putchar(' ');
				}
			}
			else
			{
				lshx=getch();
			    locate(x_shop-1,y_shop);putchar(' ');
			    locate(x_shop+1,y_shop);putchar(' ');
			    locate(x_shop,y_shop-1);putchar(' ');
			    locate(x_shop,y_shop+1);putchar(' ');
			    locate(x_shop-1,y_shop+1);putchar(' ');
			    locate(x_shop+1,y_shop+1);putchar(' ');
			    locate(x_shop-1,y_shop-1);putchar(' ');
			    locate(x_shop+1,y_shop-1);putchar(' ');
			    switch(lshx)
			    {
			        case 72:if(x_shop-8>=1)if(x_shop==11)x_shop=1,y_shop=3;else x_shop-=8;break;
			        case 75:if(y_shop==14)x_shop=1,y_shop=3;else if(y_shop-15>=1)y_shop-=15;break;
			        case 80:if(x_shop+8<=27)if(x_shop==1&&y_shop==3)x_shop=11,y_shop=14;else x_shop+=8;break;
			        case 77:if(y_shop+15<=115)if(x_shop==1&&y_shop==3)x_shop=11,y_shop=14;else y_shop+=15;break;
			    }
			    locate(x_shop-1,y_shop);putchar('-');
			    locate(x_shop+1,y_shop);putchar('-');
			    locate(x_shop,y_shop-1);putchar('|');
			    locate(x_shop,y_shop+1);putchar('|');
			    locate(x_shop-1,y_shop+1);putchar('+');
			    locate(x_shop+1,y_shop+1);putchar('+');
			    locate(x_shop-1,y_shop-1);putchar('+');
			    locate(x_shop+1,y_shop-1);putchar('+');
			}
		}
		if(x_shop==11&&y_shop==59)//shelter_buy
		{
			locate(x_shop,y_shop);
			putchar('B');
			int lshy;
			if(break_==1){
				lshy=' ';
			}
			else
				lshy=getch();
			if(lshy==' ')
			{
				if(cnt1>=100)
				{
					cnt1-=100;
					numshelter++;
				}
				else{
					locate(10,61);
					putchar('!');
					int lshz=getch();
					locate(10,61);
					putchar(' ');
				}
			}
			else
			{
				lshx=getch();
			    locate(x_shop-1,y_shop);putchar(' ');
			    locate(x_shop+1,y_shop);putchar(' ');
			    locate(x_shop,y_shop-1);putchar(' ');
			    locate(x_shop,y_shop+1);putchar(' ');
			    locate(x_shop-1,y_shop+1);putchar(' ');
			    locate(x_shop+1,y_shop+1);putchar(' ');
			    locate(x_shop-1,y_shop-1);putchar(' ');
			    locate(x_shop+1,y_shop-1);putchar(' ');
			    switch(lshx)
			    {
			        case 72:if(x_shop-8>=1)if(x_shop==11)x_shop=1,y_shop=3;else x_shop-=8;break;
			        case 75:if(y_shop==14)x_shop=1,y_shop=3;else if(y_shop-15>=1)y_shop-=15;break;
			        case 80:if(x_shop+8<=27)if(x_shop==1&&y_shop==3)x_shop=11,y_shop=14;else x_shop+=8;break;
			        case 77:if(y_shop+15<=115)if(x_shop==1&&y_shop==3)x_shop=11,y_shop=14;else y_shop+=15;break;
			    }
			    locate(x_shop-1,y_shop);putchar('-');
			    locate(x_shop+1,y_shop);putchar('-');
			    locate(x_shop,y_shop-1);putchar('|');
			    locate(x_shop,y_shop+1);putchar('|');
			    locate(x_shop-1,y_shop+1);putchar('+');
			    locate(x_shop+1,y_shop+1);putchar('+');
			    locate(x_shop-1,y_shop-1);putchar('+');
			    locate(x_shop+1,y_shop-1);putchar('+');
			}
		}
		if(x_shop==11&&y_shop==74)//tower_buy
		{
			locate(x_shop,y_shop);
			putchar('B');
			int lshy;
			if(break_==1){
				lshy=' ';
			}
			else
				lshy=getch();
			if(lshy==' ')
			{
				if(cnt1>=650)
				{
					cnt1-=650;
					numtower++;
				}
				else{
					locate(10,76);
					putchar('!');
					int lshz=getch();
					locate(10,76);
					putchar(' ');
				}
			}
			else
			{
				lshx=getch();
			    locate(x_shop-1,y_shop);putchar(' ');
			    locate(x_shop+1,y_shop);putchar(' ');
			    locate(x_shop,y_shop-1);putchar(' ');
			    locate(x_shop,y_shop+1);putchar(' ');
			    locate(x_shop-1,y_shop+1);putchar(' ');
			    locate(x_shop+1,y_shop+1);putchar(' ');
			    locate(x_shop-1,y_shop-1);putchar(' ');
			    locate(x_shop+1,y_shop-1);putchar(' ');
			    switch(lshx)
			    {
			        case 72:if(x_shop-8>=1)if(x_shop==11)x_shop=1,y_shop=3;else x_shop-=8;break;
			        case 75:if(y_shop==14)x_shop=1,y_shop=3;else if(y_shop-15>=1)y_shop-=15;break;
			        case 80:if(x_shop+8<=27)if(x_shop==1&&y_shop==3)x_shop=11,y_shop=14;else x_shop+=8;break;
			        case 77:if(y_shop+15<=115)if(x_shop==1&&y_shop==3)x_shop=11,y_shop=14;else y_shop+=15;break;
			    }
			    locate(x_shop-1,y_shop);putchar('-');
			    locate(x_shop+1,y_shop);putchar('-');
			    locate(x_shop,y_shop-1);putchar('|');
			    locate(x_shop,y_shop+1);putchar('|');
			    locate(x_shop-1,y_shop+1);putchar('+');
			    locate(x_shop+1,y_shop+1);putchar('+');
			    locate(x_shop-1,y_shop-1);putchar('+');
			    locate(x_shop+1,y_shop-1);putchar('+');
			}
		}
		if(x_shop==11&&y_shop==89)//magma_buy
		{
			locate(x_shop,y_shop);
			putchar('B');
			int lshy;
			if(break_==1){
				lshy=' ';
			}
			else
				lshy=getch();
			if(lshy==' ')
			{
				if(cnt1>=50)
				{
					cnt1-=50;
					nummagma++;
				}
				else{
					locate(10,91);
					putchar('!');
					int lshz=getch();
					locate(10,91);
					putchar(' ');
				}
			}
			else
			{
				lshx=getch();
			    locate(x_shop-1,y_shop);putchar(' ');
			    locate(x_shop+1,y_shop);putchar(' ');
			    locate(x_shop,y_shop-1);putchar(' ');
			    locate(x_shop,y_shop+1);putchar(' ');
			    locate(x_shop-1,y_shop+1);putchar(' ');
			    locate(x_shop+1,y_shop+1);putchar(' ');
			    locate(x_shop-1,y_shop-1);putchar(' ');
			    locate(x_shop+1,y_shop-1);putchar(' ');
			    switch(lshx)
			    {
			        case 72:if(x_shop-8>=1)if(x_shop==11)x_shop=1,y_shop=3;else x_shop-=8;break;
			        case 75:if(y_shop==14)x_shop=1,y_shop=3;else if(y_shop-15>=1)y_shop-=15;break;
			        case 80:if(x_shop+8<=27)if(x_shop==1&&y_shop==3)x_shop=11,y_shop=14;else x_shop+=8;break;
			        case 77:if(y_shop+15<=115)if(x_shop==1&&y_shop==3)x_shop=11,y_shop=14;else y_shop+=15;break;
			    }
			    locate(x_shop-1,y_shop);putchar('-');
			    locate(x_shop+1,y_shop);putchar('-');
			    locate(x_shop,y_shop-1);putchar('|');
			    locate(x_shop,y_shop+1);putchar('|');
			    locate(x_shop-1,y_shop+1);putchar('+');
			    locate(x_shop+1,y_shop+1);putchar('+');
			    locate(x_shop-1,y_shop-1);putchar('+');
			    locate(x_shop+1,y_shop-1);putchar('+');
			}
		}
		if(x_shop==11&&y_shop==104)//hydro_buy
		{
			locate(x_shop,y_shop);
			putchar('B');
			int lshy;
			if(break_==1){
				lshy=' ';
			}
			else
				lshy=getch();
			if(lshy==' ')
			{
				if(cnt1>=200)
				{
					cnt1-=200;
					numhydro++;
				}
				else{
					locate(10,106);
					putchar('!');
					int lshz=getch();
					locate(10,106);
					putchar(' ');
				}
			}
			else
			{
				lshx=getch();
			    locate(x_shop-1,y_shop);putchar(' ');
			    locate(x_shop+1,y_shop);putchar(' ');
			    locate(x_shop,y_shop-1);putchar(' ');
			    locate(x_shop,y_shop+1);putchar(' ');
			    locate(x_shop-1,y_shop+1);putchar(' ');
			    locate(x_shop+1,y_shop+1);putchar(' ');
			    locate(x_shop-1,y_shop-1);putchar(' ');
			    locate(x_shop+1,y_shop-1);putchar(' ');
			    switch(lshx)
			    {
			        case 72:if(x_shop-8>=1)if(x_shop==11)x_shop=1,y_shop=3;else x_shop-=8;break;
			        case 75:if(y_shop==14)x_shop=1,y_shop=3;else if(y_shop-15>=1)y_shop-=15;break;
			        case 80:if(x_shop+8<=27)if(x_shop==1&&y_shop==3)x_shop=11,y_shop=14;else x_shop+=8;break;
			        case 77:if(y_shop+15<=115)if(x_shop==1&&y_shop==3)x_shop=11,y_shop=14;else y_shop+=15;break;
			    }
			    locate(x_shop-1,y_shop);putchar('-');
			    locate(x_shop+1,y_shop);putchar('-');
			    locate(x_shop,y_shop-1);putchar('|');
			    locate(x_shop,y_shop+1);putchar('|');
			    locate(x_shop-1,y_shop+1);putchar('+');
			    locate(x_shop+1,y_shop+1);putchar('+');
			    locate(x_shop-1,y_shop-1);putchar('+');
			    locate(x_shop+1,y_shop-1);putchar('+');
			}
		}
		if(x_shop==19&&y_shop==14)//bltshelter_buy
		{
			locate(x_shop,y_shop);
			putchar('B');
			int lshy;
			if(break_==1){
				lshy=' ';
			}
			else
				lshy=getch();
			if(lshy==' ')
			{
				if(cnt1>=300)
				{
					cnt1-=300;
					numbltshelter++;
				}
				else{
					locate(18,16);
					putchar('!');
					int lshz=getch();
					locate(18,16);
					putchar(' ');
				}
			}
			else
			{
				lshx=getch();
			    locate(x_shop-1,y_shop);putchar(' ');
			    locate(x_shop+1,y_shop);putchar(' ');
			    locate(x_shop,y_shop-1);putchar(' ');
			    locate(x_shop,y_shop+1);putchar(' ');
			    locate(x_shop-1,y_shop+1);putchar(' ');
			    locate(x_shop+1,y_shop+1);putchar(' ');
			    locate(x_shop-1,y_shop-1);putchar(' ');
			    locate(x_shop+1,y_shop-1);putchar(' ');
			    switch(lshx)
			    {
			        case 72:if(x_shop-8>=1)if(x_shop==11)x_shop=1,y_shop=3;else x_shop-=8;break;
			        case 75:if(y_shop==14)x_shop=1,y_shop=3;else if(y_shop-15>=1)y_shop-=15;break;
			        case 80:if(x_shop+8<=27)if(x_shop==1&&y_shop==3)x_shop=11,y_shop=14;else x_shop+=8;break;
			        case 77:if(y_shop+15<=115)if(x_shop==1&&y_shop==3)x_shop=11,y_shop=14;else y_shop+=15;break;
			    }
			    locate(x_shop-1,y_shop);putchar('-');
			    locate(x_shop+1,y_shop);putchar('-');
			    locate(x_shop,y_shop-1);putchar('|');
			    locate(x_shop,y_shop+1);putchar('|');
			    locate(x_shop-1,y_shop+1);putchar('+');
			    locate(x_shop+1,y_shop+1);putchar('+');
			    locate(x_shop-1,y_shop-1);putchar('+');
			    locate(x_shop+1,y_shop-1);putchar('+');
			}
		}
		if(x_shop==19&&y_shop==29)//shop_buy
		{
			locate(x_shop,y_shop);
			putchar('B');
			int lshy;
			if(break_==1){
				lshy=' ';
			}
			else
				lshy=getch();
			if(lshy==' ')
			{
				if(cnt1>=1500)
				{
					cnt1-=1500;
					numN++;
				}
				else{
					locate(18,31);
					putchar('!');
					int lshz=getch();
					locate(18,31);
					putchar(' ');
				}
			}
			else
			{
				lshx=getch();
			    locate(x_shop-1,y_shop);putchar(' ');
			    locate(x_shop+1,y_shop);putchar(' ');
			    locate(x_shop,y_shop-1);putchar(' ');
			    locate(x_shop,y_shop+1);putchar(' ');
			    locate(x_shop-1,y_shop+1);putchar(' ');
			    locate(x_shop+1,y_shop+1);putchar(' ');
			    locate(x_shop-1,y_shop-1);putchar(' ');
			    locate(x_shop+1,y_shop-1);putchar(' ');
			    switch(lshx)
			    {
			        case 72:if(x_shop-8>=1)if(x_shop==11)x_shop=1,y_shop=3;else x_shop-=8;break;
			        case 75:if(y_shop==14)x_shop=1,y_shop=3;else if(y_shop-15>=1)y_shop-=15;break;
			        case 80:if(x_shop+8<=27)if(x_shop==1&&y_shop==3)x_shop=11,y_shop=14;else x_shop+=8;break;
			        case 77:if(y_shop+15<=115)if(x_shop==1&&y_shop==3)x_shop=11,y_shop=14;else y_shop+=15;break;
			    }
			    locate(x_shop-1,y_shop);putchar('-');
			    locate(x_shop+1,y_shop);putchar('-');
			    locate(x_shop,y_shop-1);putchar('|');
			    locate(x_shop,y_shop+1);putchar('|');
			    locate(x_shop-1,y_shop+1);putchar('+');
			    locate(x_shop+1,y_shop+1);putchar('+');
			    locate(x_shop-1,y_shop-1);putchar('+');
			    locate(x_shop+1,y_shop-1);putchar('+');
			}
		}
	}
}
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()
{
	ifstream iread_txt;                     // 初始化输入流
	ofstream write_txt;                     // 初始化输出流 
	iread_txt.open("diary.txt");
	iread_txt>>transfer;
	//locate(5,0),cout<<transfer;
	iread_txt.close();
	write_txt.open("diary.txt");
	write_txt<<transfer;
	write_txt.close();
    while(1)
    {
    	locate(0,0);putchar('@');
//    	locate(0,20);putchar(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]);
						putchar('H');
					}
					cntR=0;
				}
            
			if((int)difftime(second,first)%50==0)
			{
				for(int cntcntbltslt=1;cntcntbltslt<=cntbltslt;cntcntbltslt++)//Shelter Bullet ++ 
				{
					bltslt[bltsltx[cntcntbltslt]][bltslty[cntcntbltslt]]++;
				}
			}
			sectow=clock();
			if(sectow-firtow>=10000)
			{
				firtow=clock();
				for(int cntcnttower=1;cntcnttower<=cnttower;cntcnttower++)//tower direction 
				{
					if(map[towerx[cntcnttower]][towery[cntcnttower]]!=8)continue;
					if(rand()%2==1)goto here2;
					tower[towerx[cntcnttower]][towery[cntcnttower]]%=8;
					tower[towerx[cntcnttower]][towery[cntcnttower]]++;
					cntblt++;liveblt[cntblt]=1;bltx[cntblt]=towerx[cntcnttower],blty[cntblt]=towery[cntcnttower];
					bltdier[cntblt]=tower[towerx[cntcnttower]][towery[cntcnttower]];
					here2:
					for(int ii=-1;ii<=1;ii++)
					{
						for(int jj=-1;jj<=1;jj++)
						{
							if(map[towerx[cntcnttower]+ii][towery[cntcnttower]+jj]!=1&&
							map[towerx[cntcnttower]+ii][towery[cntcnttower]+jj]!=6&&
							map[towerx[cntcnttower]+ii][towery[cntcnttower]+jj]!=7&&
							map[towerx[cntcnttower]+ii][towery[cntcnttower]+jj]!=8&&
							towerx[cntcnttower]+ii!=29&&towery[cntcnttower]+jj!=117)
							{
								map[towerx[cntcnttower]+ii][towery[cntcnttower]+jj]=1;
								locate(towerx[cntcnttower]+ii,towery[cntcnttower]+jj);
								putchar('=');
							}
						}
					}
				}
			}
			
			if((int)difftime(second,first)%25==0&&cnt2>=1)//回血 
			{
				cnt2--;
			}
            if(map[x1][y1]==1||map[x1][y1]==7||map[x1][y1]==8)//安全屋回血 
			{
				if(cnt2>=1)
					cnt2--;
				onfire=false;
			}
			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,kkk[cntcnt]=rand()%30;
					cnt+=9;
				}
	            if(cnt==1&&intro_1==0){
	            	intro_1=1;
	            	MessageBox(NULL,"#: 触碰减血!\n$: 触碰加分!","@",MB_OK);
				}
	            live[cnt]=0;
			}
			else if(gigantic==1&&factcnt<=7*diffy)cntrelive=1;
			else if(cnt>99*diffy||(gigantic==1&&cnt>499*diffy))
			{
				for(int i=1;i<=cnt;i++)
				{
					if(live[i]==1){
						continue;
					}
					locate(x[i],y[i]);
					putchar('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]);
					putchar('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]);
					putchar('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]);
					putchar('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]);
						putchar('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(map[xR[i]][yR[i]]==4){
					liveR[i]=1;
					compleR(i,1,0);
					xR[i]=rand()%26+1,yR[i]=rand()%116+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||map[xR[i]][yR[i]]==4)xR[i]=rand()%26+1,yR[i]=rand()%116+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]),putchar('!');
            		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),putchar('!');
							}
						}
					}
				}
			}
            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);putchar(char(2));
                locate(bossx-1,bossy);putchar('#');
                locate(bossx+1,bossy);putchar('#');
                locate(bossx,bossy-1);putchar('#');
                locate(bossx,bossy+1);putchar('#');
			}
            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++;
                
				iread_txt.open("diary.txt");
				iread_txt>>transfer;
				//locate(5,0),cout<<transfer;
				iread_txt.close();
				
				write_txt.open("diary.txt");
				write_txt <<transfer<<'~';
            	write_txt.close();
				
	            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)//闪屏警告 
            {
				iread_txt.open("diary.txt");
				iread_txt>>transfer;
				//locate(5,0),cout<<transfer;
				iread_txt.close();
				
				write_txt.open("diary.txt");
                cnt2++;
				write_txt <<transfer;
				if(transfer[strlen(transfer)-1]!='!')
				write_txt <<'!';
            	write_txt.close();
				
                locate(x1,y1);
                putchar('!');
                Sleep(50);
                locate(x1,y1);
                Color(bBLUE,bRED,bGREEN,bINTE);
                putchar('@');
                Color(fBLUE,fRED,fGREEN,fINTE);
                Sleep(50);
                locate(x1,y1);
                putchar('!');
                Sleep(50);
                locate(x1,y1);
                Color(bBLUE,bRED,bGREEN,bINTE);
                putchar('@');
                Color(fBLUE,fRED,fGREEN,fINTE);
                Sleep(50);
            }
            if(uinwater>=10)//闪屏警告 
            {
                cnt2++;
                uinwater-=3;
                locate(x1,y1);
                putchar('~');
                Sleep(50);
                locate(x1,y1);
                Color(bBLUE,bRED,bGREEN,bINTE);
                putchar('@');
                Color(fBLUE,fRED,fGREEN,fINTE);
                Sleep(50);
                locate(x1,y1);
                putchar('~');
                Sleep(50);
                locate(x1,y1);
                Color(bBLUE,bRED,bGREEN,bINTE);
                putchar('@');
                Color(fBLUE,fRED,fGREEN,fINTE);
                Sleep(50);
            }
            if(onfire==true)
            {
                locate(3,0);
                puts("!!!!");//信息码 
            }
            else 
            {
                locate(3,0);
                puts("safe     ");//信息码 
            }
            if(map[x1][y1]==4)//信息码 
            {
                locate(3,0);
                for(int i=1;i<=10-uinwater;i++)
                {
                    putchar('o');
                }
                for(int i=1;i<=uinwater;i++)
                {
                    putchar(' ');
                }
            }
            if(cnt2>A_life-5)
            {
   	            if(intro_6==0){
	            	intro_6=1;
	            	MessageBox(NULL,"安全屋回血!","@",MB_OK);
				}
			}
            if(gmGnd!='0'&&(cnt2>A_life||(map[14][91]!=6&&map[13][91]!=6&&map[14][92]!=6&&map[13][92]!=6)))//寄 
            {
                first=time(NULL);
                puts("\n死亡  ");
                Sleep(3000);
                printf("得分:%d\n",time(NULL)-defen);
                Sleep(5000);getch();
                cnt2=0;
                cnt1=0;
                system("cls");
                first=time(NULL);
				// 关闭文件流
				write_txt.close();
                main();
            }
            shuafen++;
            locate(x1,y1);
            Color(bBLUE,bRED,bGREEN,bINTE);
            putchar('@');//防止卡帧
            Color(fBLUE,fRED,fGREEN,fINTE); 
            if(shuafen%3000==10&&cntfen<10)
            {
            	shuafen=10;
                cntfen++; 
                fenx[cntfen]=rand()%5+3;
                feny[cntfen]=rand()%5+5;
                fenlive[cntfen]=1;
            }
            bool hey=0;
            for(int i=0;i<=cntfen;i++)
            {
                if(fenlive[i]==0)continue;
                hey=1;
                locate(fenx[i],feny[i]);
                putchar('*');//双倍经验! 
            }
            if(hey==0)cntfen=0;
            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);
                        putchar('@'),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);
							putchar('@'),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 //寄 
                        {
                            putchar('#'),cnt2++,kkk03++;
							iread_txt.open("diary.txt");
							iread_txt>>transfer;
							iread_txt.close();
							
							write_txt.open("diary.txt");
				            write_txt <<transfer<<'#';
				            write_txt.close();

                    	}
			            locate(0,2);puts("   ");
			            locate(0,0);printf("@:%d",cnt1);
			            locate(1,2);puts("   ");
			            locate(1,0);printf("%:%d",A_life-cnt2);
			            locate(2,2);puts("   ");
			            locate(2,0);printf(".:%d",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),putchar('@'),Color(fBLUE,fRED,fGREEN,fINTE),cnt1++,liveo[i%9999]=1;
                        else 
                        {
                            putchar('#'),cnt2++,kkk03++;
							iread_txt.open("diary.txt");
							iread_txt>>transfer;
							iread_txt.close();
							
							write_txt.open("diary.txt");
				            write_txt <<transfer<<'O';
				            write_txt.close();

                    	}
			            locate(0,2);puts("   ");
			            locate(0,0);printf("@:%d",cnt1);
			            locate(1,2);puts("   ");
			            locate(1,0);printf("%:%d",A_life-cnt2);
			            locate(2,2);puts("   ");
			            locate(2,0);printf(".:%d",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();//go_shopping
        }
        else luogu=0;
        locate(30,15);
        //printf("%d %d",fir2,sec2);
        sec2=clock();
        if((sec2-fir2)>=50&&luogu2==0)//让子弹飞 
        {
        	fir2=clock();
            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);
                putchar('@');//防止被子弹淹没 
                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),putchar('@'),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),putchar('@'),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;
				iread_txt.open("diary.txt");
				iread_txt>>transfer;
				iread_txt.close();
				
				write_txt.open("diary.txt");
	            write_txt <<transfer<<'*';
	            write_txt.close();

                fenlive[i%10]=0;
            }
        }
        while(kbhit())//如果有输入 
        {
            locate(0,2);puts("   ");
            locate(0,0);printf("@:%llu",cnt1);
            locate(1,2);puts("   ");
            locate(1,0);printf("%:%d",A_life-cnt2);
            locate(2,2);puts("   ");
            locate(2,0);printf(".:%d",bltnum);
            int lshx;
            lshx=getch();
            if(lshx=='<')main();
            if(lshx!='i'&&lshx!='j'&&lshx!='k'&&lshx!='l'&&lshx!='u'&&lshx!='o'&&lshx!='m'&&lshx!=','&&lshx!=' '&&lshx!='!'&&lshx!='~'&&lshx!='N'&&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);
                putchar('@');
                Color(fBLUE,fRED,fGREEN,fINTE);
            }
            if(bltnum>0||gmGnd=='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(numN>0||gmGnd=='0')
			{
				if(lshx=='N'){
					numN--;map[x1][y1]=6;
					iread_txt.open("diary.txt");
					iread_txt>>transfer;
					iread_txt.close();
					
					write_txt.open("diary.txt");
		            write_txt <<transfer<<'N';
		            write_txt.close();
				}
	        	locate(30,32),puts("       ");
	        	locate(30,30),printf("N:%d",numN);
			}
			
			if(numhydro>0||gmGnd=='0')
			{
				if(lshx=='~'){
					numhydro--;map[x1][y1]=4;
				}
	        	locate(30,22),puts("       ");
	        	locate(30,20),printf("~:%d",numhydro);
			}
			if(nummagma>0||gmGnd=='0')
			{
				if(lshx=='!'){
					nummagma--;map[x1][y1]=5;
				}
	        	locate(31,12),puts("       ");
	        	locate(31,10),printf("!:%d",nummagma);
			}
			if(numtower>0||gmGnd=='0')
			{
				if(lshx==' '&&map[x1][y1]==7){
					numtower--,cnttower++,towerx[cnttower]=x1,towery[cnttower]=y1,map[x1][y1]=8;
					iread_txt.open("diary.txt");
					iread_txt>>transfer;
					iread_txt.close();
					
					write_txt.open("diary.txt");
		            write_txt <<transfer<<'o';
		            write_txt.close();
				}
	        	locate(30,12),puts("       ");
	        	locate(30,10),printf("o:%d",numtower);
			}
			if(numbltshelter>0||gmGnd=='0')
			{
				if(lshx==' '&&map[x1][y1]==1){
					numbltshelter--,cntbltslt++,bltsltx[cntbltslt]=x1,bltslty[cntbltslt]=y1,map[x1][y1]=7;
					iread_txt.open("diary.txt");
					iread_txt>>transfer;
					iread_txt.close();
					
					write_txt.open("diary.txt");
		            write_txt <<transfer<<'+';
		            write_txt.close();
				}
	        	locate(31,2),puts("       ");
	        	locate(31,0),printf("+:%d",numbltshelter);
			}
	        if(numshelter>0||gmGnd=='0')
	        {
	        	if(lshx==' '&&map[x1][y1]!=1&&map[x1][y1]!=6&&map[x1][y1]!=7&&map[x1][y1]!=8){
					numshelter--,map[x1][y1]=1;
					iread_txt.open("diary.txt");
					iread_txt>>transfer;
					iread_txt.close();
					
					write_txt.open("diary.txt");
		            write_txt <<transfer<<'=';
		            write_txt.close();
				}
	        	locate(30,2),puts("       ");
	        	locate(30,0),printf("=:%d",numshelter);
			}
			if(gmGnd=='0'&&lshx=='`')
			{
				map[x1][y1]=3;
			}
        }
    }
}
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()
{
	system("mode con cols=120 lines=33");
	system("cls");
	locate(14,55);
	puts("初始化中...");
	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;
	DIS_blt=50;
    bltnum=0;
	if_O_more=1;
	if_K_more=1;
	if_R_more=1;
    cnt1=0,cnt2=0;
    cnt=cntblt=cntbltslt=cntblt_ene=cntfen=cntK=cntO=cnto=cntR=0;
    numbltshelter=numhydro=nummagma=numN=numshelter=numtower=0;
    diffy=-1;
    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<1000;i++)liveO[i]=liveK[i]=liveR[i]=1;
	for(int i=0;i<10000;i++)liveo[i]=live[i]=1;

	system("color 00");Sleep(100);
	system("color 08");Sleep(100);
	locate(14,55);
	puts("SIMBLYTES  ");
	system("color 07");Sleep(100);
	system("color 0f");locate(14,55+9),getchar();hide();
	system("color 07");Sleep(100);
	system("color 08");Sleep(100);
	system("color 00");Sleep(100);
	system("cls");
	system("color 00");Sleep(100);
	locate(11,59);putchar('W');
	locate(15,54);putchar('!');
	locate(13,64);putchar('~');
	x1=14,y1=59;
	locate(14,59);
	system("color 08");Sleep(100);
	system("color 07");Sleep(100);
	system("color 0f");
	Color(bBLUE,bRED,bGREEN,bINTE);
    putchar('@');
    Color(fBLUE,fRED,fGREEN,fINTE);
    for(int i=0;i<=29;i++)
    {
    	for(int j=0;j<=117;j++)
    	{
    		if(abs(i-x1)==5&&abs(j-y1)<=7||abs(j-y1)==7&&abs(i-x1)<=5)map[i][j]=3,locate(i,j),putchar(1);
		}
	}
	while(1)
	{
		here:
        int lshx;
        lshx=getch();
        if(lshx!='i'&&lshx!='j'&&lshx!='k'&&lshx!='l'&&lshx!='u'&&lshx!='o'&&lshx!='m'&&lshx!=','&&lshx!=' ')
        {
            lshx=getch();
        	if(lshx=='b'){
				gmGnd='0';
				goto blank;
			}
            switch(lshx)
            {
                case 72:dir=0;break;
                case 75:dir=1;break;
                case 80:dir=2;break;
                case 77:dir=3;break;
                default:
                    goto here;
            }
            if(x1+direct[dir][1]<0||y1+direct[dir][0]<0||map[x1+direct[dir][1]][y1+direct[dir][0]]==3)goto here;
            comple1(1,0);
            x1+=direct[dir][1];
            y1+=direct[dir][0];
            locate(x1,y1);
			Color(bBLUE,bRED,bGREEN,bINTE);
            putchar('@');
            Color(fBLUE,fRED,fGREEN,fINTE);
            if(x1==11&&y1==59){
            	gmGnd='1';break;
			}
            if(x1==13&&y1==64){
            	gmGnd='2';break;
			}
            if(x1==15&&y1==54){
            	gmGnd='3';break;
			}
        }
	}
	blank:
    memset(map,0,sizeof map);
    if(gmGnd!='0')
	{
		for(int i=0;i<=30;i++)//grass_planting
		{
			for(int j=0;j<=118;j++)
			{
				int randd=rand()%50;
				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=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=0;i<=30;i++)//Wall
		{
			for(int j=0;j<=118;j++)
			{
				int randd=rand()%25;
				if(i>0&&map[i-1][j]==3||j>0&&map[i][j-1]==3)randd=rand()%2;
				if(i>0&&map[i-1][j]==3&&j>0&&map[i][j-1]==3)randd=rand()%7;
				if(randd==0)map[i][j]=3;
			}
		}
		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=0;i<=30;i++)//Wall
		{
			for(int j=0;j<=118;j++)
			{
				int randd=rand()%25;
				if(i>0&&map[i-1][j]==3||j>0&&map[i][j-1]==3)randd=rand()%2;
				if(i>0&&map[i-1][j]==3&&j>0&&map[i][j-1]==3)randd=rand()%7;
				if(randd==0)map[i][j]=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

	MessageBox(NULL,"子弹:'u' 'i' 'o' 'j' 'k' 'l' 'm' ',' 控制\n@:\n   上\n左 下 右\n=:安全屋:	免去一切伤害\nW:草丛:	降低可见度\n:墙:		不可通过\n!:岩浆:	触碰着火!\n~:水:		小心溺亡!","@",MB_OK);
	MessageBox(NULL,"前哨(=):空格放置\n岗亭(+):生产子弹,踩上离开获得,空格放置在\"=\"上\n塔(o):发射子弹,周围产生\"=\",空格放置在\"+\"上","@",MB_OK);
	MessageBox(NULL,"水(~):shift+`放置\n岩浆(!):shift+1放置\n商店(N):shift+n放置\nshift+,:退出","@",MB_OK);
	MessageBox(NULL,"难度输入\"gigantic\"高难度游戏体验","@",MB_OK);
	MessageBox(NULL,"保护最初的4个商店","@",MB_OK);
    system("cls");
    for(int i=0;i<=30;i++)//map_printing
    {
        for(int j=0;j<=118;j++)
        {
            if(map[i][j]==0)putchar(' ');
            if(map[i][j]==1)putchar('=');
            if(map[i][j]==2)putchar('W');
            if(map[i][j]==3)putchar(char(1));
            if(map[i][j]==4)putchar('~');
            if(map[i][j]==5)putchar('!');
            if(map[i][j]==6)putchar('N');
            if(map[i][j]==7)putchar('+');
            if(map[i][j]==8)putchar('o');
        }
        printf("\n");
    }
    //preparation
	srand(time(0));
	ifstream iread_txt;                     // 初始化输入流
	ofstream write_txt;                     // 初始化输出流 
	
	iread_txt.open("diary.txt");
	iread_txt>>transfer;
	iread_txt.close();
	
	write_txt.open("diary.txt");
    write_txt<<transfer<<"@";
	write_txt.close();
	
	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);
    puts("难度:(1~10)");locate(0,11);show();
    string D;
    cin>>D;
    while(!(D.length()==1&&D[0]>'0'&&D[0]<'9'||D=="10"&&D.length()==2||D=="gigantic"))
    {
		locate(0,11);
    	for(int i=11;i<=11+D.length();i++){
            if(map[0][i]==0)putchar(' ');
            if(map[0][i]==1)putchar('=');
            if(map[0][i]==2)putchar('W');
            if(map[0][i]==3)putchar(char(1));
            if(map[0][i]==4)putchar('~');
            if(map[0][i]==5)putchar('!');
            if(map[0][i]==6)putchar('N');
            if(map[0][i]==7)putchar('+');
            if(map[0][i]==8)putchar('o');
		}
		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);
	for(int i=0;i<=20;i++){
        if(map[0][i]==0)putchar(' ');
        if(map[0][i]==1)putchar('=');
        if(map[0][i]==2)putchar('W');
        if(map[0][i]==3)putchar(char(1));
        if(map[0][i]==4)putchar('~');
        if(map[0][i]==5)putchar('!');
        if(map[0][i]==6)putchar('N');
        if(map[0][i]==7)putchar('+');
        if(map[0][i]==8)putchar('o');
	}
    locate(0,0);
    puts("#:攻击\n$:休眠\nO:井母\n*:经验\n");
    Sleep(3*1000);
    locate(0,0);
    puts("      \n      \n      \n     \n");
    first=time(NULL);
    fir=fir2=firtow=clock();
    locate(0,0);printf("@:%d",cnt1);
    locate(1,2);puts("  ");
    locate(1,0);printf("%:%d",30-cnt2);
    locate(2,0);printf(".:%d",bltnum);
    defen=time(NULL);
    x1=14,y1=93;
    main1();
    
    return 0;//我甚至 
}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值