私は子供の頃、このゲームをよくプレイしていました。
ルール
2人のプレイヤーがいて(AとBと呼びましょう)、各プレイヤーは銃として手を使います。3つの可能な動きがあります。
あなたの銃に弾薬をロードするために手を挙げてください。
各銃は空から始まります。装填により弾薬が1つ増えます。
撮影する他のプレイヤーを指している手。
これにより、弾薬が1つ減少します。射撃するには、少なくとも1ユニットの弾薬が必要です。
腕を組んで、ショットから身を守ります。
両方のプレイヤーが同時に移動します。両方のプレイヤーが同時に撃つ場合、弾丸は互いに衝突し、ゲームは続行します。片方のプレイヤーが弾薬を装填している間に他のプレイヤーが撃つと、ゲームは終了します。
銃撃と空の銃は不正行為と見なされます。プレーヤーが不正行為を行っている間に他のプレーヤーが不正行為を行った場合、不正行為者はすぐに負けます。両方のプレイヤーが同時にチートした場合、ゲームは続行します。
不正行為は弾薬を減少させないので、決してマイナスになることはありません。
チャレンジ
プレーヤーAとBの動きを考慮して、どのプレーヤーがゲームに勝ったかを出力します:1プレーヤーA、-1プレーヤーB、0引き分け。戻り値のその他のトリプルを使用できますが、使用するものを回答に記載する必要があります。
ゲームは:
- すべての動きを処理することなく終了します。
- 与えられた動きで終わらないため、引き分けと見なされます。
入力を取得できます。
- 文字列として
- 整数の配列/リストとして
- 入力を前処理しない他の方法で
完全なプログラムまたは機能が許可されます。これはcode-golfなので、バイト単位の最短回答が勝ちです!
テストケース
A: "123331123"
B: "131122332"
-----^ Player B shoots player A and wins.
Output: -1
A: "111322213312"
B: "131332221133"
-------^ Player B cheats and loses.
Output: 1
A: "1333211232221"
B: "1213211322221"
----------^^ Both players cheat at the same time. The game continues.
Output: 0
A: "12333213112222212"
B: "13122213312232211"
| || ^---- Player A shoots player B and wins.
^-------^^------ Both players cheat at the same time. The game continues.
Output: 1