Eingang:
Erstens
Ein Array von drei Karten, die die Karten repräsentieren, die von jedem Spieler gespielt werden
[JD][TH][9S]
Darstellen
Jack of Diamonds, 10 of Hearts, and Nine of Spades.
Da Sie in Euchre immer Ihrem Teamkollegen gegenüber sitzen, repräsentiert das zweite Element das Spiel Ihres Teamkollegen. Hier die TH
.
Zweitens
ein einzelnes Zeichen, eine Zeichenfolge usw., die den Trumpfanzug darstellt, der wie folgt formatiert ist
S, D, C, H
darstellen
Spades, Diamonds, Clubs, Hearts
Drittens ein Array von vier Karten, die Ihre Hand darstellen und wie folgt formatiert sind
[KD][JC][QH][AS]
darstellen
King of Diamonds, Jack of Clubs, Queen of Hearts, Ace of Spades
Zielsetzung:
Geben Sie anhand der drei Eingänge die bestmögliche Karte aus, um sie zu den gespielten Karten hinzuzufügen, sodass sie die folgenden Kriterien erfüllt:
- Es nimmt die Hand, wenn es kann, wenn nicht die am wenigsten wertvolle Karte ausgegeben
- Es nimmt die Hand, wenn es kann, aber es wird nicht Ihr Teamkollege trumpfen, es sei denn, es ist unvermeidlich
- Wenn es die Hand nehmen kann, verwendet es die am wenigsten wertvolle Karte. (Wenn Sie ein Ass und eine Dame haben, die die Hand gewinnen können, spielen Sie die Dame).
- Alle Spiele müssen den unten angegebenen Regeln entsprechen.
Ausgabeformat wie [JD]
Formatierung
A - Ace
K - King
Q - Queen
J - Jack
T - Ten
9 - Nine
H - Hearts
D - Diamonds
S - Spades
C - Clubs
TH, 9D, JD, QH, AD, 9C, TC
Beispiele
In: [QD][KD][9C]
, "C"
,[AH][JH][QH][9H]
Aus: 9H
Grund: Da die Vereine Trumpf sind und der 9C die Hand gewinnt, können wir die Hand nicht nehmen, daher sollten wir unsere niedrigste Karte ablegen, hier die 9H
In: [QD][KD][AD]
, "H"
,[AH][JH][QH][9H]
Aus: 9H
Grund: Da Herzen Trumpf sind und das Ass der Diamanten gerade die Hand gewinnt, können wir die Hand trumpfen, also sollten wir unsere niedrigste Karte verwenden, hier die 9H
In: [QD][KD][TD]
, "D"
,[AD][JH][QH][9D]
Aus: 9D
Grund: Da Diamanten Trumpf sind und wir gerade die Hand gewinnen, sollten wir die 9D spielen, weil unser Partner gerade die Hand gewinnt, also wollen wir die 9D
über die spielenAD
In: [QH][KH][JH]
, "D"
,[AD][JD][QH][9D]
Aus: QH
Grund: Da Diamanten Trumpf sind, gewinnen unsere Gegner mit der linken JH
Laube. Wir haben die rechte Laube, können ihn aber nicht trumpfen, weil QH geführt wurde und wir dem Beispiel folgen müssenQH
In: [QH][KH][JH]
, "D"
,[AD][JD][QC][9D]
Aus: JD
Grund: Da Diamanten Trumpf sind, gewinnen unsere Gegner mit der linken JH
Laube. Wir haben die rechte Laube und da wir keine Diamonds
haben, können wir mit der über ihn trumpfenJD
Stärken der Euchre-Karte
Wenn Herzen Trumpf sind:
JH
JD
AH
KH
QH
TH
9H
Lesen Sie die Euchre-Regeln, wenn Sie mit der Stärke der verschiedenen Karten in Euchre nicht vertraut sind
Da dies Code-Golf ist, gewinnt der kürzeste Code!
Viel Glück und hab Spaß!
quelle
9D
als Ergebnis hat Herzen als Trumpf gesetzt (obwohl ich glaube, dass es dieses Ergebnis nicht beeinflusst).Antworten:
Perl -
557 532 511 490 482 384363Wie es funktioniert
Probieren Sie es online!
Zuerst liest es args und findet den Anzug des linken Bauers (Jack der gleichen Farbe wie Trump) mit einem Hash-Lookup:
Dann werden alle Karten zu einer Zeichenfolge zusammengefasst und ersetzt, sodass die Karten natürlich in der richtigen Reihenfolge für euchre sortiert werden:
Am Ende dieses Blocks wird der Kartenstring in die Klammern geteilt, wodurch ein Array aller Karten erstellt wird, bei denen:
Index 0 = Führerkarte des Gegners
Index 1 = Teamkameradenkarte
Index 2 = Karte des anderen Gegners
Indizes 3-6 repräsentieren die Hand
Die Hauptfarbe wird von der ersten Karte an analysiert, aber die Farbe ändert sich zu '0', um Trumpf darzustellen, wenn Trumpf geführt wurde:
Die beste Karte im Spiel wird gefunden, indem die ersten drei Karten sortiert und die erste Karte abgerufen werden:
Die spielbaren Karten werden gefunden. Wenn Karten auf der Hand mit der Hauptfarbe übereinstimmen, bleiben nur diese Karten übrig. Ansonsten gelten alle Karten als spielbar:
Die Wegwerfkarte wird gefunden, indem die letzte Karte in der sortierten Reihe spielbarer Karten zurückgegeben wird:
Die niedrigste 'gewinnende' Karte, die den Stich gewinnen kann, wird gefunden, indem die höchste im Spiel befindliche Karte zum Array spielbarer Karten hinzugefügt, das Array sortiert und wiederholt wird, bis die höchste im Spiel befindliche Karte gefunden wird. Die 'gewinnende' Karte ist die Karte aus der vorherigen Iteration:
Das richtige Spiel wird dann ausgewertet. Die Wegwerfkarte wird gewählt, wenn eine der folgenden Bedingungen erfüllt ist:
Andernfalls wird die 'gewinnende' Karte zurückgegeben:
quelle