對於本道題目而言,給我的感覺便是比較規整,思路與邏輯也能短時間內組織起來,與元素選擇器一題相比較為簡單。感覺這道題目的關鍵處理在於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 表示戰場最右邊的位置。當本方戰...