C++面向对象程序设计 013:魔兽世界之一:备战 ---- (北大Mooc)

文章目录


原题题目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码实现

#include <iostream>
#include <string>
#include <string.h>
#include <iomanip>
using namespace std;

class RedTeam
{
    
    
private:
    int producelife,dragonlife,ninjalife,icemanlife,lionlife,wolflife;
    int numbers[5],producechoose;
    int time,totalnum;
    int lifes[5];
    string name[5];
    string bornout,teamout;
public:
    int Rflag;
    RedTeam(int life,int dragon,int ninja,int iceman,int lion,int wolf)
    {
    
    
        producelife = life,dragonlife = dragon,ninjalife = ninja,icemanlife = iceman,lionlife = lion,wolflife = wolf;
        lifes[0] = icemanlife,lifes[1] = lionlife,lifes[2] = wolflife,lifes[3] = ninjalife,lifes[4] = dragonlife;
        name[0] = "iceman",name[1] = "lion",name[2] = "wolf",name[3] = "ninja",name[4] = "dragon";
        producechoose = totalnum = Rflag = time = 0;
        memset(numbers,0,sizeof(numbers));
        bornout = " born with strength ",teamout = " in red headquarter";

    }
    void ProducePrint()
    {
    
    
        int i,flag = 0;
        for(i=0;i<5;i++)
        {
    
    
            if(producelife >= lifes[producechoose])
            {
    
    
                producelife -= lifes[producechoose];
                numbers[producechoose]++;
                totalnum++;
                cout<<setw(3)<<setfill('0')<<time<<" red ";
                cout<<name[producechoose]<<' '<<totalnum<<bornout<<lifes[producechoose]<<',';
                cout<<numbers[producechoose]<<' '<<name[producechoose]<<teamout<<endl;
                flag = 1;
            }
            producechoose++;
            if(producechoose == 5)  producechoose = 0;
            if(flag)break;
        }
        if(flag)
            time++;
        if(!flag){
    
    
            Rflag = 1;
            cout<<setw(3)<<setfill('0')<<time<<' '<<"red headquarter stops making warriors"<<endl;
                }
    }
};

class BlueTeam{
    
    
private:
    int producelife,dragonlife,ninjalife,icemanlife,lionlife,wolflife;
    int numbers[5],producechoose;
    int time,totalnum;
    int lifes[5];
    string name[5];
    string bornout,teamout;
public:
    int Bflag;
    BlueTeam(int life,int dragon,int ninja,int iceman,int lion,int wolf)
    {
    
    
        producelife = life,dragonlife = dragon,ninjalife = ninja,icemanlife = iceman,lionlife = lion,wolflife = wolf;
        totalnum = producechoose = Bflag = time = 0;
        name[0] = "lion",name[1] = "dragon",name[2] = "ninja",name[3] = "iceman",name[4] = "wolf";
        memset(numbers,0,sizeof(numbers));
        lifes[0] = lionlife,lifes[1] = dragonlife,lifes[2] = ninjalife,lifes[3] = icemanlife,lifes[4] = wolflife;
        bornout = "born with strength ",teamout = " in blue headquarter";
    }
    void ProducePrint()
    {
    
    
        int i,flag = 0;
        for(i=0;i<5;i++)
        {
    
    
            if(producelife >= lifes[producechoose])
            {
    
    
                producelife -= lifes[producechoose];
                numbers[producechoose]++;
                totalnum++;
                cout<<setw(3)<<setfill('0')<<time<<" blue "<<name[producechoose]<<' '<<totalnum<<' '<<bornout<<lifes[producechoose]<<',';
                cout<<numbers[producechoose]<<' '<<name[producechoose]<<teamout<<endl;
                flag = 1;
            }
            producechoose++;
            if(producechoose == 5)  producechoose = 0;
            if(flag == 1)break;
        }
        if(flag)
            time++;
        if(!flag){
    
    
            Bflag = 1;
            cout<<setw(3)<<setfill('0')<<time<<" blue headquarter stops making warriors"<<endl;
        }
    }
};

int main()
{
    
    
    int testtimes,producelife,dragonlife,ninjalife,icemanlife,lionlife,wolflife,i;
    cin>>testtimes;
    for(i=1;i<=testtimes;i++)
    {
    
    
        cin>>producelife;
        cin>>dragonlife>>ninjalife>>icemanlife>>lionlife>>wolflife;
        RedTeam R(producelife,dragonlife,ninjalife,icemanlife,lionlife,wolflife);
        BlueTeam B(producelife,dragonlife,ninjalife,icemanlife,lionlife,wolflife);
        cout<<"Case:"<<i<<endl;
        while(!R.Rflag || !B.Bflag)
        {
    
    
            if(!R.Rflag)R.ProducePrint();
            if(!B.Bflag)B.ProducePrint();
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_37500516/article/details/114771148
今日推荐