csp16年09 3T爐石傳說

2021-10-05 15:40:01 字數 2741 閱讀 9872

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

\quad

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

\quad

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

\quad

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

\quad

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

\quad

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

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

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

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

\quad

* 當隨從攻擊時,攻擊方和被攻擊方會同時對彼此造成等同於自己攻擊力的傷害。受到傷害的角色的生命值將會減少,數值等同於受到的傷害。例如,隨從 x 的生命值為 hx、攻擊力為 ax,隨從 y 的生命值為 hy、攻擊力為 ay,如果隨從 x 攻擊隨從 y,則攻擊發生後隨從 x 的生命值變為 hx - ay,隨從 y 的生命值變為 hy - ax。攻擊發生後,角色的生命值可以為負數。

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

樣例輸入:

8

summon 136

summon 242

endsummon 145

summon 121

attack 1

2end

attack 1

1

樣例輸出:

0301

23012

對於這個題,一共兩個玩家,輪流進行攻擊,可以用乙個int值進行遞增並且對2求餘的方式來表示當前是哪個玩家在進行操作。當玩家進行操作時,共有三種操作,召喚隨從,在某個位置放置隨從時,要把該位置以及後面的隨從向後平移一位,當乙個隨從死亡時,將其後面的隨從向前進行移位。第二個是攻擊,攻擊有兩種情況,乙個是攻擊英雄,英雄的血量減少某個隨從的攻擊力,如果血量小於等於0,則該英雄死亡, 遊戲結束,否則繼續戰鬥。如果攻擊隨從,兩方都會造成傷害,具體規則題目描述中提到過,如果是結束操作,則換另一方進行操作,然後根據題目要求進行輸出。

#include

#include

using

namespace std;

struct sumo

sumo&

operator

=(sumo s)};

struct player };

player p[5]

;int n;

intmain()

else

if(oper ==

"attack"

)else

if(p[oppo]

.summ[de]

.blood <=0)

}}else

if(oper ==

"end")}

if(p[0]

.blood >

0&& p[1]

.blood >0)

//按題目要求進行輸出

cout <<

"0"<< endl;

else

if(p[0]

.blood <=0)

cout <<

"-1"

<< endl;

else

if(p[1]

.blood <=0)

cout <<

"1"<< endl;

cout << p[0]

.blood << endl;

int num1, num2;

num1 =

0, num2 =0;

int bb1[7]

, bb2[7]

;for

(int i =

1; i <=

7; i++)if

(p[1

].summ[i]

.blood >0)

} cout << num1 <<

" ";

for(

int i =

0; i < num1; i++

) cout << bb1[i]

<<

" ";

cout << endl;

cout << p[1]

.blood << endl;

cout << num2 <<

" ";

for(

int i =

0; i < num2; i++

) cout << bb2[i]

<<

" ";

cout << endl;

return0;

}

csp16年9月爐石傳說

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

csp模擬 模擬測試16

fdasds include using namespace std define cle a memset a,0,sizeof a inline int read const int mod 1e9 7,maxn 1e3 100 int n,m,ans 0 int f maxn maxn int...

CSP 2023年9月 買菜

我的csp 倉庫 由於時間都是正數而且資料規模並不大,所以可以使用陣列表示時間線,所以只需要建立兩個人的時間線陣列,將所有裝車時間區間置為1,其他為0 最後只需要一遍遍歷,兩個都為1的,就是在聊天的時間了 include include include define local using name...