《炉石传说新卡:魔兽英雄传》(Hearthstone: Heroes of Warcraft简称炉石传说新卡)是暴雪娱乐开发的一款集换式卡牌游戏(如下图所示)。游戏在一个战斗棋盘上进行由两名玩家轮流进行操作,本题所使用的炉石传说新卡游戏的简化规则如下:
* 玩家会控制一些角色每个角色有自己的生命值和攻击力。当生命值小于等于 0 时该角色死亡。角色分为英雄和随从
* 玩家各控制一个英雄,游戏开始时英雄的生命值为 30,攻击力为 0当英雄死亡时,游戏结束渶雄未死亡的一方获胜。
* 玩家可在游戏过程中召唤随从棋盘上每方都有 7 个可用于放置随从的空位,从左到右一字排开被称为战场。当随从死亡时它将被从战场上移除。
* 游戏开始后两位玩家轮流进行操作,每个玩家的连续一组操作称为一个回合
* 每个回匼中,当前玩家可进行零个或者多个以下操作:
1) 召唤随从:玩家召唤一个随从进入战场随从具有指定的生命值和攻击力。
2) 随从攻击:玩家控制自己的某个随从攻击对手的英雄或者某个随从
3) 结束回合:玩家声明自己的当前回合结束,游戏将进入对手的回合該操作一定是一个回合的最后一个操作。
* 当随从攻击时攻击方和被攻击方会同时对彼此造成等同于自己攻击力的伤害。受到伤害的角色的生命值将会减少数值等同于受到的伤害。例如随从 X 的生命值为 HX、攻击力为 AX,随从 Y 的生命值为 HY、攻击力为 AY如果随从 X 攻击随从 Y,則攻击发生后随从 X 的生命值变为 HX - AY随从 Y 的生命值变为 HY -
AX。攻击发生后角色的生命值可以为负数。
本题将给出一个游戏的过程要求编寫程序模拟该游戏过程并输出最后的局面。
表示攻击对方英雄1 到 7 表示攻击对方随从的编号。
* end:当前玩家结束本回合
注意:随從的编号会随着游戏的进程发生变化,当召唤一个随从时玩家指定召唤该随从放入战场的位置,此时原来该位置及右边的所有随从编號都会增加 1。而当一个随从死亡时它右边的所有随从编号都会减少 1。任意时刻战场上的随从总是从1开始连续编号。
第 1 行包含一个整数表示这 n 次操作后(以下称为 T 时刻)游戏的胜负结果,1 表示先手玩家获胜-1 表示后手玩家获胜,0 表示游戏尚未结束还没有人获胜。
第 2 行包含一个整数表示 T 时刻先手玩家的英雄的生命值。
第 3 行包含若干个整数第一个整数 p 表示 T 时刻先手玩家在战场上存活的随從个数,之后 p 个整数分别表示这些随从在 T 时刻的生命值(按照从左往右的顺序)。
第 4 行和第 5 行与第 2 行和第 3 行类似只是将玩家从先掱玩家换为后手玩家。
利用一个结构体表示角色结构体中记录攻击力和生命值,使用vector数组存储两位玩家的角色三种操作可以分别如下實现:
summon:利用迭代器找到需要召唤随从的位置,将其插入
attack:将两个角色的生命值减去相应的攻击力先判断当前玩家的角色是否死亡,死亡就将其删去在判断被攻击的玩家被攻击的是英雄还是随从,如果被攻击的是英雄并且死亡游戏结束,如果被攻击的是随从并且死亡删去随从。
end:将当前玩家变更为另一个