201609 3 爐石傳說

2021-07-31 05:45:51 字數 1408 閱讀 9588

問題描述

《爐石傳說:魔獸英雄傳》(hearthstone: heroes of warcraft,簡稱爐石傳說)是暴雪娛樂開發的一款集換式卡牌遊戲(如下圖所示)。遊戲在乙個戰鬥棋盤上進行,由兩名玩家輪流進行操作,本題所使用的爐石傳說遊戲的簡化規則如下:

* 玩家會控制一些角色,每個角色有自己的生命值和攻擊力。當生命值小於等於 0 時,該角色死亡。角色分為英雄和隨從。

* 玩家各控制乙個英雄,遊戲開始時,英雄的生命值為 30,攻擊力為 0。當英雄死亡時,遊戲結束,英雄未死亡的一方獲勝。

* 玩家可在遊戲過程中召喚隨從。棋盤上每方都有 7 個可用於放置隨從的空位,從左到右一字排開,被稱為戰場。當隨從死亡時,它將被從戰場上移除。

* 遊戲開始後,兩位玩家輪流進行操作,每個玩家的連續一組操作稱為乙個回合。

* 每個回合中,當前玩家可進行零個或者多個以下操作:

1) 召喚隨從:玩家召喚乙個隨從進入戰場,隨從具有指定的生命值和攻擊力。

2) 隨從攻擊:玩家控制自己的某個隨從攻擊對手的英雄或者某個隨從。

3) 結束回合:玩家宣告自己的當前回合結束,遊戲將進入對手的回合。該操作一定是乙個回合的最後乙個操作。

* 當隨從攻擊時,攻擊方和被攻擊方會同時對彼此造成等同於自己攻擊力的傷害。受到傷害的角色的生命值將會減少,數值等同於受到的傷害。例如,隨從 x 的生命值為 h

x、攻擊力為 a

x,隨從 y 的生命值為 h

y、攻擊力為 a

y,如果隨從 x 攻擊隨從 y,則攻擊發生後隨從 x 的生命值變為 h

x - a

y,隨從 y 的生命值變為 h

y - a

x。攻擊發生後,角色的生命值可以為負數。

本題將給出乙個遊戲的過程,要求編寫程式模擬該遊戲過程並輸出最後的局面。

#include#include#include#includeusing namespace std;

int main()

} else if(strcmp(s[i].c_str(),"attack")==0)

else

getchar();

} for(int op=0;opsize1)

else

}else

else

}} else if(oper[op][0]==2)

}else

if(att2[df-1][1]<=0)

} }else

}else

if(att1[df-1][1]<=0) } }

} elseelse

} }if(die==0){

cout<<0<

201609 3 爐石傳說

解題思路 定義乙個node裡面存放著生命健康值和攻擊值,在擦汗如的時候,注意所有右邊的編號都會 1,當死去的時候,所有右邊的隨從編號都 1,定義兩個vector分別表示兩個玩家的隨從,0,1 然後判斷他的語句,summon,召喚隨從就插入 attack 分別 對方的攻擊值,然後判斷他的健康值是否 0...

201609 3 爐石傳說

爐石傳說 魔獸英雄傳 hearthstone heroes of warcraft,簡稱爐石傳說 是暴雪娛樂開發的一款集換式卡牌遊戲 如下圖所示 遊戲在乙個戰鬥棋盤上進行,由兩名玩家輪流進行操作,本題所使用的爐石傳說遊戲的簡化規則如下 玩家會控制一些角色,每個角色有自己的生命值和攻擊力。當生命值小於...

CCFCSP 201609 3 爐石傳說

試題編號 201609 3 試題名稱 爐石傳說 時間限制 1.0s 記憶體限制 256.0mb 場上的兩名玩家輪流進行遊戲,每個玩家場上最多有7個隨從,而場上的隨從總是從左到右排列,即在場上不會有空位。玩家擁有兩種操作 召喚 summon 和攻擊 attack 由題意可知,隨從的召喚位置在當前場上所...