1. 程式人生 > >魔獸世界一 備戰

魔獸世界一 備戰

第一次寫..分了好幾個類..希望擴充套件性強一些
#include <iostream>
using namespace std;
string WarriorType[5] = {"dragon","ninja","iceman","lion","wolf"};//dragon,ninja,iceman,lion,wolf
int redOrder[6] = {0,3,4,5,2,1};
int blueOrder[6] = {0,4,1,2,3,5};
int _i = 1,_j = 1;
int openingNo = 0;
int warriorHP[6];
int minHp;

class Warrior{
public:
    int hp;
    int id;
    int type;//1d,2n,3i,4l,5w
    Warrior(){}
    Warrior(int _hp,int _id,int _type):hp(_hp),id(_id),type(_type){}
};

class HeadQuarter{
public:
    int mana;
    int redNo = 0;
    int blueNo = 0;
    string HQtype;
    bool isOver = 0;
    HeadQuarter(){};
    HeadQuarter(int _mana,string _type){
        mana = _mana;
        HQtype = _type;
    }
    int warriorCount[6] = {0};


    void SpawnFunc(string _HQtype){

        if(isOver)return;
        if(mana<minHp){
            isOver = 1;
            printf("%03d ",openingNo);
            cout <<_HQtype<<" headquarter stops making warriors\n";
            return;
        }
        if(HQtype == "RED"){
            for(;;){
                int i = _i;
                if(i >5){
                    i%=5;
                    if(i==0)i=5;
                }
                if(warriorHP[redOrder[i]]>mana) {
                    ++_i;
                    continue;
                }

                else{
                    Warrior troop(warriorHP[redOrder[i]],++redNo,redOrder[i]);
                    //cout << i<< _i<<endl;
                    printf("%03d red %s %d born with strength %d,%d %s in red headquarter\n",openingNo,
                           WarriorType[troop.type-1].c_str(),redNo,warriorHP[troop.type],
                           ++warriorCount[troop.type],WarriorType[troop.type-1].c_str());

                    ++_i;
                    mana-=troop.hp;
                    //cout << "Current RED mana:"<<mana<<endl;
                   // cout << "Current RED minHP:"<<minHp<<endl;
                    break;
            }
            }
        }
        else{
            for(;;){
                int j = _j;
                if(j >5){
                    j%=5;
                    if(j==0)j=5;
                };

                if(warriorHP[blueOrder[j]]>mana){
                    ++_j;
                    continue;
                }
                else{
                    Warrior troop(warriorHP[blueOrder[j]],++blueNo,blueOrder[j]);
                   // cout << j <<_j<<endl;
                    printf("%03d blue %s %d born with strength %d,%d %s in blue headquarter\n",openingNo,
                           WarriorType[troop.type-1].c_str(),blueNo,warriorHP[troop.type],
                           ++warriorCount[troop.type],WarriorType[troop.type-1].c_str());

                    ++_j;
                    mana-=troop.hp;
                   //cout << "Current BLUE mana:"<<mana<<endl;
                    break;
                }
            }
        }
    }

};

class Game {
public:
   int M;
    HeadQuarter RED,BLUE;
    void reset(){
        _i = _j =1;
        openingNo = 0;

    }
    void GameStart(){
       RED.HQtype = "RED";BLUE.HQtype ="BLUE";
        while(true){
            if(RED.isOver&&BLUE.isOver)break;
            RED.SpawnFunc("red");
            BLUE.SpawnFunc("blue");
            openingNo++;
      }
    }
    void initHQ(){
        cin>>M;
        RED.mana = BLUE.mana = M;
    }
    void initWarrior(){
        for(int i = 1;i<=5;i++){
            cin>>warriorHP[i];
        }
        minHp = 10000;
        for(int i = 1;i<=5;i++){
            if(warriorHP[i]<minHp){
                minHp = warriorHP[i];
            }
        }
    }
};

int main(){

        int t;
        cin >> t;
        for(int i = 0; i < t; i++){
            Game game;
            game.reset();
            cout<<"Case:"<<i+1<<endl;
            game.initHQ();
            game.initWarrior();
            game.GameStart();
        }
        return  0;
    }

相關推薦

