c++游戏之城市守卫战

代码如下

#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
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值