ゴール:
オプションの戦闘能力を持つ2つのクリーチャーが与えられた場合、どのクリーチャーが死んだかを表す一意で一貫した値を返します。
入力:
#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"
戦闘力学:
各クリーチャーには、パワーとタフネスの順序の2つのステータス、およびオプションの能力があります。クリーチャーのパワーは> = 0です。クリーチャーのタフネスは> = 1です。
各クリーチャーは、同時に相手のクリーチャーにそのパワーに等しいダメージを与えます(先制攻撃がない限り)。値が対戦相手のタフネス以上である場合、(破壊できない場合を除いて)死にます。
例:アリスはaで2/2
、ボブはaで3/4
、両方とも能力がありません。アリスはボブに2ダメージを与え、代わりに3ダメージを与えます。アリスのタフネスは2なので死んでしまい、ボブのタフネスは4なので死んでしまいます。
このために検討するオプション機能は3つだけです(ただし、ゲームにはさらに多くの機能があります)。これらは1文字のフラグになります。
- [D] eathtouch:任意の量のダメージ(X> 0)は致命的と見なされます。
- [F] irst Strike:最初にダメージを与え、攻撃する前に他のクリーチャーを殺すことができます。両方のクリーチャーに先制攻撃がある場合、通常どおり戦闘を解決します。
- [I] ndestructible:Deathtouchを含め、致命的と見なされるダメージはありません。
出力:
次の4つのケースのそれぞれの一貫した値。答えに4つの値を明記してください。括弧内の戻り値の例:
- どちらのクリーチャーも死亡しなかった(0)
- 最初のクリーチャーが死亡した(1)
- 2番目のクリーチャーが死亡した(2)
- 両方のクリーチャーが死亡しました(3)
ルール:
- 入力には、正しくフォーマットされた2つのクリーチャーが存在することが保証されています。
- 能力にキャラクターを使用している場合、キャラクターが希望通りに注文されていると想定できますが、関連する場合は使用された注文を掲載します。
- 能力に数値/ビット文字列を使用している場合は、使用しているエンコーディングを投稿してください。例:
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