Einführung
Doppelkopf ist ein traditionelles deutsches Kartenspiel für 4 Spieler. Das Deck besteht aus 48 Karten (9, 10, Jack, Queen, King, Ace jeder Farbe, während jede Karte zweimal im Spiel ist), sodass jeder Spieler zu Beginn einer Runde 12 erhält.
Es gibt immer 2 Mannschaften, die durch die Verteilung der Queens of Clubs bestimmt werden. Die 2 Spieler, die die Queens halten, bilden ein Team und spielen gegen die anderen 2 Spieler. Das Team mit den Queens of Clubs heißt "Re" -Team, das ohne ist das "Contra" -Team.
Zu Beginn der Runde weiß niemand, wer in welchem Team ist. Die Teamverteilung wird im Verlauf der Runde bekannt gegeben, was dem Spiel viel Strategie verleiht.
Das Spiel besteht aus 12 Tricks. Die Spieler, die einen Stich gewinnen, erhalten alle 4 Karten. Jede Karte hat einen bestimmten Wert (König zählt 4, Ass zählt 11), alle Karten zusammen ergeben 240 Punkte, was das höchstmögliche Ergebnis darstellt.
Am Ende einer Runde werden die Punkte gezählt und das Team mit der höchsten Punktzahl gewinnt die Runde. Dann beginnt dann die nächste Runde ...
Die Herausforderung
Jede Runde hat eine bestimmte Punktzahl, die sich nach der Anzahl der Punkte des Gewinnerteams und möglichen Ankündigungen richtet. Sie müssen ein Programm schreiben, das die Punkteverteilung und mögliche Ankündigungen (siehe Erklärung unten) als Eingabe verwendet und die Punktzahl der Runde und den Gewinner ausgibt.
Die Punkteberechnung
Wie bereits erwähnt gibt es ein Re- und ein Contra-Team. Außerdem sind in einer Runde maximal 240 Punkte möglich. Das Re-Team muss 121 Punkte erhalten, um zu gewinnen, während das Contra-Team nur 120 Punkte benötigt. Es besteht auch die Möglichkeit, zu Beginn der Runde "Re" oder "Contra" anzukündigen, wenn Sie glauben, dass Sie das Spiel gewinnen werden . Auf diese Weise erhöhen Sie die Punktzahl.
Hier sind die Bewertungsregeln:
- +1 für den Gewinn des Spiels
- +1 wenn das verlierende Team weniger als 90 Punkte hat ("Keine 90")
- +1 wenn das verlierende Team weniger als 60 Punkte hat ("Keine 60")
- +1 wenn das verlierende Team weniger als 30 Punkte hat ("Keine 30")
- +1 wenn die unterlegene Mannschaft 0 Punkte hat ("Schwarz")
- +2 für eine Ankündigung von Contra
- +2 für eine Ankündigung von Re
- +1 wenn das Contra Team gewonnen hat ("Gegen die Alten")
Hinweis: Re / Contra-Ankündigungen gelten immer, unabhängig vom Gewinner. Siehe Beispiele in den folgenden Testfällen.
Ein- und Ausgabe
Die Eingabe in das Programm ist die Punktzahl des Re-Teams und mögliche Ankündigungen von Re oder Contra. Da es immer 240 Punkte im Spiel gibt, können Sie die Punktzahl des Contra-Teams einfach berechnen.
Die Eingabe ist eine einzelne Zeichenfolge, die zuerst die Punktzahl des Re-Teams enthält, gefolgt von den möglichen Ankündigungen, während "R" für Re und "C" für Contra steht. Wenn beide angekündigt wurden, wird Re immer an erster Stelle stehen.
Die Ausgabe ist die Punktzahl des Spiels, gefolgt vom Gewinnerteam ("C" für Contra, "R" für Re).
Regeln
- Ihre Einreichung kann ein vollständiges Programm oder eine Funktion sein. Wenn Sie sich für Letzteres entscheiden, geben Sie ein Beispiel zum Aufrufen an.
- Die Eingabe kann durch Funktions- oder Befehlszeilenargumente oder Benutzereingaben erfolgen.
- Die Ausgabe kann als Rückgabewert bereitgestellt oder auf dem Bildschirm gedruckt werden.
- Es gelten Standardlücken .
- Niedrigste Byte-Anzahl gewinnt!
Testfälle
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)
Kurzer Hinweis: Ich habe absichtlich einige Regeln (wie Soli und Bonuspunkte) weggelassen, um die Herausforderung einfach zu halten. Also, wenn Sie bereits mit dem Spiel vertraut sind, seien Sie nicht verwirrt :)
Viel Spaß beim Codieren!