红蓝大战街机小游戏

· · 休闲·娱乐

红蓝大战街机小游戏 全版本源代码

1.0 原始版

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
int x[3],h[3],i,cc[5]={0,3,7,4,5};
string p[3];
void c(int q)
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),q);
}
void w(int f)
{
    system("cls");
    cout<<setw(50);
    if(!f)
    {
        c(2);
        cout<<"平局\n双方同时死亡";
    }
    if(f==1)
    {
        cout<<"P1";
        c(4);
        cout<<p[1];
        c(7);
        cout<<"获胜"; 
    }
    if(f==2)
    {
        cout<<"P2";
        c(3);
        cout<<p[2];
        c(7);
        cout<<"获胜";
    }
    exit(0);
}
int main()
{
    srand(time(0));
    c(3);
    cout<<setw(57)<<"街机小游戏之红蓝大作战 1.0 \n";
    c(4);
    cout<<"P1:";
    cin>>p[1];
    c(3); 
    cout<<"P2:";
    cin>>p[2];
    c(7);
    x[1]=x[2]=20;
    cout<<"-----------------------------------\n"<<setw(15)<<"加载中...";
    Sleep(4000);
    system("cls");
    cout<<setw(20)<<"加载成功!";
    Sleep(500);
    system("cls");
    i=1;
    while(1)
    {
        int a=rand()%20+1,b=rand()%20+1,ccc=rand()%20+1,j1,j2,j3;
        int df=(i%2)+1;
        for(int j=1;j<=20;++j)
        {
          system("cls");
          c(7); 
          cout<<"第"<<i<<"回合"<<"  ";
          c((i%2)+3);
          cout<<p[2-i%2];
          c(7);
          if(a>=i)
            j1=rand()%4+1;
          if(b>=i)
            j2=rand()%4+1;
          if(ccc>=i)
            j3=rand()%4+1;
          cout<<"回合\n发动技能:";
          c(cc[j1]);
          cout<<"技能";
          c(cc[j2]);
          cout<<"技能";
          c(cc[j3]);
          cout<<"技能";
          Sleep(500);
        }
        system("cls"); 
        c(7);
        cout<<"本轮结果:";
        c(cc[j1]);
        cout<<"技能";
        c(cc[j2]);
        cout<<"技能";
        c(cc[j3]);
        cout<<"技能";
        Sleep(3000);
        if(j1==2&&j2==2&&j3==2)
        {
            cout<<"恭喜3连防御!获得10点防御";
            h[df]=10;
            Sleep(3000);
            c(7);
            system("cls"); 
            cout<<"现状:\n";
            c(4);
            cout<<"P1 "<<p[1]<<":血量"<<x[1]<<"  "<<"防御"<<h[1]<<'\n';
            c(3);
            cout<<"P2 "<<p[2]<<":血量"<<x[2]<<"  "<<"防御"<<h[2]<<'\n';
            Sleep(2500);
            system("cls"); 
        }else
          if(j1==4&&j2==4&&j3==4)
          {
              cout<<"¹§Ï²3Á¬»Ø¸´£¡»Ö¸´20µãѪÁ¿";
              x[df]=20;
              Sleep(3000);
              c(7);
              system("cls"); 
              cout<<"ÏÖ×´£º\n";
              c(4);
              cout<<"P1 "<<p[1]<<":ѪÁ¿"<<x[1]<<"  "<<"·ÀÓù"<<h[1]<<'\n';
              c(3);
              cout<<"P2 "<<p[2]<<":ѪÁ¿"<<x[2]<<"  "<<"·ÀÓù"<<h[2]<<'\n';
              Sleep(2500);
              system("cls"); 
          }else
          {
            switch(j1)
            {
              case 1:
              {
                if(h[df]>=6)
                  h[df]-=6;else
                  h[df]=0,x[df]-=(6-h[df]);
                break;
              }
              case 2:
              {
                h[2-(i%2)]=min(10,h[2-(i%2)]+3);
                break;
              }
              case 3:
              {
                if(h[2-(i%2)]>=3)
                  h[2-(i%2)]-=3;else
                  h[2-(i%2)]=0,x[2-(i%2)]-=(3-h[2-(i%2)]);
                if(h[df]>=3)
                  h[df]-=3;else
                  h[df]=0,x[df]-=(3-h[df]);
                break;
              }
              case 4:
              {
                x[2-(i%2)]=min(20,x[2-(i%2)]+6);
                break;
              }
            }
            if(x[1]<1&&x[2]<1)
              w(0);
            if(x[2]<1)
              w(1);
            if(x[1]<1)
              w(2);
            c(7);
            system("cls"); 
            cout<<"现状:\n";
            c(4);
            cout<<"P1 "<<p[1]<<":血量"<<x[1]<<"  "<<"防御"<<h[1]<<'\n';
            c(3);
            cout<<"P2 "<<p[2]<<":血量"<<x[2]<<"  "<<"防御"<<h[2]<<'\n';
            Sleep(2500);
            system("cls"); 
            switch(j2)
            {
              case 1:
              {
                if(h[df]>=6)
                  h[df]-=6;else
                  h[df]=0,x[df]-=(6-h[df]);
                break;
              }
              case 2:
              {
                h[2-(i%2)]=min(10,h[2-(i%2)]+3);
                break;
              }
              case 3:
              {
                if(h[2-(i%2)]>=3)
                  h[2-(i%2)]-=3;else
                  h[2-(i%2)]=0,x[2-(i%2)]-=(3-h[2-(i%2)]);
                if(h[df]>=3)
                  h[df]-=3;else
                  h[df]=0,x[df]-=(3-h[df]);
                break;
              }
              case 4:
              {
                x[2-(i%2)]=min(20,x[2-(i%2)]+6); 
                break;
              }
            }
            if(x[1]<1&&x[2]<1)
              w(0);
            if(x[2]<1)
              w(1);
            if(x[1]<1)
              w(2);
            system("cls"); 
            c(7);
            cout<<"现状:\n";
            c(4);
            cout<<"P1 "<<p[1]<<":血量"<<x[1]<<"  "<<"防御"<<h[1]<<'\n';
            c(3);
            cout<<"P2 "<<p[2]<<":血量"<<x[2]<<"  "<<"防御"<<h[2]<<'\n';
            Sleep(2500);
            system("cls"); 
            switch(j3)
            {
              case 1:
              {
                if(h[df]>=6)
                  h[df]-=6;else
                  h[df]=0,x[df]-=(6-h[df]);
                break;
              }
              case 2:
              {
                h[2-(i%2)]=min(10,h[2-(i%2)]+3);
                break;
              }
              case 3:
              {
                if(h[2-(i%2)]>=3)
                  h[2-(i%2)]-=3;else
                  h[2-(i%2)]=0,x[2-(i%2)]-=(3-h[2-(i%2)]);
                if(h[df]>=3)
                  h[df]-=3;else
                  h[df]=0,x[df]-=(3-h[df]);
                break;
              }
              case 4:
              {
                x[2-(i%2)]=min(20,x[2-(i%2)]+6); 
                break;
              }
            } 
            if(x[1]<1&&x[2]<1)
              w(0);
            if(x[2]<1)
              w(1);
            if(x[1]<1)
              w(2);
            system("cls");
            c(7);
            cout<<"现状:\n";
            c(4);
            cout<<"P1 "<<p[1]<<":血量"<<x[1]<<"  "<<"防御"<<h[1]<<'\n';
            c(3);
            cout<<"P2 "<<p[2]<<":血量"<<x[2]<<"  "<<"防御"<<h[2]<<'\n';
            Sleep(3500);
          }
      ++i; 
    }
}

