Il primo trucco con le carte magiche che abbia mai imparato da bambino era il seguente:
- Avere 1 mazzo di carte in cui il modello sul retro non è simmetrico verticalmente.
- Organizza tutte le carte in modo che siano rivolte in una direzione.
- Chiedi a un individuo di "scegliere una carta, una carta qualsiasi, memorizzarla e restituirla a te".
- Procedere a metterlo nel mazzo (nella direzione sbagliata).
- Mischia energicamente, dando l'illusione di non sapere dove sia la loro carta.
- Produci la loro carta con stupore.
Questo trucco è ovviamente un po 'di lucentezza in natura oggi, ma costituisce una buona sfida. Scrivi un programma che, quando non viene fornito alcun input, genera un mazzo di carte mischiato casualmente con una delle carte, scelta a caso, invertita. Tuttavia, quando l'ingresso è un mazzo di carte con una carta invertita, è necessario produrre la carta invertita (nell'ordine corretto).
Il mazzo di carte
Un mazzo di carte è definito come:
[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]
Una carta è definita come il suo numero, quindi la prima lettera del suo seme. Il rovescio di una carta è esattamente l'opposto, la prima lettera del suo seme seguita da un numero.
La carta disegnata
Esempio, se la carta che abbiamo scelto casualmente di invertire fosse la 4 of Clubs (4C)
, finiremmo con (senza mescolare, ovviamente):
[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]
The Shuffling
Quindi, dopo aver mescolato:
[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]
Questo è un output valido dato input vuoto.
The Deck Input
Tuttavia, al contrario, quando il nostro programma riceve l'output di cui sopra come input, dovrebbe essere generato 4C
. Vale a dire, per un input di:
[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]
Passi fino a trovare la carta invertita e la restituisci, ripristinata allo stato normale. Quindi qui troveremmo C4
, sappiamo che C non è un numero e lo restituire come 4C
, che è corretto.
Regole
- Non è possibile caricare il deck da fonti esterne.
- Un input vuoto dovrebbe risultare in un mazzo mischiato casualmente con 1 carta casuale invertita.
- Un mazzo di carte con 1 carta invertita come input dovrebbe provocare la carta invertita.
- Qualsiasi altro input può provocare lama esplosive che guidano in segway attraverso un tubo futuristico.
- O qualsiasi altra cosa, del resto.
- Sia la carta scelta che l'ordine di mescolamento devono essere uniformemente casuali.
- Vale a dire che tutte le carte hanno le stesse probabilità di essere selezionate per essere invertite.
- Vale a dire che tutte le combinazioni di carte hanno le stesse probabilità di apparire.
- Puoi usare
SHCD
oshcd
per i semi, ma sii coerente:- Se scegli semi maiuscoli (
SHCD
) devi anche usareTJQKA
. - Se scegli semi minuscoli (
shcd
) devi anche usaretjqka
.
- Se scegli semi maiuscoli (
- Questo è code-golf , il vincitore è il byte più basso.