c++三国小游戏(喜欢请一键三连)

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
int n,goal,your_num,comp_num,yourpar_num,comppar_num;
int human_num,charac_num,atkway_num;
bool nameused[101];
string charac[101]={"0","刘蝗叔","曹槽","孙泉","汉线帝","煌巾军","袁少","煮猪侠"};
string attack_way[101]={"0","凌空一掌","反身一脚","横劈一刀","斜刺一枪"};

struct human
{
    string name;
    int atk,iq,blood,fa;
    bool live;
    int head;
};
human a[2001];
human yours[2001];
human comps[2001];
human yourpars[2001];
human comppars[2001];

char hehe[11][11]={
"   /| ",
"  / | ",
" /  | ",
"<_/|_>",
" |||| "
};

void shenglve()
{
    for(int i=1;i<=5;++i)
    {
        printf(".");
        Sleep(200);
    }
    printf(".");
}

void jieshao(int d)
{
    printf("\n");
    printf(" ·姓名: ");
    cout<<a[d].name<<"  ";
    printf("攻击力: %d  智力: %d  血量: %d\n",a[d].atk,a[d].iq,a[d].blood);
    printf("   人物当前状态:");
    if(a[d].live==true)
        printf("存活");
    else
        printf("已死亡");
    printf("  从属: ");
    if(a[d].fa==-1)
        printf("无\n");
    else
        cout<<a[a[d].fa].name<<endl;
    printf("\n");
}

void your_choujiang(int xx,int yy,int d)
{
    printf("\n");
    printf("--------------------------------------\n");
    printf("*叮!请抽取武将*\n");
    for(int i=1;i<=d;++i)
    {
        printf("请输入一个不大于10000的正整数: ");
        int t1,t2,t3;
        scanf("%d",&t1);
        t2=rand()%(human_num*10);
        t3=(t1+t2)%human_num+1;
        while(a[t3].live==false || a[t3].fa!=-1 || a[t3].atk<xx || a[t3].iq<yy)
        {
            t2=rand()%(human_num*10);
            t3=(t1+t2)%human_num+1;
        }
        if(t1==11910 && a[37].fa==-1)
            t3=37;
        else
            if(t1==11910 && a[38].fa==-1)
                t3=38;
        your_num++;
        yours[your_num].head=t3;
        yours[your_num].name=a[t3].name;
        yours[your_num].atk=a[t3].atk;
        yours[your_num].blood=a[t3].blood;
        yours[your_num].iq=a[t3].iq;
        yours[your_num].live=a[t3].live;
        yours[your_num].fa=0;
        a[t3].fa=0;
        printf("\n");
        printf("恭喜你获得武将 ");
        cout<<a[t3].name<<endl;
        printf("*这是你获得的第%d个武将*\n",your_num);
        jieshao(t3);
    }
    printf("返回游戏中!");
    shenglve();
    printf("\n");
    printf("--------------------------------------\n");
    printf("\n");
}

void comp_choujiang(int xx,int yy,int d)
{
    printf("\n");
    printf("--------------------------------------\n");
    printf("*叮!");
    cout<<a[1000].name;
    printf("抽取武将中*\n");
    for(int i=1;i<=d;++i)
    {
        int t;
        while(a[t].live==false || a[t].fa!=-1 || a[t].atk<xx || a[t].iq<yy)
            t=rand()%human_num+1;
        comp_num++;
        comps[comp_num].head=t;
        comps[comp_num].name=a[t].name;
        comps[comp_num].atk=a[t].atk;
        comps[comp_num].blood=a[t].blood;
        comps[comp_num].iq=a[t].iq;
        comps[comp_num].live=a[t].live;
        comps[comp_num].fa=1000;
        a[t].fa=1000;
        printf("\n");
        cout<<a[1000].name;
        printf("获得武将 ");
        cout<<a[t].name<<endl;
        printf("*这是他获得的第%d个武将*\n",comp_num);
        jieshao(t);
    }
    printf("返回游戏中!");
    shenglve();
    printf("\n");
    printf("--------------------------------------\n");
    printf("\n");
}

