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ć
SHCDlubshcddo 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.