Pierwszą sztuczką z magiczną kartą, której nauczyłem się jako dziecko, była:
- Posiadaj 1 talię kart, w której wzór na odwrocie nie jest symetryczny w pionie.
- Ułóż wszystkie karty tak, aby były skierowane w jednym kierunku.
- Poproś osobę, by „wybrała kartę, dowolną kartę, zapamiętaj ją i oddaj tobie”.
- Przejdź do umieszczenia go na pokładzie (w złym kierunku).
- Energicznie tasuj, dając iluzję, że nie będziesz wiedział, gdzie jest ich karta.
- Wykaż swoją kartę ku ich zdumieniu.
Ta sztuczka jest oczywiście nieco pozbawiona blasku w przyrodzie, jednak stanowi spore wyzwanie. Napisz program, który jeśli nie otrzyma danych wejściowych, generuje losowo potasowaną talię kart z jedną z losowo wybranych kart odwróconą. Jednakże, gdy wejściem jest talia kart z odwróconą jedną kartą, musisz wydać odwróconą kartę (we właściwej kolejności).
Talia kart
Talia kart jest zdefiniowana jako:
[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]
Kartę definiuje się jako jej liczbę, a następnie pierwszą literę jej koloru. Odwrotna strona karty jest dokładnie odwrotna, pierwsza litera koloru, po której następuje liczba.
Wyciągnięta karta
Przykład: jeśli karta, którą losowo wybraliśmy do odwrócenia, byłaby taka 4 of Clubs (4C)
, otrzymalibyśmy (bez tasowania, oczywiście):
[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]
Tasowanie
Następnie po przetasowaniu:
[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]
To jest prawidłowy wynik, biorąc pod uwagę puste dane wejściowe.
Wejście na pokład
Jednak odwrotnie, gdy nasz program odbiera powyższe dane wyjściowe jako dane wejściowe, powinien on generować dane wyjściowe 4C
. To znaczy, dla danych wejściowych:
[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]
Powtarzaj, dopóki nie znajdziesz odwróconej karty, i zwróć ją z powrotem do normalnego stanu. Przekonamy się więc C4
, że C nie jest liczbą i zwracamy ją jako 4C
, co jest poprawne.
Zasady
- Nie możesz ładować talii z jakichkolwiek zewnętrznych źródeł.
- Puste wejście powinno spowodować losowo potasowaną talię z odwróconą 1 losową kartą.
- Talia kart z odwróconą 1 kartą jako wejściem powinna skutkować odwróconą kartą.
- Wszelkie inne wkłady mogą spowodować wybuchowe lamy jeżdżące segwayami przez futurystyczną rurkę.
- Lub cokolwiek innego, jeśli o to chodzi.
- Zarówno wybrana karta, jak i kolejność losowania muszą być jednakowo losowe.
- IE wszystkie karty mają równe szanse, że zostaną wybrane do odwrócenia.
- IE wszystkie kombinacje kart mają jednakową szansę pojawienia się.
- Możesz użyć
SHCD
lubshcd
do garniturów, ale zachowaj spójność:- Jeśli wybierzesz wielkie litery (
SHCD
), musisz także użyćTJQKA
. - Jeśli wybierzesz małe litery (
shcd
), musisz także użyćtjqka
.
- Jeśli wybierzesz wielkie litery (
- To jest golf golfowy , zwycięzca ma najmniej bajtów.