世界 備戰

第一次寫..分了好幾個類..希望擴充套件性強一些#include <iostream> using namespace std; string WarriorType[5] = {"dragon","ninja","iceman","lion","wolf"};/

B:世界之一:備戰

描述 魔獸世界的西面是紅魔軍的司令部,東面是藍魔軍的司令部。兩個司令部之間是依次排列的若干城市。 紅司令部,City 1,City 2,……,City n,藍司令部兩軍的司令部都會製造武士。武士一共有 dragon 、ninja、iceman、lion、wolf 五種。每種武士都有編號、生命值、攻

北大程式設計實習公開課程式設計作業,世界之一:備戰

魔獸世界的第一個版本,備戰。比較簡單。 因為我 take 這個課的時候,課程已經開到第八週了,這些作業已經不能提交。所以該程式碼沒有提交通過 oj 判斷,需要大家注意一下。如果以後有人拿此程式碼交了,沒有AC,希望能告訴下。(另外,這裡我想熟悉下 VS 環境,所以程式碼都是

世界如何快速搬磚賺金幣賣RMB

邁拓維矩 魔獸世界 遊戲同步器 魔獸世界(WOW)中搬磚賺錢有兩種方法,一般這兩種搬磚方法用於遊戲工作室當中比較常見,具體方法如下: 1、副本磚 搬副本磚的話,就是將潘達利亞、大地裂變的團隊本都掃上一圈,大概能得到7000-8000金幣,其它收入還沒有算上。但是,在刷

世界新增雪寶寶翁帕爾

  日前《魔獸世界》推出新寵物雪人寶寶翁帕爾,渾身白毛,長相十分可愛,而且還是一個喜歡冒險的小怪獸。另外,到2018年12月31日之前,在國服暴雪遊戲商城或者在遊戲商城中認領這隻寵物,官方將全額捐贈給“真愛夢想”公益基金會,又可以獲得可愛的小雪怪,又可以幫助別人,確實是一舉兩得的好事。斧牛加速器(www.fn

Java設計模式之從[世界包裹系統]分析組合(Composite)模式

  RPG遊戲中的包裹(或者稱為揹包)是玩家攜帶物品的地方,它的大小決定著玩家能夠攜帶物品數量。如在魔獸世界中,玩家起初的物品欄(將物品欄視為玩家的唯一一個包裹)的格子很少,但是玩家可以將新的包裹放在物品欄中,達到擴充物品欄的效果。也就是說,物品欄可以放消耗品、武器等零散的

逆向思維--世界封包分析(1)

本文作者:sodme本文出處:http://blog.csdn.net/sodme宣告:本文可以不經作者同意任意轉載,但任何對本文的引用都須註明作者、出處及此宣告資訊。謝謝!!   特別宣告:  本人非常欣賞暴雪及他們的遊戲,之所以寫這個文章,是想讓大家瞭解一些網路封包分析方

【openjudge】世界(終極版)

第一行是取消vs的error用的 //#pragma warning(disable:4996) #include <iostream> #include <fstream> #include <cstdio> #include <

逆向思維----世界封包分析(2)

本文作者:sodme本文出處:http://blog.csdn.net/sodme宣告:本文可以不經作者同意任意轉載、複製、傳播,但任何對本文的引用均須註明本文作者、出處及本行宣告資訊。謝謝!  封包分析的手段,說簡單也挺簡單的,那就是:比較!要不斷地從不同的思維角度對封包進行對比分析,要充分發揮你的想象

逆向思維----世界封包分析(1)

本文作者:sodme本文出處:http://blog.csdn.net/sodme宣告:本文可以不經作者同意任意轉載,但任何對本文的引用都須註明作者、出處及此宣告資訊。謝謝!!  特別宣告:  本人非常欣賞暴雪及他們的遊戲,之所以寫這個文章,是想讓大家瞭解一些網路封包分析方面的常見方法以及學習暴雪遊戲在網路處

R:世界終極版

描述 魔獸世界的西面是紅魔軍的司令部,東面是藍魔軍的司令部。兩個司令部之間是依次排列的若干城市,城市從西向東依次編號為1,2,3 .... N ( N <= 20 )。紅魔軍的司令部算作編號為0的城市,藍魔軍的司令部算作編號為N+1的城市。司令部有生命元,用於製造武士。 兩軍的司令部都會製造武士。武

【open judge】【程設】世界三開戰!

#程設 魔獸世界三---開戰!--------原以為會很容易ac,沒想到寫了好久,看來自己的水平還是亟待提高啊!有幾個比較有趣的點:1. typeid(#include<typeinfo>)還是比較好用的,特別是本題當戰士為wolf,iceman, dragon,

世界封包分析(1)

特別宣告:  本人非常欣賞暴雪及他們的遊戲,之所以寫這個文章,是想讓大家瞭解一些網路封包分析方面的常見方法以及學習暴雪遊戲在網路處理方面的經驗,我認為作為一個網路程式設計者,熟練掌握封包分析的工具和方法應該是其基本功之一。本文所列的所有封包分析內容,全部是採用普通黑箱方式即可

中國網遊為何出不了世界:研發週期才1-2年

浮躁的中國網遊業,從來不乏野性的鬥志,卻缺少應有的溫柔忍耐力。 近期,《魔獸世界》易主帶來的喧囂,再次給中國網遊廠商敲響警鐘。因為,在第九城市的發展史上,魔獸是其有且僅有的現金牛。 年報顯示,2008年九城實現的17.1億元收入中,《魔獸世界》貢獻了接近90%。 失去《魔獸

世界-按鍵精靈指令碼(1)-自動小寵物戰鬥

這個指令碼主要是為了練低階寶寶 // 4,3 --> 換出寶寶 changePet 3 wait_round // 4,1 --> 換出滿級貓 changePet 1 wait_round // MsgBox "ok" //ExitScript Rem _f

世界私服Trinity,從原始碼開始

緣起因由 在一個無所事事的週末下午,突然想起魔獸世界,官方的賬號很久沒有上了,裡面的大小號現在連滿級都不是。以前曾經搭過傳奇和星際爭霸戰網的私服自娛自樂,也聽說過魔獸世界有開源的服務端模擬,既然興致來了就小小的研究一下。 目前魔獸世界的私服比較流行的是MaNGOS和T

兄弟 調試逆向()

很多 ont 魔獸 dot 不支持 遇到的問題 調試 nbsp name 這個函數是開始驗證 MainWindow.\u202A\u202C\u200C\u202A\u200B\u202D\u202E\u200E\u206A\u202B\u202A\u202E\u202C

【愛生活、愛dota、愛魔獸、愛程式設計、我不大夢想卻很大.請不要叫我修電腦-告訴你我不會,我是--程式設計師】你只看到了我光鮮亮麗的表面,卻不知我背後工作生活的艱辛,你嘲笑我們木訥呆板,不懂去愛,我可憐你的膚淺無知,程式設計的路上少不了需求的變更,但那又怎樣,哪怕

你只看到了我光鮮亮麗的表面,卻不知我背後工作生活的艱辛,你嘲笑我們木訥呆板,不懂去愛,我可憐你的膚淺無知,程式設計的路上少不了需求的變更,但那又怎樣,哪怕一改再改,也要編的漂亮 我是程式設計師,我為自己代言...

Java解析爭霸3錄影W3G檔案():Header

魔獸爭霸3是一款非常著名的即時戰略遊戲。相信很多人都聽過sky、moon、grubby這些名字,還有塔魔infi、中國的鬼王ted、剛猛的fly、飄逸的th000等選手。遺憾的是WCG2013是魔獸爭霸3的最後一屆,我自己也去現場觀看了魔獸的總決賽。此外,還有DOTA、真三

張書樂:別光想著打劫客人,蒙牛、、Uber這樣玩跨界

上海迪斯尼 肯德基 麥當勞 人民網 冰淇淋 春是個春情勃發的季節,自然少不了“思春”多時的品牌合作,來撮燃這春天的火焰。這不,寫文章的功夫刷個微信朋友圈,就看到一個小夥伴正在興奮地分享著一個品牌合作案例:蒙牛將成為北京環球度假區官方乳品及冰淇淋獨家供應商,成為蒙牛拿下上海迪斯尼樂園專賣後的