前書き
Doppelkopfは、4人用の伝統的なドイツのカードゲームです。デッキは48枚のカード(すべてのカードがゲームに2度ある間、各スーツの9、10、ジャック、クイーン、キング、エース)で構成されているため、ラウンドの開始時に各プレイヤーは12枚を受け取ります。
クイーンズオブクラブの配分によって決定されるチームは常に2つあります。クイーンズを保持している2人のプレーヤーがチームを形成し、他の2人のプレーヤーと対戦します。クィーンズオブクラブのチームは「リ」チームと呼ばれ、ないチームは「コントラ」チームと呼ばれます。
ラウンドの開始時には、誰がどのチームにいるかは誰にもわかりません。チームの分布はラウンドの進行中に明らかになり、ゲームに多くの戦略が追加されます。
ゲームは12のトリックで構成されています。トリックを獲得したプレーヤーは、その中に4枚すべてのカードを取得します。すべてのカードには特定の値(たとえば、キングカウント4、エースカウント11)があり、すべてのカードを合計すると240ポイントになり、最高の結果になります。
ラウンドの終了時にポイントがカウントされ、ポイントが最も多いチームがラウンドに勝利します。その後、次のラウンドが始まります...
チャレンジ
各ラウンドには、勝利チームが獲得したポイントの量と潜在的なアナウンスによって決定される特定のスコアがあります。ポイントの分布と潜在的なアナウンス(以下の説明を参照)を入力として受け取り、ラウンドと勝者のスコアを出力するプログラムを作成する必要があります。
スコア計算
前述のように、再チームとコントラチームがあります。また、1ラウンドで最大240ポイントが可能です。Retraチームは121ポイントを獲得する必要がありますが、Contraチームは120ポイントしか必要としません。ゲームに勝つと思われる場合は、ラウンドの開始時に「Re」または「Contra」を発表する可能性もあります。 。これを行うことにより、あなたはスコアを上げています。
スコアリングルールは次のとおりです。
- ゲームに勝つための+1
- 負けたチームのポイントが90 未満の場合は+1 ( "Keine 90")
- 負けたチームのポイントが60 未満の場合は+1 ( "Keine 60")
- 負けたチームのポイントが30 未満の場合は+1 ( "Keine 30")
- 負けたチームの得点が0の場合は+1( "Schwarz")
- +2 Contraの発表
- +2 Reの発表
- コントラチームが勝利した場合は+1( "Gegen die Alten")
注:受賞者に関係なく、Re / Contra-Announcementsは常に適用されます。以下のテストケースの例を参照してください。
入出力
プログラムへの入力は、リチームのスコアと、リまたはコントラの潜在的なアナウンスになります。ゲームには常に240ポイントあるので、コントラチームのスコアを簡単に計算できます。
入力は、最初にリチームのスコアがあり、その後に潜在的なアナウンスが続く単一の文字列になりますが、「R」はRe、「C」はContraです。両方が発表された場合、Reは常に最初に来るでしょう。
出力は、勝利チームが後に続くゲームのスコアになります(コントラの場合は「C」、Reの場合は「R」)
ルール
- 提出物は、完全なプログラムまたは関数にすることができます。後者を選択する場合は、それを呼び出す方法の例を含めてください。
- 入力は、関数またはコマンドライン引数またはユーザー入力によって提供できます。
- 出力は戻り値として提供するか、画面に出力できます。
- 標準の抜け穴が適用されます。
- 最小バイト数の勝利!
テストケース
Input -> Output (Explanation)
145R -> 3R (Re won, +1 for winning, +2 for Re-Announcement)
120 -> 2C (Contra won, +1 for winning, +1 for winning as Contra)
80C -> 5C (Contra won, +1 for winning, +1 for no 90, +1 for winning as Contra, +2 for Contra-Announcement)
240R -> 7R (Re won, +1 for winning, +1 for no 90, +1 for no 60, +1 for no 30, +1 for no points for the losing team, +2 for Re-announcedment)
90 -> 2C (Contra won, +1 for winning, +1 for winning as Contra)
110RC -> 6C (Contra won, +1 for winning, +1 for winning as Contra, +2 for Re-Announcement, +2 for Contra-Announcement)
110R -> 4C (Contra won, +1 for winning, +1 for winnins as Contra, +2 for Re-Announcement)
184C -> 5R (Re won, +1 for winning, +1 for no 90, +1 for no 60, +2 for Contra-Announcement)
短いメモ:チャレンジをシンプルにするために、意図的にいくつかのルール(ソロやボーナスポイントなど)を省略しました。だからあなたがすでにゲームに精通しているなら、混乱しないでください:)
ハッピーコーディング!