void yourpar_choujiang(int xx,int yy,int d)
{
    printf("\n");
    printf("--------------------------------------\n");
    printf("*叮!");
    cout<<a[1001].name;
    printf("抽取武将中*\n");
    for(int i=1;i<=d;++i)
    {
        int t;
        while(a[t].live==false || a[t].fa!=-1 || a[t].atk<xx || a[t].iq<yy)
            t=rand()%human_num+1;
        yourpar_num++;
        yourpars[yourpar_num].head=t;
        yourpars[yourpar_num].name=a[t].name;
        yourpars[yourpar_num].atk=a[t].atk;
        yourpars[yourpar_num].blood=a[t].blood;
        yourpars[yourpar_num].iq=a[t].iq;
        yourpars[yourpar_num].live=a[t].live;
        yourpars[yourpar_num].fa=1001;
        a[t].fa=1001;
        printf("\n");
        cout<<a[1001].name;
        printf("获得武将 ");
        cout<<a[t].name<<endl;
        printf("*这是他获得的第%d个武将*\n",comp_num);
        jieshao(t);
    }
    printf("返回游戏中!");
    shenglve();
    printf("\n");
    printf("--------------------------------------\n");
    printf("\n");
}

void comppar_choujiang(int xx,int yy,int d)
{
    printf("\n");
    printf("--------------------------------------\n");
    printf("*叮!");
    cout<<a[2000].name;
    printf("抽取武将中*\n");
    for(int i=1;i<=d;++i)
    {
        int t;
        while(a[t].live==false || a[t].fa!=-1 || a[t].atk<xx || a[t].iq<yy)
            t=rand()%human_num+1;
        comppar_num++;
        comppars[comppar_num].head=t;
        comppars[comppar_num].name=a[t].name;
        comppars[comppar_num].atk=a[t].atk;
        comppars[comppar_num].blood=a[t].blood;
        comppars[comppar_num].iq=a[t].iq;
        comppars[comppar_num].live=a[t].live;
        comppars[comppar_num].fa=2000;
        a[t].fa=2000;
        printf("\n");
        cout<<a[2000].name;
        printf("获得武将 ");
        cout<<a[t].name<<endl;
        printf("*这是他获得的第%d个武将*\n",comp_num);
        jieshao(t);
    }
    printf("返回游戏中!");
    shenglve();
    printf("\n");
    printf("--------------------------------------\n");
    printf("\n");
}

