我去 可食用
在洛谷上看到的一个项目
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;//我甚至
}