代码如下
#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
#include<time.h>
using namespace std;
int t,nl,dl,Money,Moo,Dao,Yi,Shan,Qing,Hu;
int Biao,Biaob,Bao=1,Baob,Baod=1,Baodb,Hub,Fengb,Sha,Jian,Shab,Jianb;
int X[10];
bool Daob,Yib,Shanb,Qingb,Hubb;
struct node {int Zhong,Xue,Bing,Hui,Du;} N[100001],D[100001];
void Yan(int a)
{
if(a==0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
if(a==1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);
if(a==2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
if(a==3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
if(a==4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
if(a==5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
if(a>=6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
}
void Bai() {SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);}
void Cout(int x,int a)
{
Yan(a);int k;
if(x==1) {if(a==0) cout<<"城墙";if(a==1) cout<<"加农炮";if(a==2) cout<<"重机枪";if(a==3) cout<<"迫击炮";if(a==4) cout<<"喷火器";if(a==5) cout<<"火箭炮";if(a>=6) cout<<"电磁炮";}
if(x==2)
{
if(a==1) cout<<"步兵",Money+=20,k=20;if(a==2) cout<<"骑兵",Money+=30,k=30;if(a==3) cout<<"炮兵",Money+=30,k=30;if(a==4) cout<<"药兵",Money+=30,k=30;if(a==6||a==7) cout<<"炮灰",Money+=10,k=10;if(a==5) cout<<"坦克",Money+=50,k=50;
if(a==8) Yan(3),cout<<"金刚机甲",Money+=100;if(a==9) Yan(1),cout<<"寒冰机甲",Money+=100;if(a==10) Yan(2),cout<<"木毒机甲",Money+=100;if(a==11) Yan(3),cout<<"飓风机甲",Money+=100;if(a==12) Yan(4),cout<<"烈焰机甲",Money+=100;if(a>=8) k=100;
}
Yan(4);Sleep(200),cout<<"......爆!!!";
if(x==2) Yan(5),cout<<"掉落"<<k<<"金币!";cout<<endl<<endl,Sha++;
if(Sha%20==0&&Shab<Sha) Yan(5),cout<<"成就:杀死"<<Sha<<"个敌人,完成!加30金币!"<<endl<<endl,Sleep(500),Bai(),Money+=30,Shab=Sha;
if(Money>=300) Money=300,Yan(3),cout<<"金币储量已达上限!"<<endl<<endl,Bai(),Sleep(500);
Bai();
}
void War()
{
int zn=0,zd=0;if(nl-5>0) zn=nl%5;if(dl-5>0) zd=dl%5;cout<<"┌";
for(int i=0;i<=40;i++) cout<<'-';cout<<"┐"<<endl<<"┆";
for(int i=5;i>0;i--) if(i>=nl+1) cout<<" ";
for(int i=5;i>0;i--)
{
if(i>=nl+1) continue;
Yan(1);if(i<=0) break;
if(N[i].Bing>0) Yan(6);
if(N[i].Du>0) Yan(2);
if(N[i].Hui>0) Yan(3);
cout<<setw(4)<<N[i].Xue; Bai();
}
for(int i=1;i<=5;i++)
{
Yan(4);
if(i>dl) {cout<<" ";continue;}
if(Baodb!=0) Yan(2);
if(D[i].Zhong>=8) Yan(3);
cout<<setw(4)<<D[i].Xue; Bai();
}Bai();
cout<<" ┆"<<endl<<"┆";
for(int i=5;i>0;i--) if(i>=nl+1) cout<<" ";
for(int i=5;i>0;i--)
{
if(i>=nl+1) continue;
Yan(N[i].Zhong);if(N[i].Bing>0) Yan(6);
if(N[i].Zhong==0) cout<<" ▎";if(N[i].Zhong==1) cout<<" ●";if(N[i].Zhong==2) cout<<" ■";if(N[i].Zhong==3) cout<<" ▲";if(N[i].Zhong==4) cout<<" ▼";if(N[i].Zhong==5) cout<<" ★";if(N[i].Zhong>=6) cout<<" ◆";
Bai();
}
for(int i=1;i<=5;i++)
{
if(i>dl) {cout<<" ";continue;}
Yan(D[i].Zhong);if(D[i].Bing>0) Yan(4);
if(D[i].Zhong==1) cout<<" ○";if(D[i].Zhong==2) cout<<" □";if(D[i].Zhong==3) cout<<" △";if(D[i].Zhong==4) cout<<" ▽";if(D[i].Zhong==5) cout<<" ☆";if(D[i].Zhong>=6&&D[i].Zhong<=7) cout<<" ◇";if(D[i].Zhong==8) Yan(5),cout<<" 金";if(D[i].Zhong==9) Yan(1),cout<<" 冰";if(D[i].Zhong==10) Yan(2),cout<<" 毒";if(D[i].Zhong==11) Yan(3),cout<<" 风";if(D[i].Zhong==12) Yan(4),cout<<" 火";
Bai();
}
if(zn>0||zd>0)
{
cout<<" ┆"<<endl<<"┆";
for(int i=5-zn;i>0;i--) cout<<" ";
for(int i=5+zn;i>5;i--)
{
Yan(1);if(i<=0) break;
if(N[i].Bing>0) Yan(6);
if(N[i].Du>0) Yan(2);
if(N[i].Hui>0) Yan(3);
cout<<setw(4)<<N[i].Xue; Bai();
}
for(int i=6;i<=10;i++)
{
Yan(4);
if(i>dl) {cout<<" ";continue;}
if(Baodb!=0) Yan(2);
if(D[i].Zhong>=8) Yan(3);
cout<<setw(4)<<D[i].Xue; Bai();
}Bai();
cout<<" ┆"<<endl<<"┆";
for(int i=5-zn;i>0;i--) {cout<<" ";continue;}
for(int i=5+zn;i>5;i--)
{
Yan(N[i].Zhong);if(N[i].Bing>0) Yan(6);
if(N[i].Zhong==0) cout<<" ▎";if(N[i].Zhong==1) cout<<" ●";if(N[i].Zhong==2) cout<<" ■";if(N[i].Zhong==3) cout<<" ▲";if(N[i].Zhong==4) cout<<" ▼";if(N[i].Zhong==5) cout<<" ★";if(N[i].Zhong>=6) cout<<" ◆";
Bai();
}
for(int i=6;i<=10;i++)
{
if(i>dl) {cout<<" ";continue;}
Yan(D[i].Zhong);if(D[i].Bing>0) Yan(4);
if(D[i].Zhong==1) cout<<" ○";if(D[i].Zhong==2) cout<<" □";if(D[i].Zhong==3) cout<<" △";if(D[i].Zhong==4) cout<<" ▽";if(D[i].Zhong==5) cout<<" ☆";if(D[i].Zhong>=6&&D[i].Zhong<=7) cout<<" ◇";if(D[i].Zhong==8) Yan(5),cout<<" 金";if(D[i].Zhong==9) Yan(1),cout<<" 冰";if(D[i].Zhong==10) Yan(2),cout<<" 毒";if(D[i].Zhong==11) Yan(3),cout<<" 风";if(D[i].Zhong==12) Yan(4),cout<<" 火";
Bai();
}
}
cout<<" ┆"<<endl<<"└";
for(int i=0;i<=40;i++) cout<<'-';cout<<"┘"<<endl;
Sleep(500);
}
void Ju(int a)
{
Sleep(1000);system("cls");Bai();
if(a==0)
{
cout<<"┌---------------------┐"<<endl;
cout<<"┆新道具解锁! ┆"<<endl;
cout<<"┆ ┆"<<endl;
cout<<"┆导弹: ┆"<<endl;
cout<<"┆攻击力:300 ┆"<<endl;
cout<<"┆目标:指定目标 ┆"<<endl;
cout<<"└---------------------┘"<<endl;
}
if(a==1)
{
cout<<"┌---------------------┐"<<endl;
cout<<"┆新道具解锁! ┆"<<endl;
cout<<"┆ ┆"<<endl;
cout<<"┆医疗包: ┆"<<endl;
cout<<"┆目标:指定目标 ┆"<<endl;
cout<<"┆攻击力:-30*5(回血)┆"<<endl;
cout<<"┆持续时间:5回合 ┆"<<endl;
cout<<"└---------------------┘"<<endl;
}
if(a==2)
{
cout<<"┌---------------------┐"<<endl;
cout<<"┆新道具解锁! ┆"<<endl;
cout<<"┆ ┆"<<endl;
cout<<"┆闪光弹: ┆"<<endl;
cout<<"┆目标:指定目标 ┆"<<endl;
cout<<"┆效果:使一个指定敌人 ┆"<<endl;
cout<<"┆ 停止攻击,并使所 ┆"<<endl;
cout<<"┆ 有炮塔攻击该敌人.┆"<<endl;
cout<<"┆持续时间:5回合 ┆"<<endl;
cout<<"└---------------------┘"<<endl;
}
if(a==3)
{
cout<<"┌---------------------┐"<<endl;
cout<<"┆新道具解锁! ┆"<<endl;
cout<<"┆ ┆"<<endl;
cout<<"┆狂暴血清: ┆"<<endl;
cout<<"┆目标:所有炮塔 ┆"<<endl;
cout<<"┆效果:使炮塔攻击2次 ┆"<<endl;
cout<<"┆持续时间:2回合 ┆"<<endl;
cout<<"└---------------------┘"<<endl;
}
if(a==4)
{
cout<<"┌---------------------┐"<<endl;
cout<<"┆新道具解锁! ┆"<<endl;
cout<<"┆ ┆"<<endl;
cout<<"┆无敌护罩: ┆"<<endl;
cout<<"┆效果:使所有炮塔无敌 ┆"<<endl;
cout<<"┆持续时间:3回合 ┆"<<endl;
cout<<"└---------------------┘"<<endl;
}
Sleep(1000);system("pause");system("cls");
}
void Die(int m)
{
if(D[m].Xue<=0)
{
if(Biao==m) Biao=0;
if(D[m].Zhong>=8) Moo=0;
Cout(2,D[m].Zhong);
for(int i=m;i<dl;i++)
{
if(Biao==i) Biao--;
D[i].Xue=D[i+1].Xue;
D[i].Zhong=D[i+1].Zhong;
D[i].Bing=D[i+1].Bing;
}
D[dl].Xue=0,D[dl].Zhong=0,D[dl].Bing=0;dl--;
int a=rand()%10;
if(a==0&&t<1000)
{
Yan(4);
cout<<"从敌人尸体中发现道具——"; Sleep(500);
int b=rand()%5;
if(b==0) {cout<<"导弹!"<<endl<<endl,Dao++;Sleep(2000);if(Daob==0) Ju(0);Daob=1;}
if(b==1) {cout<<"医疗包!"<<endl<<endl,Yi++;Sleep(2000);if(Yib==0) Ju(1);Yib=1;}
if(b==2) {cout<<"闪光弹!"<<endl<<endl,Shan++;Sleep(2000);if(Shanb==0) Ju(2);Shanb=1;}
if(b==3) {cout<<"狂暴血清!"<<endl<<endl,Qing++;Sleep(2000);if(Qingb==0) Ju(3);Qingb=1;}
if(b==4) {cout<<"无敌护罩!"<<endl<<endl,Hu++;Sleep(2000);if(Hubb==0) Ju(4);Hubb=1;}
Bai();War();
}
}
}
void DieN(int m)
{
if(N[m].Xue<=0)
{
Cout(1,N[m].Zhong);
for(int i=m;i<nl;i++)
{
N[i].Xue=N[i+1].Xue;
N[i].Zhong=N[i+1].Z