void renwu()
{
    human_num=93;
    charac_num=7;
    atkway_num=4;
    for(int i=1;i<=human_num;++i)
    {
        a[i].blood=1000;
        a[i].fa=-1;
        a[i].live=true;
    }
    a[1].name="泠苞";
    a[1].atk=66;
    a[1].iq=46;
    a[2].name="关兴";
    a[2].atk=76;
    a[2].iq=33;
    a[3].name="关平";
    a[3].atk=78;
    a[3].iq=39;
    a[4].name="张苞";
    a[4].atk=78;
    a[4].iq=35;
    a[5].name="黄忠";
    a[5].atk=96;
    a[5].iq=89;
    a[6].name="文鸳";
    a[6].atk=96;
    a[6].iq=86;
    a[7].name="郭嘉";
    a[7].atk=38;
    a[7].iq=100;
    a[8].name="吕布";
    a[8].atk=100;
    a[8].iq=49;
    a[9].name="诸葛亮";
    a[9].atk=93;
    a[9].iq=100; 
    a[10].name="司马懿";
    a[10].atk=65;
    a[10].iq=97;
    a[11].name="曹操";
    a[11].atk=82;
    a[11].iq=88;
    a[12].name="刘备";
    a[12].atk=79;
    a[12].iq=75;
    a[13].name="孙权";
    a[13].atk=70;
    a[13].iq=83;
    a[14].name="孙翎";
    a[14].atk=83;
    a[14].iq=44;
    a[15].name="孙策";
    a[15].atk=95;
    a[15].iq=77;
    a[16].name="孙静";
    a[16].atk=82;
    a[16].iq=45;
    a[17].name="黄盖";
    a[17].atk=78;
    a[17].iq=69;
    a[18].name="程普";
    a[18].atk=69;
    a[18].iq=72;
    a[19].name="孙坚";
    a[19].atk=91;
    a[19].iq=81;
    a[20].name="马超";
    a[20].atk=97;
    a[20].iq=80;
    a[21].name="马腾";
    a[21].atk=82;
    a[21].iq=66;
    a[22].name="马岱";
    a[22].atk=85;
    a[22].iq=75;
    a[23].name="马休";
    a[23].atk=75;
    a[23].iq=56;
    a[24].name="庞德";
    a[24].atk=96;
    a[24].iq=81;
    a[25].name="赵云";
    a[25].atk=99;
    a[25].iq=98;
    a[26].name="关羽";
    a[26].atk=97;
    a[26].iq=91;
    a[27].name="张飞";
    a[27].atk=97;
    a[27].iq=84;
    a[28].name="典韦";
    a[28].atk=98;
    a[28].iq=70;
    a[29].name="许褚";
    a[29].atk=96;
    a[29].iq=76;
    a[30].name="蒋干";
    a[30].atk=18;
    a[30].iq=1;
    a[31].name="太史慈";
    a[31].atk=93;
    a[31].iq=90;
    a[32].name="曲晨";
    a[32].atk=99;
    a[32].iq=97;
    a[33].name="荀彧";
    a[33].atk=36;
    a[33].iq=92;
    a[34].name="荀攸";
    a[34].atk=31;
    a[34].iq=91;
    a[35].name="吕蒙";
    a[35].atk=88;
    a[35].iq=90;
    a[36].name="陆逊";
    a[36].atk=83;
    a[36].iq=91;
    a[37].name="童渊";
    a[37].atk=100;
    a[37].iq=97;
    a[38].name="司马徽";
    a[38].atk=93;
    a[38].iq=100;
    a[39].name="夏侯惇";
    a[39].atk=91;
    a[39].iq=77;
    a[40].name="夏侯渊";
    a[40].atk=90;
    a[40].iq=72;
    a[41].name="刘表";
    a[41].atk=49;
    a[41].iq=40;
    a[42].name="刘琦";
    a[42].atk=50;
    a[42].iq=56;
    a[43].name="刘琮";
    a[43].atk=55;
    a[43].iq=29;
    a[44].name="刘焉";
    a[44].atk=34;
    a[44].iq=40;
    a[45].name="刘璋";
    a[45].atk=29;
    a[45].iq=46;
    a[46].name="蔡瑁";
    a[46].atk=79;
    a[46].iq=46;
    a[47].name="蔡和";
    a[47].atk=69;
    a[47].iq=41;
    a[48].name="文聘";
    a[48].atk=78;
    a[48].iq=57;
    a[49].name="蔡邕";
    a[49].atk=24;
    a[49].iq=93;
    a[50].name="蔡文姬";
    a[50].atk=11;
    a[50].iq=95;
    a[51].name="魏延";
    a[51].atk=92;
    a[51].iq=75;
    a[52].name="廖化";
    a[52].atk=71;
    a[52].iq=55;
    a[53].name="裴元绍";
    a[53].atk=46;
    a[53].iq=48;
    a[54].name="颜良";
    a[54].atk=95;
    a[54].iq=73;
    a[55].name="文丑";
    a[55].atk=94;
    a[55].iq=72;
    a[56].name="曹洪";
    a[56].atk=84;
    a[56].iq=82;
    a[57].name="曹彰";
    a[57].atk=94;
    a[57].iq=70;
    a[58].name="曹丕";
    a[58].atk=46;
    a[58].iq=74;
    a[59].name="曹植";
    a[59].atk=27;
    a[59].iq=85;
    a[60].name="张辽";
    a[60].atk=96;
    a[60].iq=94;
    a[61].name="雷铜";
    a[61].atk=78;
    a[61].iq=73;
    a[62].name="徐晃";
    a[62].atk=91;
    a[62].iq=88;
    a[63].name="张郃";
    a[63].atk=94;
    a[63].iq=85;
    a[64].name="曹真";
    a[64].atk=86;
    a[64].iq=79;
    a[65].name="曹仁";
    a[65].atk=80;
    a[65].iq=83;
    a[66].name="孙资";
    a[66].atk=40;
    a[66].iq=37;
    a[67].name="司马师";
    a[67].atk=55;
    a[67].iq=65;
    a[68].name="司马昭";
    a[68].atk=95;
    a[68].iq=78;
    a[69].name="姜维";
    a[69].atk=96;
    a[69].iq=95;
    a[70].name="诸葛瞻";
    a[70].atk=49;
    a[70].iq=79;
    a[71].name="李严";
    a[71].atk=81;
    a[71].iq=84;
    a[72].name="吴懿";
    a[72].atk=77;
    a[72].iq=56;
    a[73].name="蒋琬";
    a[73].atk=19;
    a[73].iq=86;
    a[74].name="费祎";
    a[74].atk=18;
    a[74].iq=87;
    a[75].name="诸葛瑾";
    a[75].atk=48;
    a[75].iq=76;
    a[76].name="王平";
    a[76].atk=89;
    a[76].iq=88;
    a[77].name="张翼";
    a[77].atk=72;
    a[77].iq=65;
    a[78].name="陈到";
    a[78].atk=93;
    a[78].iq=91;
    a[79].name="邓艾";
    a[79].atk=95;
    a[79].iq=94;
    a[80].name="黄权";
    a[80].atk=25;
    a[80].iq=49;
    a[81].name="公孙瓒";
    a[81].atk=73;
    a[81].iq=81;
    a[82].name="公孙康";
    a[82].atk=64;
    a[82].iq=59;
    a[83].name="牛金";
    a[83].atk=84;
    a[83].iq=66;
    a[84].name="于禁";
    a[84].atk=84;
    a[84].iq=70;
    a[85].name="郭淮";
    a[85].atk=89;
    a[85].iq=85;
    a[86].name="王颀";
    a[86].atk=89;
    a[86].iq=47;
    a[87].name="朱然";
    a[87].atk=71;
    a[87].iq=40;
    a[88].name="严白虎";
    a[88].atk=77;
    a[88].iq=63;
    a[89].name="丁奉";
    a[89].atk=72;
    a[89].iq=62;
    a[90].name="潘璋";
    a[90].atk=71;
    a[90].iq=54;
    a[91].name="王双";
    a[91].atk=88;
    a[91].iq=82;
    a[92].name="张绣";
    a[92].atk=91;
    a[92].iq=86;
    a[93].name="张任";
    a[93].atk=90;
    a[93].iq=82;
}

