目标:
给定两个具有可选战斗能力的生物,返回唯一但一致的值,该值表示哪些生物死亡(如果有)。
输入:
#Longest form:
[[P,T, "<abilities>"], [P,T, "<abilities>"]]
#Shortest form:
[[P,T], [P,T]]
每个生物将以的形式给出[P,T,"<abilities>"]
。它将采用,或的形式[P,T]
,如果没有能力,则由您选择。P是> = 0的整数,T是> = 1的整数。是的子集,或者可以根据需要通过单个数字/位串表示。标志的顺序也由您决定。[P,T,""]
[P,T,0]
<abilities>
"DFI"
战斗力学:
每个生物都有两个属性,分别是力量和防御力,以及可选能力。生物的力量> = 0。生物的韧性> = 1。
每个生物都会同时对对方生物造成等同于其力量的伤害(除非有第一击)。如果该值大于或等于对手的韧性,则它将死亡(除非它是坚不可摧的)。
示例:Alice是a 2/2
,Bob是a 3/4
,两者都没有能力。爱丽丝会对鲍勃造成2点伤害,并以3点伤害作为回报。爱丽丝的韧性是2,所以它会死,鲍勃的韧性是4,所以它会活下去。
我们将为此考虑3种可选功能(尽管游戏中还有更多功能)。这些将是一个字符标志:
- [D]触摸:任何程度的伤害(X> 0)被认为是致命的。
- [F] irst Strike:将首先造成其伤害,能够杀死另一只生物,然后再发起攻击。如果两个生物都具有“先攻”,则照常结算战斗。
- 不可破坏:没有任何致命的伤害,包括死亡之触。
输出:
以下四种情况的任何一致值。请说明您的答案中的四个值。示例返回值(以括号为单位):
- 两人均未死亡(0)
- 第一个生物死亡(1)
- 第二生物死亡(2)
- 两个生物都死了(3)
规则:
- 确保输入具有两个正确格式的生物。
- 如果您使用角色的异能,则可以假定已按照想要的顺序对它们进行了排序,但如果相关,则发布使用的顺序。
- 如果您使用数字/位串表示能力,请张贴您正在使用的编码。例如:
111
isD/F/I
,7
isD/F/I
,等等。 - 如果一个生物没有异能,也可以当作
[P,T, ""]
或等同于数字 - 禁止标准漏洞
- 这是代码高尔夫球,因此最短的代码获胜。
例子:
Input: [[2,2], [1,1]]
Output: 2nd Dies
Input: [[0,2], [0,1]] #0/2 vs 0/1
Output: Neither Die
Input: [[2,1], [2,1]] #2/1 vs 2/1
Output: Both Die
Input: [[1,1, "D"], [2,2]] #1/1 Deathtoucher vs 2/2
Output: Both Die
Input: [[2,2], [0,1, "D"]] #2/2 vs 0/1 Deathtoucher
Output: 2nd Dies
Input: [[2,2], [1,1, "DF"]] #2/2 vs 1/1 Deathtouch First-striker
Output: 1st Dies
Input: [[0,2, "D"], [0,1, "DF"]] #0/2 Deathtoucher vs 0/1 Deathtouch First-striker
Output: Neither Die
Input: [[2,2], [2,2, "F"]] #2/2 vs 2/2 First-striker
Output: 1st Dies
Input: [[2,2, "I"], [1,1, "DF"]] #2/2 Indestructible vs 1/1 Deathtouch First-striker
Output: 2nd Dies
Input: [[9999,9999], [1,1, "I"]] #9999/9999 vs 1/1 Indestructible
Output: Neither Die
Input: [[2,2, "F"], [1,1, "F"]] #2/2 First-Striker vs 1/1 First-Striker
Output: 2nd Dies
#9/9 Deathtouch, Indestructible First-Striker vs 9/9 Deathtouch, Indestructible First-Striker
Input: [[9,9, "DFI"], [9,9, "DFI"]]
Output: Neither Die
D => 0, F => 1, I => 2