2.0 焕新版

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
string name[3];
int jf,df,ls,sz[7],cl[4]={2,3,4,6},xl[3],hd[3],x,y,z;
void c(int q)
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),q);
}
void pj()
{
    c(2);
    cout<<"双方平局,游戏结束";
}
void hs(int r)
{
    c(5-r);
    cout<<name[r];
    c(7);
    cout<<"获胜,游戏结束";
}
void d(int cz)
{
    switch(cz)
    {
        case 0:{
          xl[df]-=max(1,50-hd[df]);
          break;
        }
        case 1:{
          xl[df]-=30;
          break;
        }
        case 2:{
          xl[jf]=min(xl[jf]+40,600); 
          break;
        }
        case 3:{
          hd[jf]+=8;
          break;
        }
    }
}
int main()
{
    srand(time(0));
    while(1)
    {
        cout<<setw(40)<<"街机小游戏之红蓝大战 2.0\n";
        c(4);
        cout<<"红方:";
        cin>>name[1];
        c(3);
        cout<<"蓝方:";
        cin>>name[2];
        ls=0;
        xl[1]=xl[2]=600;
        hd[1]=hd[2]=0;
        while(1)
        {
            ++ls;
            system("cls");
            df=(ls%2)+1,jf=3-df;
            for(int i=1;i<=6;++i)
              sz[i]=rand()%4;
            c(7);
            cout<<"第"<<ls<<"轮:";
            c(5-jf);
            cout<<name[jf];
            c(7);
            cout<<"发动攻击\n";
            bool ttt=true;
            for(int i=1;i<=6;++i)
            {
                c(cl[sz[i]]);
                cout<<"技能    ";
                if(i%3==0)
                  cout<<'\n';
                if(i>1)
                  ttt=ttt&&(sz[i]==sz[i-1]);
            }
            Sleep(2000);
            c(7);
            if(!ttt)
              cin>>x>>y>>z;else
            {
                switch(sz[1])
                {
                    case 0:{
                        xl[df]-=max(1,300-hd[df]);
                        break;
                    }
                    case 1:{
                        xl[df]-=180;
                        break;
                    }
                    case 2:{
                        xl[jf]=min(xl[jf]+240,600); 
                        break;
                    }
                    case 3:{
                        hd[jf]+=48;
                        break;
                    }
                }
            }
            if(!ttt)
            {
              if(sz[x]==sz[y]&&sz[y]==sz[z])
              {
                switch(sz[x])
                {
                    case 0:{
                        xl[df]-=max(1,180-hd[df]);
                        break;
                    }
                    case 1:{
                        xl[df]-=108;
                        break;
                    }
                    case 2:{
                        xl[jf]=min(xl[jf]+120,600); 
                        break;
                    }
                    case 3:{
                        hd[jf]+=24;
                        break;
                    }
                }
              }else
              {
                int k=min(sz[x],min(sz[y],sz[z]));
                int l=max(sz[x],max(sz[y],sz[z]));
                sz[y]=sz[x]+sz[y]+sz[z]-k-l;
                sz[x]=k;
                sz[z]=l;
                if(sz[x]==sz[y]||sz[y]==sz[z])
                {
                    switch(sz[y])
                    {
                      case 0:{
                        xl[df]-=max(1,110-hd[df]);
                        break;
                      }
                      case 1:{
                        xl[df]-=66;
                        break;
                      }
                      case 2:{
                        xl[jf]=min(xl[jf]+80,600); 
                        break;
                      }
                      case 3:{
                        hd[jf]+=16;
                        break;
                      }
                    }
                  if(sz[x]==sz[y])
                    d(sz[z]);
                  if(sz[y]==sz[z])
                    d(sz[x]);
                }else
                {
                    d(sz[x]);
                    d(sz[y]);
                    d(sz[z]);
                }
              }
            c(4);
            cout<<name[1]<<"  血量"<<xl[1]<<"  防御"<<hd[1]<<'\n';
            c(3);
            cout<<name[2]<<"  血量"<<xl[2]<<"  防御"<<hd[2]<<'\n';
            c(7);
            Sleep(5000);
            if(xl[1]==0&&xl[2]==0)
              pj();
            if(xl[1]==0)
              hs(2);
            if(xl[2]==0)
              hs(1);
            }
        }
    }
}