void fuzhiyours(int x,int y)
{
    yours[x].name=a[y].name;
    yours[x].atk=a[y].atk;
    yours[x].blood=a[y].blood;
    yours[x].iq=a[y].iq;
    yours[x].fa=a[y].fa;
    yours[x].head=y;
    yours[x].live=true;
}

void fuzhicomps(int x,int y)
{
    comps[x].name=a[y].name;
    comps[x].atk=a[y].atk;
    comps[x].blood=a[y].blood;
    comps[x].iq=a[y].iq;
    comps[x].fa=a[y].fa;
    comps[x].head=y;
    comps[x].live=true;
}

void fuzhiyourpars(int x,int y)
{
    yourpars[x].name=a[y].name;
    yourpars[x].atk=a[y].atk;
    yourpars[x].blood=a[y].blood;
    yourpars[x].iq=a[y].iq;
    yourpars[x].fa=a[y].fa;
    yourpars[x].head=y;
    yourpars[x].live=true;
}

void fuzhicomppars(int x,int y)
{
    comppars[x].name=a[y].name;
    comppars[x].atk=a[y].atk;
    comppars[x].blood=a[y].blood;
    comppars[x].iq=a[y].iq;
    comppars[x].fa=a[y].fa;
    comppars[x].head=y;
    comppars[x].live=true;
}

void kaishi()
{
    printf("\n");
    for(int i=0;i<=4;++i)
    {
        for(int j=0;j<=5;++j)
            printf("%c",hehe[i][j]);
        printf("\n");
    }
    printf("由呵呵游戏出品\n");
    printf("\n");
    printf("开始! O(∩_∩)O  祝你好运~\n");
    printf("--------------------------------------\n");
    printf(" ※每打一行字需要按回车Enter继续!※\n");
    printf("--------------------------------------\n");
    Sleep(500);
    printf("缓冲中");
    shenglve();
    printf("\n");
    printf("\n");
    printf("  ^- 三国群英传 -^ \n");
    printf("\n");
}

void frinit()
{
    printf("请输入你的名字:(保证无空格,无特殊字符)\n");
    printf(" ");
    cin>>a[0].name;
    a[0].blood=1000;
    a[0].atk=1;
    a[0].iq=1;
    a[0].live=true;
    a[0].fa=-1;
    jieshao(0);
}

void init1(int d)
{
    your_num=0;
    comp_num=0;
    memset(nameused,false,sizeof(nameused));
    printf("加载人物信息中,请稍后");
    shenglve();
    printf("\n");
    printf("\n");
    printf(" ※双方轮流出牌※\n");
    renwu();
    printf("你的对手是:");
    int res=rand()%charac_num+1;
    cout<<charac[res]<<endl;
    a[1000].name=charac[res];
    a[1000].atk=1;
    a[1000].iq=1;
    a[1000].blood=1000;
    a[1000].fa=-1;
    a[1000].live=true;
    printf("\n");
    printf("对手人物信息: \n");
    jieshao(1000);
    your_choujiang(30,20,d);
    comp_choujiang(30,20,d);
    fuzhiyours(0,0);
    fuzhicomps(0,1000);
}

