チートは、あなたの手を取り除こうとしているカードゲームです。ターンは次のようになります。
- そのターンにプレイするカードのランクを決定します。ほとんどのバリエーションでは、これは前のターンより1ランク高いです。
- 1-4枚のカードを裏向きにプレイします。これらは有効なランクと一致する必要はありません。そうでない場合、チートと見なされます。この時点で、どのプレイヤーもあなたに挑戦できます。
- 誰もあなたに挑戦しない場合、プレイは次のプレイヤーに続きます。
- 誰かがあなたに挑戦し、あなたがカンニングをしなかった場合、彼らはプレイしたカードのすべてを取らなければなりません。
- 誰かがあなたに挑戦し、あなたがチートをした場合、あなたはプレイされたカードのすべてを取らなければなりません。
戦略は、主にブラフとカードカウントの組み合わせです。しかし、私は数学が苦手なので、Cheatをごまかしてボットを持ってきます。
入力
入力は、任意の順序または形式になります。
- プレイヤーの手。彼らがカードを持っている必要があることを知っている場合(たとえば、それらを拾うのを見たことがあります)、それらは昇順でリストされます。不明なものは、後にとしてリストされ
?
ます。たとえば、6枚のカードがあり、2枚が1枚で、1枚が4枚であることがわかっている場合、有効なハンドの表現は114???
です。?は常に既知のカードの後にリストされます。141???
そして11???4
両方の無効な入力であり、あなたのコードでは、それらを処理する必要はありません。 - 私が間違いなく知っているカードは彼らの手の一部ではありません(私はそれらを持っています、他の誰かがそれらを拾うのを見ました、など)。リストはランクの昇順になります。リストは空かもしれません。
- プレーヤーがプレイすると主張したカード。彼らが3 7をプレイすると主張した場合、ここで可能な入力はになります
777
。カードは常に同じランクになります。
プレイされるカードの数は常に1〜4で、ランクは常に0〜9です。ランクは、手ではなく手に4回以上表示されることはありません。
これは有効な入力の例です:
33577??
01555688
55
これは無効な入力の例です:
35377?? # Out of order
7779 # Five 7's in total
23 # Two separate ranks played
出力
私たちが間違いなくすべきなら、真の価値挑戦。チャレンジしたくない場合はfalse値。
彼らがだまされていることがわかっている場合、私たちは常に挑戦します。持っていなかったカードをプレイした場合、彼らはだまされたことがわかります。
12
3 # They don't have any 3's or ?'s
-------------
12?
33 # Fewer ?'s than played cards
-------------
123?
333
33 # Since we have three 3's they can't have two
私たちが挑戦する他の時間は、彼らが最後のカードをプレイするかどうかです。たとえプレイの合法性がゲームを終了させたとしても、私たちはそれに挑戦するかもしれません。
1
1 # They'd win, so challenge anyway
その他のテストケース
真実の(挑戦すべき)
11445678?
22
-------------
????????
4
4444
-------------
12345678
9
Falsey(挑戦すべきではない)
1?
222
2
-------------
12?
22
22
-------------
?????
1111
得点
最短のコードが優先されます。