简单字节类免费原创小游戏源码。
游戏概念图:
下面贴上最新版代码(难度输入“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;//我甚至
}