void init2(int d)
{
    your_num=0;
    comp_num=0;
    yourpar_num=0;
    comppar_num=0;
    memset(nameused,false,sizeof(nameused));
    printf("加载人物信息中,请稍后");
    shenglve();
    printf("\n");
    printf("\n");
    printf(" ※双方轮流出牌※\n");
    renwu();
    printf("你的队友是:");
    int res=rand()%charac_num+1;
    while(nameused[res]==true)
        res=rand()%charac_num+1;
    nameused[res]=true;
    cout<<charac[res]<<endl;
    a[1001].name=charac[res];
    a[1001].atk=1;
    a[1001].iq=1;
    a[1001].blood=1000;
    a[1001].fa=-1;
    a[1001].live=true;
    printf("\n");
    printf("你队友的人物信息: \n");
    jieshao(1001);
    printf("你的对手是:");
    res=rand()%charac_num+1;
    while(nameused[res]==true)
        res=rand()%charac_num+1;
    nameused[res]=true;
    cout<<charac[res]<<endl;
    a[1000].name=charac[res];
    a[1000].atk=1;
    a[1000].iq=1;
    a[1000].blood=1000;
    a[1000].fa=-1;
    a[1000].live=true;
    printf("\n");
    printf("你对手的人物信息: \n");
    jieshao(1000);
    printf("你的对手的队友是:");
    res=rand()%charac_num+1;
    while(nameused[res]==true)
        res=rand()%charac_num+1;
    nameused[res]=true;
    cout<<charac[res]<<endl;
    a[2000].name=charac[res];
    a[2000].atk=1;
    a[2000].iq=1;
    a[2000].blood=1000;
    a[2000].fa=-1;
    a[2000].live=true;
    printf("\n");
    printf("你对手的队友的人物信息: \n");
    jieshao(2000);
    your_choujiang(30,20,d);
    yourpar_choujiang(30,20,d);
    comp_choujiang(30,20,d);
    comppar_choujiang(30,20,d);
    fuzhiyours(0,0);
    fuzhicomps(0,1000);
    fuzhiyourpars(0,1001);
    fuzhicomppars(0,2000);
}

void play1()
{
    a[0].blood=1000;
    a[1000].blood=1000;
    int temp_num;
    printf("请选择双方武将数量: ");
    scanf("%d",&temp_num);
    init1(temp_num);
    printf("对战开始!\n");
    printf("--------------------------------------\n");
    printf(" ※每回合双方各派出一名武将对决※\n");
    printf(" ※受到伤害=另一方攻击力*(随机一个1-6的数)-本方智商※\n");
    printf(" ※受到伤害可能为负数喲~※\n");
    printf(" ※每方主将如果阵亡,则此方视为失败※\n");
    printf("--------------------------------------\n");
    printf("\n");
    int turn=0;
    while(yours[0].blood>0 && comps[0].blood>0)
    {
        turn++;
        printf("^^^^^          ^^^^^          ^^^^^\n");
        printf("→第%d回合: \n",turn);
        printf("选择一名己方武将参与本回合战斗: (输入对应数字) \n");
        int yourturn,compturn;
        for(int i=0;i<=your_num;++i)
            if(yours[i].live==true)
            {
                printf(" %d-",i);
                cout<<yours[i].name;
            }
        printf("\n");
        scanf("%d",&yourturn);
        compturn=rand()%(comp_num+1);
        while(comps[compturn].live==false)
            compturn=rand()%(comp_num+1);
        printf("\n");
        printf("双方对战武将为: \n");
        printf(" ");
        cout<<a[0].name;
        printf("方: ");
        cout<<yours[yourturn].name;
        printf("\n");
        printf(" ");
        cout<<a[1000].name;
        printf("方: ");
        cout<<comps[compturn].name;
        printf("\n");
        printf("\n");
        int youratk=rand()%6+1,compatk=rand()%6+1;
        while(compatk-youratk>=2)
            compatk=rand()%6+1;
        int youract=rand()%atkway_num+1,compact=rand()%atkway_num+1;
        int yourharm=comps[compturn].atk*compatk-yours[yourturn].iq;
        int compharm=yours[yourturn].atk*youratk-comps[compturn].iq;
        comps[compturn].blood-=compharm;
        a[comps[compturn].head].blood=comps[compturn].blood;
        yours[compturn].blood-=yourharm;
        a[yours[yourturn].head].blood=yours[yourturn].blood;
        cout<<yours[yourturn].name<<" "<<attack_way[youract];
        printf(" (%d*%d-%d): ",yours[yourturn].atk,youratk,comps[compturn].iq);
        cout<<comps[compturn].name;
        printf("受到%d点伤害\n",compharm);
        if(comps[compturn].blood<=0)
        {
            comps[compturn].live=false;
            a[comps[compturn].head].live=false;
        }
        cout<<comps[compturn].name<<" "<<attack_way[compact];
        printf(" (%d*%d-%d): ",comps[compturn].atk,compatk,yours[yourturn].iq);
        cout<<yours[yourturn].name;
        printf("受到%d点伤害\n",yourharm);
        if(yours[yourturn].blood<=0)
        {
            yours[yourturn].live=false;
            a[yours[yourturn].head].live=false;
        }
        if(yours[yourturn].blood<=0)
        {
            cout<<a[0].name;
            printf("方武将 ");
            cout<<yours[yourturn].name;
            printf("阵亡!\n");
            Sleep(200);
            printf(" 默哀一秒钟");
            shenglve();
            printf("\n");
        }
        if(comps[compturn].blood<=0)
        {
            cout<<a[1000].name;
            printf("方武将 ");
            cout<<comps[compturn].name;
            printf("阵亡!\n");
            Sleep(200);
            printf(" 默哀一秒钟");
            shenglve();
            printf("\n");
        }
        printf("\n");
    }
    printf("\n");
    if(yours[0].blood<=0)
    {
        cout<<comps[0].name;
        printf("方胜利! ヾ( ̄ー ̄)X(^▽^)ゞ \n");
    }
    if(comps[0].blood<=0)
    {
        cout<<yours[0].name;
        printf("方胜利! ヾ( ̄ー ̄)X(^▽^)ゞ \n");
        human_num+=0;
    }
    printf("\n");
}