2.1增元版

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
string name[3],xg[6]={"剑 55","刀 50","斧 45","电 30","心 40","盾  8"};
int jf,df,ls,sz[7],cl[6]={2,5,7,3,4,6},xl[3],hd[3],x,y,z,sj[7]={55,50,45,30,40,8},bl[7]={0,100,220,360,0,0,600};
void c(int q)
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),q);
}
void pj()
{
    system("cls"); 
    c(2);
    cout<<"双方平局,游戏结束";
    Sleep(5000); 
}
void hs(int r)
{
    system("cls");
    c(5-r);
    cout<<name[r];
    c(7);
    cout<<"获胜,游戏结束";
    Sleep(5000);
}
void d(int cz,int sl)
{
    int xg=sj[cz]*bl[sl];
    if(xg%100>=50)
      xg=xg/100+1;else
      xg=xg/100;
    switch(cz)
    {
        case 0:{
            xl[df]-=max(1,xg-hd[df]);
            break;
        }
        case 1:{
            xl[df]-=max(1,xg-hd[df]);
            break;
        }
        case 2:{
            xl[df]-=max(1,xg-hd[df]);
            break;
        }
        case 3:{
            xl[df]-=xg;
            break;
        }
        case 4:{
            xl[jf]=min(xl[jf]+xg,600); 
            break;
        }
        case 5:{
            hd[jf]+=xg;
            break;
        }
    }
}
int main()
{
    srand(time(0));
    while(1)
    {
        system("cls");
        cout<<setw(40)<<"街机小游戏之红蓝大战 2.1\n";
        c(4);
        cout<<"红方:";
        cin>>name[1];
        c(3);
        cout<<"蓝方:";
        cin>>name[2];
        ls=0;
        xl[1]=xl[2]=600;
        hd[1]=hd[2]=0;
        while(1)
        {
            ++ls;
            system("cls");
            df=(ls%2)+1,jf=3-df;
            int md=rand()%25;
            bool ttt;
            c(7);
            cout<<"第"<<ls<<"轮:";
            c(5-jf);
            cout<<name[jf];
            c(7);
            cout<<"发动攻击\n";
            if(md<3)
            {
              sz[1]=rand()%6;
              sz[2]=sz[3]=sz[4]=sz[5]=sz[6]=sz[1];
            }else
            {
              for(int i=1;i<=6;++i)
                sz[i]=rand()%6;
            }
            ttt=true;
            for(int i=1;i<=6;++i)
            {
              c(cl[sz[i]]);
              cout<<xg[sz[i]]<<"     ";
              if(i%3==0)
                cout<<'\n';
              if(i>1)
                ttt=ttt&&(sz[i]==sz[i-1]);
            }
            Sleep(2000);
            c(7);
            if(!ttt)
              cin>>x>>y>>z;else
              d(sz[1],6);
            if(!ttt)
            {
              if(sz[x]==sz[y]&&sz[y]==sz[z])
                d(sz[x],3);else
              {
                int k=min(sz[x],min(sz[y],sz[z]));
                int l=max(sz[x],max(sz[y],sz[z]));
                sz[y]=sz[x]+sz[y]+sz[z]-k-l;
                sz[x]=k;
                sz[z]=l;
                if(sz[x]==sz[y]||sz[y]==sz[z])
                {
                  d(sz[y],2);
                  if(sz[x]==sz[y])
                    d(sz[z],1);
                  if(sz[y]==sz[z])
                    d(sz[x],1);
                }else
                {
                    d(sz[x],1);
                    d(sz[y],1);
                    d(sz[z],1);
                }
              }
            }
            c(4);
            cout<<name[1]<<"  血量"<<xl[1]<<"  防御"<<hd[1]<<'\n';
            c(3);
            cout<<name[2]<<"  血量"<<xl[2]<<"  防御"<<hd[2]<<'\n';
            c(7);
            Sleep(5000);
            if(xl[1]<=0&&xl[2]<=0)
              pj();
            if(xl[1]<=0)
              hs(2);
            if(xl[2]<=0)
              hs(1);
            if(xl[1]*xl[2]<0)
              break;
        }
    }
}

