程设实习——魔兽世界一

#include <cstdio>
#include <string>
#include <iostream>
using namespace std;
 
int dragonStrength, ninjaStrength,icemanStrength,lionStrength,wolfStrength;
int test, headquarterLife;
string timeNow;
void increasetimeNow(){
    if(timeNow[2]!='9')
        timeNow[2]++;
    else if(timeNow[1]!='9'){
        timeNow[1]++;
        timeNow[2]='0';
    }
    else{
        timeNow[0]++;
        timeNow[1]='0';
        timeNow[2]='0';
    }
}
 
class Headquarter{
    string color;
    int life;
    int warriorNumber;
    int dragonNumber;
    int ninjaNumber;
    int icemanNumber;
    int lionNumber;
    int wolfNumber;
 
    bool makeDragon();
    bool makeNinja();
    bool makeIceman();
    bool makeLion();
    bool makeWolf();
    bool isDragonMade;
    bool isNinjaMade;
    bool isIcemanMade;
    bool isLionMade;
    bool isWolfMade;
 
public:
    bool stop;
    void makeWorrior();
    Headquarter(string color_);
};
Headquarter::Headquarter(string color_){
    life = headquarterLife;
    stop = false;
    color = color_;
 
    warriorNumber = 0;
    dragonNumber = 0;
    ninjaNumber = 0;
    icemanNumber = 0;
    lionNumber = 0;
    wolfNumber = 0;
 
    isDragonMade = false;
    isNinjaMade = false;
    isIcemanMade = false;
    isLionMade = false;
    isWolfMade = false;
 
    if(color_=="red")
        isDragonMade = true;
    else
        isWolfMade = true;
}
bool Headquarter::makeDragon(){
    isDragonMade = true;
    if(life>= dragonStrength){
        life -= dragonStrength;
       warriorNumber ++;
       dragonNumber ++;
        cout << timeNow << " " << color<<" dragon" << " " << warriorNumber<<" born withstrength ";
        cout << dragonStrength<<"," << dragonNumber<< " dragon in"<< color <<"headquarter" << endl;
        return true;
    }
    return false;
}
bool Headquarter::makeNinja(){
    isNinjaMade = true;
    if(life>= ninjaStrength){
        life -= ninjaStrength;
       warriorNumber ++;
        ninjaNumber ++;
        cout << timeNow << " " << color<<" ninja" << " " << warriorNumber<<" born withstrength ";
        cout << ninjaStrength << "," << ninjaNumber<<" ninja in" << color<< "headquarter"<< endl;
        return true;
    }
    return false;
}
bool Headquarter::makeIceman(){
    isIcemanMade = true;
    if(life>= icemanStrength){
        life -= icemanStrength;
       warriorNumber ++;
       icemanNumber ++;
        cout << timeNow << " " << color<<" iceman" << " " << warriorNumber<<" born withstrength ";
        cout << icemanStrength<<"," << icemanNumber<< " iceman in"<< color <<"headquarter" << endl;
        return true;
    }
    return false;
}
bool Headquarter::makeWolf(){
    isWolfMade = true;
    if(life>= wolfStrength){
        life -= wolfStrength;
       warriorNumber ++;
        wolfNumber ++;
        cout << timeNow << " " << color<<" wolf" << " " << warriorNumber<<" born withstrength ";
        cout << wolfStrength << "," << wolfNumber<<" wolf in" << color<< "headquarter"<< endl;
        return true;
    }
    return false;
}
bool Headquarter::makeLion(){
    isLionMade = true;
    if(life>= lionStrength){
        life -= lionStrength;
       warriorNumber ++;
        lionNumber ++;
        cout << timeNow << " " << color<<" lion" << " " << warriorNumber<<" born withstrength ";
        cout << lionStrength << "," << lionNumber<<" lion in" << color<< "headquarter"<< endl;
        return true;
    }
    return false;
}
void Headquarter::makeWorrior(){
    if(color=="red"){
        if(isDragonMade){
           isDragonMade = false;
            if(makeIceman())
                return;
        }
        if(isIcemanMade){
           isIcemanMade = false;
            if(makeLion())
                return;
        }
        if(isLionMade){
           isLionMade = false;
            if(makeWolf())
                return;
        }
        if(isWolfMade){
           isWolfMade = false;
            if(makeNinja())
                return;
        }
        if(isNinjaMade){
           isNinjaMade = false;
            if(makeDragon())
                return;
        }
        if(isDragonMade){
           isDragonMade = false;
            if(makeIceman())
                return;
        }
        if(isIcemanMade){
           isIcemanMade = false;
            if(makeLion())
                return;
        }
        if(isLionMade){
           isLionMade = false;
            if(makeWolf())
                return;
        }
        if(isWolfMade){
           isWolfMade = false;
            if(makeNinja())
                return;
        }
        if(isNinjaMade){
           isNinjaMade = false;
            if(makeDragon())
                return;
        }
        stop = true;
        cout << timeNow << " redheadquarter stops making warriors" << endl;
    }
    else{
        if(isWolfMade){
           isWolfMade = false;
            if(makeLion())
                return;
        }
        if(isLionMade){
            isLionMade= false;
            if(makeDragon())
                return;
        }
        if(isDragonMade){
           isDragonMade = false;
            if(makeNinja())
                return;
        }
        if(isNinjaMade){
           isNinjaMade = false;
            if(makeIceman())
                return;
        }
        if(isIcemanMade){
           isIcemanMade = false;
            if(makeWolf())
                return;
        }
        if(isWolfMade){
           isWolfMade = false;
            if(makeLion())
                return;
        }
        if(isLionMade){
           isLionMade = false;
            if(makeDragon())
                return;
        }
        if(isDragonMade){
           isDragonMade = false;
            if(makeNinja())
                return;
        }
        if(isNinjaMade){
           isNinjaMade = false;
            if(makeIceman())
                return;
        }
        if(isIcemanMade){
           isIcemanMade = false;
            if(makeWolf())
                return;
        }
        stop = 1;
        cout << timeNow << " blueheadquarter stops making warriors"<< endl;
    }
}
 
void getInformation(){
    scanf("%d",&headquarterLife);
    scanf("%d %d %d %d%d",&dragonStrength,&ninjaStrength,&icemanStrength,&lionStrength,&wolfStrength);
}
 
int main(void){
    scanf("%d",&test);
    for(int i=0; i< test; i++){
        timeNow = "000";
        getInformation();
        cout << "Case:" << i + 1 << endl;
        Headquarter red("red");
        Headquarter blue("blue");
        while((!(red.stop)||!(blue.stop))){
            if(!(red.stop))
                red.makeWorrior();
            if(!(blue.stop))
               blue.makeWorrior();
            increasetimeNow();
        }
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值