csp爐石傳說

2021-10-06 21:33:26 字數 2271 閱讀 9300

對於本道題目而言,給我的感覺便是比較規整,思路與邏輯也能短時間內組織起來,與元素選擇器一題相比較為簡單。感覺這道題目的關鍵處理在於end之後攻擊互換的處理,在這裡,因為只有雙方,所以我們採取了異或運算進行標記。這種思想,我們在之前的題目中也遇到過,在這道題目中只有兩個人,如果是多個人,應該採取加1模n的策略處理,這也是處理這類問題的乙個小技巧。針對於本題,我們需要注意的是對於隨從資訊的時刻更新,在summon操作後針對於隨從位置的更新,attack操作之後對於隨從血量以及位置的更新,而對於其他方面,感覺這道題目並沒有多少坑。詳細見**。

#include

#include

using

namespace std;

struct node}}

;int n;

string func;

int po,attack,li,posi1,posi2;

bool label=0;

//0的時候a0做出動作,1的時候a1做出動作;

intmain()

else

if(func==

"summon"

)else

for(

int j=i+

1;j>po;j--

) a[label]

.position[po]=1

; a[label]

.kill[po]

=attack;

a[label]

.life[po]

=li;}}

else

if(func==

"attack"

)else

break;}

a[label]

.position[i-1]

=0; a[label]

.life[i-1]

=0; a[label]

.kill[i-1]

=0;}

if(a[label^1]

.life[posi2]

<=0)

else

break;}

a[label^1]

.position[i-1]

=0; a[label^1]

.life[i-1]

=0; a[label^1]

.kill[i-1]

=0;}

}}if(a[0]

.life[0]

>

0&&a[1]

.life[0]

>0)

cout<<

0<

else

if(a[0]

.life[0]

>

0&&a[1]

.life[0]

<=0)

cout<<

1<

else

if(a[0]

.life[0]

<=

0&&a[1]

.life[0]

>0)

cout<

<

cout<

.life[0]

<

int t1=

0,t2=0;

for(

int i=

1;i<=

7;i++

) cout<

" ";

for(

int i=

1;i(t1!=0)

cout<

.life[t1]

<

else

cout<

cout<

.life[0]

<

for(

int i=

1;i<=

7;i++

) cout<

" ";

for(

int i=

1;i(t2!=0)

cout<

.life[t2]

<

else

cout<

}在這裡插入**片

CSP 爐石傳說

題意 爐石傳說 魔獸英雄傳 hearthstone heroes of warcraft,簡稱爐石傳說 是暴雪娛樂開發的一款集換式卡牌遊戲 如下圖所示 遊戲在乙個戰鬥棋盤上進行,由兩名玩家輪流進行操作,本題所使用的爐石傳說遊戲的簡化規則如下 玩家各控制乙個英雄,遊戲開始時,英雄的生命值為 30,攻擊...

CSP 爐石傳說

規則 玩家會控制一些角色,每個角色有自己的生命值和攻擊力。當生命值小於等於 0 時,該角色死亡。角色分為英雄和隨從。玩家各控制乙個英雄,遊戲開始時,英雄的生命值為 30,攻擊力為 0。當英雄死亡時,遊戲結束,英雄未死亡的一方獲勝。玩家可在遊戲過程中召喚隨從。棋盤上每方都有 7 個可用於放置隨從的空位...

CSP 爐石傳說

題意 玩家會控制一些角色,每個角色有自己的生命值和攻擊力。當生命值小於等於 0 時,該角色死亡。角色分為英雄和隨從。注 召喚隨從的位置一定是合法的,即如果當前本方戰場上有 m 個隨從,則召喚隨從的位置一定在 1 到 m 1 之間,其中 1 表示戰場最左邊的位置,m 1 表示戰場最右邊的位置。當本方戰...