2.2 UI升级版

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
char ch;
bool sjj;
string s,name[3],xg[6]={"剑 55","刀 50","斧 45","电 30","心 40","盾  8"};
int xxl,jf,df,ls,sz[7],cl[6]={2,5,7,3,4,6},xl[3],hd[3],x,y,z,sj[7]={55,50,45,30,40,8},bl[7]={0,100,220,360,0,0,600};
void c(int q)
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),q);
}
void pj()
{
    system("cls");
    if(xl[1]!=xl[2])
    {
      cout<<"游戏超时,玩家";
      c(4-(xl[2]>xl[1]));
      cout<<name[1+(xl[2]>xl[1])];
      c(7);
      cout<<"血量更高,获得胜利";
    }else
    {
      c(2);
      cout<<"双方平局,游戏结束";
    } 
    Sleep(5000); 
}
void hs(int r)
{
    system("cls");
    c(5-r);
    cout<<name[r];
    c(7);
    cout<<"获胜,游戏结束";
    Sleep(5000);
}
void d(int cz,int sl)
{
    int xg=sj[cz]*bl[sl];
    if(xg%100>=50)
      xg=xg/100+1;else
      xg=xg/100;
    switch(cz)
    {
        case 0:{
            xl[df]-=max(1,xg-hd[df]);
            break;
        }
        case 1:{
            xl[df]-=max(1,xg-hd[df]);
            break;
        }
        case 2:{
            xl[df]-=max(1,xg-hd[df]);
            break;
        }
        case 3:{
            xl[df]-=xg;
            break;
        }
        case 4:{
            xl[jf]=min(xl[jf]+xg,xxl); 
            break;
        }
        case 5:{
            hd[jf]+=xg;
            break;
        }
    }
}
void yx()
{
        system("cls");
        cout<<setw(40)<<"街机小游戏之红蓝大战 2.2\n";
        c(4);
        cout<<"红方:";
        cin>>name[1];
        c(3);
        cout<<"蓝方:";
        cin>>name[2];
        ls=0;
        xl[1]=xl[2]=xxl;
        hd[1]=hd[2]=0;
        jf=1;
        while(1)
        {
            ++ls;
            system("cls");
            df=jf;
            if(ls%2==1&&sjj)
              df=rand()%2+1;
            jf=3-df;
            int md=rand()%25;
            bool ttt;
            c(7);
            cout<<"第"<<ls<<"轮:";
            c(5-jf);
            cout<<name[jf];
            c(7);
            cout<<"发动攻击\n";
            if(md<3)
            {
              sz[1]=rand()%6;
              sz[2]=sz[3]=sz[4]=sz[5]=sz[6]=sz[1];
            }else
            {
              for(int i=1;i<=6;++i)
                sz[i]=rand()%6;
            }
            ttt=true;
            for(int i=1;i<=6;++i)
            {
              c(cl[sz[i]]);
              cout<<xg[sz[i]]<<"     ";
              if(i%3==0)
                cout<<'\n';
              if(i>1)
                ttt=ttt&&(sz[i]==sz[i-1]);
            }
            Sleep(2000);
            c(7);
            if(!ttt)
              cin>>x>>y>>z;else
              d(sz[1],6);
            if(!ttt)
            {
              if(sz[x]==sz[y]&&sz[y]==sz[z])
                d(sz[x],3);else
              {
                int k=min(sz[x],min(sz[y],sz[z]));
                int l=max(sz[x],max(sz[y],sz[z]));
                sz[y]=sz[x]+sz[y]+sz[z]-k-l;
                sz[x]=k;
                sz[z]=l;
                if(sz[x]==sz[y]||sz[y]==sz[z])
                {
                  d(sz[y],2);
                  if(sz[x]==sz[y])
                    d(sz[z],1);
                  if(sz[y]==sz[z])
                    d(sz[x],1);
                }else
                {
                    d(sz[x],1);
                    d(sz[y],1);
                    d(sz[z],1);
                }
              }
            }
            c(4);
            cout<<name[1]<<"  血量"<<xl[1]<<"  防御"<<hd[1]<<'\n';
            c(3);
            cout<<name[2]<<"  血量"<<xl[2]<<"  防御"<<hd[2]<<'\n';
            c(7);
            Sleep(5000);
            if(ls==50)
              pj();
            if(xl[1]<=0)
              hs(2);
            if(xl[2]<=0)
              hs(1);
            if(xl[1]*xl[2]<0)
              break;
        }
}
void gz()
{
      system("cls");
      c(7);
      cout<<"                              规则\n";
      c(4);
      cout<<"1.每种攻击/防御/回血方式都有基础数值,2个相同产生220%效果,3个相同产生360%效果,6个相同产生600%效果。\n";
      c(6);
      cout<<"2.防御值可以抵消剑、刀、斧对应数值的伤害(因为它们是物理性质的)。\n";
      c(2);
      cout<<"3.电的魔法攻击不会受到敌方防御的影响。\n";
      c(3);
      cout<<"4.血量上限是固定的,物理伤害保底打出1点。\n";
      c(1);
      cout<<"5.50轮后游戏未结束,血量高者获胜,否则血量先低于1点的人失败。\n";
      c(5);
      cout<<"输入任意字符串以关闭...";
      c(7); 
      cin>>s;
}
void shz()
{
    system("cls");
    c(7);
    cout<<"设置界面\n";
    cout<<"初始血量:";
    cin>>xxl;
    cout<<"是否每两回合随机先行动玩家(若随机出蓝,则这两回合先行动者为蓝、红)(是t否f):";
    cin>>ch;
    if(ch=='t')
      sjj=true;else
      sjj=false; 
}
int main()
{
    srand(time(0));
    while(1)
    {
      system("cls");
      cout<<setw(40)<<"街机小游戏之红蓝大战 2.2\n";
      cout<<"A.规则            B.游戏开始             C.设置              D.关闭\n";
      cin>>ch;
      while(ch<'A'&&ch>'C')
      {
        system("cls");
        cout<<setw(40)<<"街机小游戏之红蓝大战 2.2\n";
        cout<<"A.规则            B.游戏开始             C.设置              D.关闭\n";
        cin>>ch;
      }
      switch(ch)
      {
        case 'A':{
            gz();
            break;
        }
        case 'B':{
            yx();
            break;
        }
        case 'C':{
            shz();
            break;
        }  
        case 'D': return 0;
      }
    }
}

