《爐石傳說:魔獸英雄傳》(hearthstone: heroes of warcraft,簡稱爐石傳說)是暴雪娛樂開發的一款集換式卡牌遊戲(如下圖所示)。遊戲在乙個戰鬥棋盤上進行,由兩名玩家輪流進行操作,本題所使用的爐石傳說遊戲的簡化規則如下:
本題將給出乙個遊戲的過程,要求編寫程式模擬該遊戲過程並輸出最後的局面。
輸入第一行是乙個整數 n,表示操作的個數。接下來 n 行,每行描述乙個操作,格式如下:
< action > < arg1 > < arg2 >
其中< action >表示操作型別,是乙個字串,共有 3 種:summon表示召喚隨從,attack表示隨從攻擊,end表示結束回合。這 3 種操作的具體格式如下:
注意:隨從的編號會隨著遊戲的程序發生變化,當召喚乙個隨從時,玩家指定召喚該隨從放入戰場的位置,此時,原來該位置及右邊的所有隨從編號都會增加 1。而當乙個隨從死亡時,它右邊的所有隨從編號都會減少 1。任意時刻,戰場上的隨從總是從1開始連續編號。
輸出共 5 行。
8
summon 136
summon 242
endsummon 145
summon 121
attack 1
2end
attack 1
1
0301
23012
按照樣例輸入從第 2 行開始逐行的解釋如下:
先手玩家在位置 1 召喚乙個生命值為 6、攻擊力為 3 的隨從 a,是本方戰場上唯一的隨從。
先手玩家在位置 2 召喚乙個生命值為 2、攻擊力為 4 的隨從 b,出現在隨從 a 的右邊。
先手玩家回合結束。
後手玩家在位置 1 召喚乙個生命值為 5、攻擊力為 4 的隨從 c,是本方戰場上唯一的隨從。
後手玩家在位置 1 召喚乙個生命值為 1、攻擊力為 2 的隨從 d,出現在隨從 c 的左邊。
隨從 d 攻擊隨從 b,雙方均死亡。
後手玩家回合結束。
隨從 a 攻擊隨從 c,雙方的生命值都降低至 2。
啊♂,爐石傳說,五年老玩家8請自來。
其實這道題目的邏輯和遊戲真的非常相似,所以其實也很好理解,簡單來說就是:
這道題需要避開的幾個點:
其實實現起來還是不難的,照著遊戲思路和題目描述順著來就行了,也沒啥坑。
#include
#include
using
namespace std;
typedef
struct
node;
node a[8]
;//先手玩家的隨從們,0為玩家
int aa[8]
;//某個隨從位是否有隨從
node b[8]
;//後手玩家的隨從們,0為玩家
int bb[8]
;//某個隨從位是否有隨從
intmain()
aa[x]=1
; a[x]
.ac=y;a[x]
.life=z;
}else
if(f==2)
bb[x]=1
; b[x]
.ac=y;b[x]
.life=z;}}
if(temp==
"end"
)//回合結束
if(temp==
"attack"
)else
if(f==2)
for(
int i=
1;i<=
7;i++
)break;}
}for
(int i=
1;i<=
7;i++
)break;}
}}}if
(a[0
].life<=
0) cout<<
"-1"
<
else
if(b[0]
.life<=
0) cout<<
"1"<
else
if(a[0]
.life>
0&&b[0]
.life>
0) cout<<
"0"<
cout<
.life<
int sum=0;
for(
int i=
1;i<=
7;i++
) cout<
for(
int i=
1;i<=
7;i++
) cout<
cout<
.life<
sum=0;
for(
int i=
1;i<=
7;i++
) cout<
for(
int i=
1;i<=
7;i++
) cout<
return0;
}
CCFCSP 201609 3 爐石傳說
試題編號 201609 3 試題名稱 爐石傳說 時間限制 1.0s 記憶體限制 256.0mb 場上的兩名玩家輪流進行遊戲,每個玩家場上最多有7個隨從,而場上的隨從總是從左到右排列,即在場上不會有空位。玩家擁有兩種操作 召喚 summon 和攻擊 attack 由題意可知,隨從的召喚位置在當前場上所...
CCF CSP201609 3爐石傳說
試題編號 201609 3 試題名稱 爐石傳說 時間限制 1.0s 記憶體限制 256.0mb 問題描述 爐石傳說 魔獸英雄傳 hearthstone heroes of warcraft,簡稱爐石傳說 是暴雪娛樂開發的一款集換式卡牌遊戲 如下圖所示 遊戲在乙個戰鬥棋盤上進行,由兩名玩家輪流進行操作...
CCF CSP 201609 3 爐石傳說
一道簡單的模擬,使用乙個變數cur來記錄當前的玩家,用乙個結構體陣列來記錄當前場上的隨從,之後按照題目要求進行隨從召喚後的右移和隨從死亡後的左移即可。include include using namespace std struct servent s 2 8 int cnt 2 int n,cu...