void play2()
{
    a[0].blood=1000;
    a[1000].blood=1000;
    a[1001].blood=1000;
    a[2000].blood=1000;
    int temp_num;
    printf("请选择每人武将数量: ");
    scanf("%d",&temp_num);
    init2(temp_num);
    printf("对战开始!\n");
    printf("--------------------------------------\n");
    printf(" ※每回合双方各派出一名武将对决※\n");
    printf(" ※受到伤害=另一方攻击力*(随机一个1-6的数)-本方智商※\n");
    printf(" ※受到伤害可能为负数喲~※\n");
    printf(" ※每方主将如果阵亡,则此人视为失败,不能继续战斗※\n");
    printf(" ※队友失败还可继续战斗,主人物失败则此方直接失败※\n");
    printf("--------------------------------------\n");
    printf("\n");
    int turn=0;
    while(yours[0].blood>0 && comps[0].blood>0)
    {
        turn++;
        printf("^^^^^          ^^^^^          ^^^^^\n");
        printf("→第%d回合: \n",turn);
        printf("选择一名己方武将参与本回合战斗: (输入对应数字) \n");
        int yourturn,yourparturn,compturn,compparturn;
        for(int i=0;i<=your_num;++i)
            if(yours[i].live==true)
            {
                printf(" %d-",i);
                cout<<yours[i].name;
            }
        printf("\n");
        scanf("%d",&yourturn);
        yourparturn=rand()%(yourpar_num+1);
        while(yourpars[yourparturn].live==false)
            yourparturn=rand()%(yourpar_num+1);
        compturn=rand()%(comp_num+1);
        while(comps[compturn].live==false)
            compturn=rand()%(comp_num+1);
        compparturn=rand()%(comppar_num+1);
        while(comppars[compparturn].live==false)
            compparturn=rand()%(comppar_num+1);
        printf("\n");
        printf("双方对战武将为: \n");
        printf(" ");
        cout<<a[0].name;
        printf("方: ");
        cout<<yours[yourturn].name;
        printf("\n");
        printf(" ");
        cout<<a[1001].name;
        printf("方: ");
        cout<<yourpars[yourparturn].name;
        printf("\n");
        printf("\n");
        printf(" ");
        cout<<a[1000].name;
        printf("方: ");
        cout<<comps[compturn].name;
        printf("\n");
        printf(" ");
        cout<<a[2000].name;
        printf("方: ");
        cout<<comppars[compparturn].name;
        printf("\n");
        printf("\n");
        int youratk=rand()%6+1,yourparatk=rand()%6+1;
        int compatk=rand()%6+1,compparatk=rand()%6+1;
        while(compatk-youratk>=2)
            compatk=rand()%6+1;
        while(compparatk-yourparatk>=2)
            compparatk=rand()%6+1;
        int yourdir=rand()%2,compdir=rand()%2;
        int youract=rand()%atkway_num+1,compact=rand()%atkway_num+1;
        int yourparact=rand()%atkway_num+1,compparact=rand()%atkway_num+1;
        int yourharm,compharm,yourparharm,compparharm;
        if(yourdir==0)
        {
            compharm=yours[yourturn].atk*youratk-comps[compturn].iq;
            compparharm=yourpars[yourparturn].atk*yourparatk-comppars[compparturn].iq;
        }
        else
        {
            compharm=yourpars[yourparturn].atk*yourparatk-comps[compturn].iq;
            compparharm=yours[yourturn].atk*youratk-comppars[compparturn].iq;
        }
        if(compdir==0)
        {
            yourharm=comps[compturn].atk*compatk-yours[yourturn].iq;
            yourparharm=comppars[compparturn].atk*compparatk-yourpars[yourparturn].iq;
        }
        else
        {
            yourharm=comppars[compparturn].atk*compparatk-yours[yourturn].iq;
            yourparharm=comps[compturn].atk*compatk-yourpars[yourparturn].iq;
        }
        comps[compturn].blood-=compharm;
        a[comps[compturn].head].blood=comps[compturn].blood;
        comppars[compparturn].blood-=compparharm;
        a[comppars[compparturn].head].blood=comps[compparturn].blood;
        yours[compturn].blood-=yourharm;
        a[yours[yourturn].head].blood=yours[yourturn].blood;
        yourpars[compparturn].blood-=yourparharm;
        a[yourpars[yourparturn].head].blood=yourpars[yourparturn].blood;
        if(comps[compturn].blood<=0)
        {
            comps[compturn].live=false;
            a[comps[compturn].head].live=false;
        }
        if(comppars[compparturn].blood<=0)
        {
            comppars[compparturn].live=false;
            a[comppars[compparturn].head].live=false;
        }
        if(yours[yourturn].blood<=0)
        {
            yours[yourturn].live=false;
            a[yours[yourturn].head].live=false;
        }
        if(yourpars[yourparturn].blood<=0)
        {
            yourpars[yourparturn].live=false;
            a[yourpars[yourparturn].head].live=false;
        }
        if(yourdir==0)
        {
            cout<<yours[yourturn].name<<" "<<attack_way[youract];
            printf(" (%d*%d-%d): ",yours[yourturn].atk,youratk,comps[compturn].iq);
            cout<<comps[compturn].name;
            printf("受到%d点伤害\n",compharm);
            cout<<yourpars[yourparturn].name<<" "<<attack_way[yourparact];
            printf(" (%d*%d-%d): ",yourpars[yourparturn].atk,yourparatk,comppars[compparturn].iq);
            cout<<comppars[compparturn].name;
            printf("受到%d点伤害\n",compparharm);
            printf("\n");
        }
        else
        {
            cout<<yours[yourturn].name<<" "<<attack_way[youract];
            printf(" (%d*%d-%d): ",yours[yourturn].atk,youratk,comppars[compparturn].iq);
            cout<<comppars[compparturn].name;
            printf("受到%d点伤害\n",compparharm);
            cout<<yourpars[yourparturn].name<<" "<<attack_way[yourparact];
            printf(" (%d*%d-%d): ",yourpars[yourturn].atk,yourparatk,comps[compturn].iq);
            cout<<comps[compturn].name;
            printf("受到%d点伤害\n",compharm);
            printf("\n");
        }
        if(compdir==0)
        {
            cout<<comps[compturn].name<<" "<<attack_way[compact];
            printf(" (%d*%d-%d): ",comps[compturn].atk,compatk,yours[yourturn].iq);
            cout<<yours[yourturn].name;
            printf("受到%d点伤害\n",yourharm);
            cout<<comppars[compparturn].name<<" "<<attack_way[compparact];
            printf(" (%d*%d-%d): ",comppars[compparturn].atk,compparatk,yourpars[yourparturn].iq);
            cout<<yourpars[yourparturn].name;
            printf("受到%d点伤害\n",yourparharm);
        }
        else
        {
            cout<<comps[compturn].name<<" "<<attack_way[compact];
            printf(" (%d*%d-%d): ",comps[compturn].atk,compatk,yourpars[yourparturn].iq);
            cout<<yourpars[yourparturn].name;
            printf("受到%d点伤害\n",yourparharm);
            cout<<comppars[compparturn].name<<" "<<attack_way[compparact];
            printf(" (%d*%d-%d): ",comppars[compparturn].atk,compparatk,yours[yourturn].iq);
            cout<<yours[yourturn].name;
            printf("受到%d点伤害\n",yourharm);
        }
        if(yours[yourturn].blood<=0)
        {
            cout<<a[0].name;
            printf("方武将 ");
            cout<<yours[yourturn].name;
            printf(" 阵亡!\n");
            Sleep(200);
            printf(" 默哀一秒钟");
            shenglve();
            printf("\n");
        }
        if(yourpars[yourparturn].blood<=0)
        {
            cout<<a[1001].name;
            printf("方武将 ");
            cout<<yourpars[yourparturn].name;
            printf(" 阵亡!\n");
            Sleep(200);
            printf(" 默哀一秒钟");
            shenglve();
            printf("\n");
        }
        if(comps[compturn].blood<=0)
        {
            cout<<a[1000].name;
            printf("方武将 ");
            cout<<comps[compturn].name;
            printf(" 阵亡!\n");
            Sleep(200);
            printf(" 默哀一秒钟");
            shenglve();
            printf("\n");
        }
        if(comppars[compparturn].blood<=0)
        {
            cout<<a[2000].name;
            printf("方武将 ");
            cout<<comppars[compparturn].name;
            printf(" 阵亡!\n");
            Sleep(200);
            printf(" 默哀一秒钟");
            shenglve();
            printf("\n");
        }
        printf("\n");
    }
    printf("\n");
    if(yours[0].blood<=0)
    {
        cout<<comps[0].name<<" & "<<comppars[0].name;
        printf("方胜利! ヾ( ̄ー ̄)X(^▽^)ゞ \n");
    }
    if(comps[0].blood<=0)
    {
        cout<<yours[0].name<<" & "<<yourpars[0].name;
        printf("方胜利! ヾ( ̄ー ̄)X(^▽^)ゞ \n");
    }
    printf("\n");
}