2.2.1 色彩进阶版

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
char ch;
bool sjj;
string s,name[3],xg[6]={"剑 55","刀 50","斧 45","电 30","心 40","盾  8"};
int xxl=600,jf,df,ls,sz[7],cl[6]={2,5,0,3,4,6},xl[3],hd[3],x,y,z,sj[7]={55,50,45,30,40,8},bl[7]={0,100,220,360,0,0,600};
void c(int q)
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),(15<<4)|q);
}
void pj()
{
    system("cls");
    system("color f0");
    if(xl[1]!=xl[2])
    {
      cout<<"游戏超时,玩家";
      c(4-(xl[2]>xl[1]));
      cout<<name[1+(xl[2]>xl[1])];
      c(0);
      cout<<"血量更高,获得胜利";
    }else
    {
      c(2);
      cout<<"双方平局,游戏结束";
    } 
    Sleep(5000); 
}
void hs(int r)
{
    system("cls");
    system("color f0");
    c(5-r);
    cout<<name[r];
    c(0);
    cout<<"获胜,游戏结束";
    Sleep(5000);
}
void d(int cz,int sl)
{
    int xg=sj[cz]*bl[sl];
    if(xg%100>=50)
      xg=xg/100+1;else
      xg=xg/100;
    switch(cz)
    {
        case 0:{
            xl[df]-=max(1,xg-hd[df]);
            break;
        }
        case 1:{
            xl[df]-=max(1,xg-hd[df]);
            break;
        }
        case 2:{
            xl[df]-=max(1,xg-hd[df]);
            break;
        }
        case 3:{
            xl[df]-=xg;
            break;
        }
        case 4:{
            xl[jf]=min(xl[jf]+xg,xxl); 
            break;
        }
        case 5:{
            hd[jf]+=xg;
            break;
        }
    }
}
void yx()
{
        system("cls");  
        system("color f0");
        cout<<setw(40)<<"街机小游戏之红蓝大战 2.2.1\n";
        c(4);
        cout<<"红方:";
        cin>>name[1];
        c(3);
        cout<<"蓝方:";
        cin>>name[2];
        ls=0;
        xl[1]=xl[2]=xxl;
        hd[1]=hd[2]=0;
        jf=1;
        while(1)
        {
            ++ls;
            system("cls");
            system("color f0");
            df=jf;
            if(ls%4==1&&sjj)
              df=rand()%2+1;
            jf=3-df;
            int md=rand()%25;
            bool ttt;
           c(0);
           cout<<"第"<<ls<<"轮:";
           c(5-jf);
           cout<<name[jf];
            c(0);
            cout<<"发动攻击\n";
            if(md<2)
            {
              sz[1]=rand()%6;
              sz[2]=sz[3]=sz[4]=sz[5]=sz[6]=sz[1];
            }else
            {
              for(int i=1;i<=6;++i)
                sz[i]=rand()%6;
            }
            ttt=true;
            for(int i=1;i<=6;++i)
            {
              c(cl[sz[i]]);
              cout<<xg[sz[i]]<<"     ";
              if(i%3==0)
                cout<<'\n';
              if(i>1)
                ttt=ttt&&(sz[i]==sz[i-1]);
            }
            Sleep(2000);
            c(0);
            if(!ttt)
              cin>>x>>y>>z;else
              d(sz[1],6);
            if(!ttt)
            {
              if(sz[x]==sz[y]&&sz[y]==sz[z])
                d(sz[x],3);else
              {
                int k=min(sz[x],min(sz[y],sz[z]));
                int l=max(sz[x],max(sz[y],sz[z]));
                sz[y]=sz[x]+sz[y]+sz[z]-k-l;
                sz[x]=k;
                sz[z]=l;
                if(sz[x]==sz[y]||sz[y]==sz[z])
                {
                  d(sz[y],2);
                  if(sz[x]==sz[y])
                    d(sz[z],1);
                  if(sz[y]==sz[z])
                    d(sz[x],1);
                }else
                {
                    d(sz[x],1);
                    d(sz[y],1);
                    d(sz[z],1);
                }
              }
            }
            c(4);
            cout<<name[1]<<"  血量"<<xl[1]<<"  防御"<<hd[1]<<'\n';
            c(3);
            cout<<name[2]<<"  血量"<<xl[2]<<"  防御"<<hd[2]<<'\n';
            c(0);
            Sleep(5000);
            if(ls==50)
              pj();
            if(xl[1]<=0)
              hs(2);
            if(xl[2]<=0)
              hs(1);
            if(xl[1]*xl[2]<0)
              break;
        }
}
void gz()
{
      system("cls");
      system("color f0");
      c(0);
      cout<<"                              规则\n";
      c(4);
      cout<<"1.每种攻击/防御/回血方式都有基础数值,2个相同产生220%效果,3个相同产生360%效果,6个相同产生600%效果。\n";
      c(6);
      cout<<"2.防御值可以抵消剑、刀、斧对应数值的伤害(因为它们是物理性质的)。\n";
      c(2);
      cout<<"3.电的魔法攻击不会受到敌方防御的影响。\n";
      c(3);
      cout<<"4.血量上限是固定的,物理伤害保底打出1点。\n";
      c(1);
      cout<<"5.50轮后游戏未结束,血量高者获胜,否则血量先低于1点的人失败。\n";
      c(5);
      cout<<"输入任意字符串以关闭...";
      c(0); 
      cin>>s;
}
void shz()
{
    system("cls");
    system("color f0");
    c(0);
    cout<<"设置界面\n";
    cout<<"初始血量:";
    cin>>xxl;
    cout<<"是否每两回合随机先行动玩家(若随机出蓝,则这两回合先行动者为蓝、红)(是t否f):";
    cin>>ch;
    if(ch=='t')
      sjj=true;else
      sjj=false; 
}
int main()
{
    srand(time(0));
    while(1)
    {
      system("cls");
      system("color f0");
      cout<<setw(40)<<"街机小游戏之红蓝大战 2.2.1\n";
      cout<<"A.规则            B.游戏开始             C.设置              D.关闭\n";
      cin>>ch;
      while(ch<'A'&&ch>'C')
      {
        system("cls");
       system("color f0");
        cout<<setw(40)<<"街机小游戏之红蓝大战 2.2.1\n";
        cout<<"A.规则            B.游戏开始             C.设置              D.关闭\n";
        cin>>ch;
      }
      switch(ch)
      {
        case 'A':{
            gz();
            break;
        }
        case 'B':{
            yx();
            break;
        }
        case 'C':{
            shz();
            break;
        }  
        case 'D': return 0;
      }
    }
}

程序猿小T全速更新中......