Der erste Zaubertrick, den ich als Kind gelernt habe, war der folgende:
- Haben Sie 1 Kartenspiel, bei dem das Muster auf der Rückseite nicht vertikal symmetrisch ist.
- Ordne alle Karten so an, dass sie in eine Richtung zeigen.
- Bitten Sie eine Person, "eine Karte auszuwählen, sie auswendig zu lernen und sie Ihnen zurückzugeben".
- Legen Sie es in die falsche Richtung auf das Deck.
- Mische kräftig und gib die Illusion, dass du nicht weißt, wo ihre Karte ist.
- Legen Sie zu ihrem Erstaunen die Karte vor.
Dieser Trick ist in der Natur heutzutage offensichtlich ein bisschen mangelhaft, aber er ist eine gute Herausforderung. Schreiben Sie ein Programm, das, wenn keine Eingabe erfolgt, ein zufällig gemischtes Kartenspiel ausgibt, wobei eine der zufällig ausgewählten Karten umgekehrt wird. Wenn es sich bei der Eingabe jedoch um ein Kartenspiel mit einer umgekehrten Karte handelt, müssen Sie die umgekehrte Karte ausgeben (in der richtigen Reihenfolge).
Das Kartenspiel
Ein Kartenspiel ist definiert als:
[2S,3S,4S,5S,6S,7S,8S,9S,TS,JS,QS,KS,AS,
2D,3D,4D,5D,6D,7D,8D,9D,TD,JD,QD,KD,AD,
2H,3H,4H,5H,6H,7H,8H,9H,TH,JH,QH,KH,AH,
2C,3C,4C,5C,6C,7C,8C,9C,TC,JC,QC,KC,AC]
Eine Karte ist definiert als ihre Nummer, dann der erste Buchstabe ihrer Farbe. Die Rückseite einer Karte ist das genaue Gegenteil, der erste Buchstabe der Farbe, gefolgt von einer Zahl.
Die gezogene Karte
Beispiel: Wenn die Karte, die wir zufällig umgedreht haben, die war 4 of Clubs (4C)
, würden wir am Ende (natürlich ohne zu mischen):
[2S,3S,4S,5S,6S,7S,8S,9S,TS,JS,QS,KS,AS,
2D,3D,4D,5D,6D,7D,8D,9D,TD,JD,QD,KD,AD,
2H,3H,4H,5H,6H,7H,8H,9H,TH,JH,QH,KH,AH,
2C,3C,C4,5C,6C,7C,8C,9C,TC,JC,QC,KC,AC]
Das Mischen
Dann nach dem Mischen:
[2H,2C,6S,4D,QH,6C,TD,8C,7H,5H,C4,3D,7S,7C,KC,QD,QC,JS,7D,6D,2S,5C,KD,3C,3S,2D,8H,KH,6H,AH,8S,JH,TS,AD,5D,9H,4H,JD,QS,4S,JC,3H,8D,TC,AS,TH,KS,AC,9C,9S,5S,9D]
Dies ist eine gültige Ausgabe bei leerer Eingabe.
Der Deck-Eingang
Wenn jedoch umgekehrt unser Programm die obige Ausgabe als Eingabe empfängt, sollte sie ausgegeben werden 4C
. Das heißt für eine Eingabe von:
[2H,2C,6S,4D,QH,6C,TD,8C,7H,5H,C4,3D,7S,7C,KC,QD,QC,JS,7D,6D,2S,5C,KD,3C,3S,2D,8H,KH,6H,AH,8S,JH,TS,AD,5D,9H,4H,JD,QS,4S,JC,3H,8D,TC,AS,TH,KS,AC,9C,9S,5S,9D]
Sie iterieren, bis Sie die umgedrehte Karte gefunden haben, und kehren sie in den Normalzustand zurück. Hier finden wir also C4
, dass C keine Zahl ist, und geben sie als zurück 4C
, was korrekt ist.
Regeln
- Sie dürfen das Deck nicht von externen Quellen laden.
- Eine leere Eingabe sollte zu einem zufällig gemischten Deck mit 1 umgedrehten zufälligen Karte führen.
- Ein Kartenspiel, bei dem 1 Karte als Eingabe umgekehrt ist, sollte die umgekehrte Karte ergeben.
- Alle anderen Eingaben können dazu führen, dass explosive Lamas auf Segways durch eine futuristische Röhre fahren.
- Oder irgendetwas anderes.
- Sowohl die gewählte Karte als auch die Mischreihenfolge müssen einheitlich zufällig sein.
- IE alle Karten haben die gleiche Chance, ausgewählt zu werden, umgedreht zu werden.
- IE haben alle Kartenkombinationen die gleiche Chance zu erscheinen.
- Sie können
SHCD
odershcd
für die Anzüge verwenden, aber konsistent sein:- Wenn Sie Anzüge in Großbuchstaben (
SHCD
) auswählen, müssen Sie auch verwendenTJQKA
. - Wenn Sie Anzüge in Kleinbuchstaben (
shcd
) auswählen, müssen Sie auch verwendentjqka
.
- Wenn Sie Anzüge in Großbuchstaben (
- Dies ist Code-Golf , der Gewinner hat die niedrigsten Bytes.