void play3()
{
    printf("暂未开放,敬请期待\n");
}

void choose()
{
    printf("请选择对战模式:\n");
    printf("-①.1V1模式  ···输入1\n");
    printf("-②.2V2模式  ···输入2\n");
    printf("-③.国战模式 ···输入3\n");
    scanf("%d",&goal);
    while(goal>3 || goal<1)
    {
        printf("无此选项\n");
        printf("\n");
        printf("请选择对战模式:\n");
        printf("-①.1V1模式 ···输入1\n");
        printf("-②.2V2模式 ···输入2\n");
        printf("-③.国战模式···输入3\n");
        scanf("%d",&goal);
    }
    if(goal==1)
        play1();
    if(goal==2)
        play2();
    if(goal==3)
        play3();
    printf("加载中");
    shenglve();
    printf("\n");
}

int main()
{
    srand((unsigned int) time (NULL));
    printf("~请按提示进行操作~\n");
    Sleep(300);
    kaishi();
    frinit();
    choose();
    while(1)
    {
        printf("是否重新开始? 1-是 2-否\n");
        scanf("%d",&goal);
        if(goal==1)
            choose();
        else
            break;
    }
    printf("Ending!\n");
    return 0;
}

喜欢的关注~

相关推荐

  1. c++游戏(喜欢

    2024-07-11 08:34:01       10 阅读
  2. 游戏.

    2024-07-11 08:34:01       25 阅读
  3. AcWing:4965. 游戏

    2024-07-11 08:34:01       46 阅读
  4. 题目 3158: 游戏

    2024-07-11 08:34:01       19 阅读
  5. 蓝桥杯---游戏

    2024-07-11 08:34:01       39 阅读
  6. 蓝桥集训之游戏

    2024-07-11 08:34:01       58 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 08:34:01       7 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 08:34:01       7 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 08:34:01       6 阅读
  4. Python语言-面向对象

    2024-07-11 08:34:01       9 阅读

热门阅读

  1. Go语言特点

    2024-07-11 08:34:01       11 阅读
  2. 深度学习探秘:Transformer模型跨框架实现大比拼

    2024-07-11 08:34:01       12 阅读
  3. Postman API网络:连接API开发的桥梁

    2024-07-11 08:34:01       11 阅读
  4. 探索AI数字人的开源解决方案

    2024-07-11 08:34:01       8 阅读
  5. GraphQL在Postman中:释放API查询的强大潜能

    2024-07-11 08:34:01       10 阅读
  6. iCloud数据宝库:全方位掌握笔记应用数据存储

    2024-07-11 08:34:01       9 阅读
  7. 开源项目有哪些机遇与挑战?

    2024-07-11 08:34:01       10 阅读
  8. Autogen和LangGraph对比

    2024-07-11 08:34:01       8 阅读
  9. Perl国际化与本地化:跨文化交流的桥梁

    2024-07-11 08:34:01       7 阅读
  10. mysql的常用函数

    2024-07-11 08:34:01       8 阅读
  11. 什么是强缓存和协商缓存

    2024-07-11 08:34:01       12 阅读