El primer truco de cartas mágicas que aprendí de niño fue el siguiente:
- Tenga 1 mazo de cartas donde el patrón en la parte posterior no sea verticalmente simétrico.
- Organice todas las tarjetas para que estén orientadas en una dirección.
- Pídale a un individuo que, "elija una tarjeta, cualquier tarjeta, memorícela y se la devuelva".
- Proceda a colocarlo en la plataforma (en la dirección incorrecta).
- Baraja vigorosamente, dando la ilusión de que no sabrás dónde está su carta.
- Produzca su tarjeta para su asombro.
Este truco es obviamente un poco lustroso en la naturaleza hoy en día, sin embargo, es un buen desafío. Escriba un programa que, cuando no se le da entrada, emite un mazo de cartas barajado aleatoriamente con una de las cartas, elegida al azar, invertida. Sin embargo, cuando la entrada es un mazo de cartas con una carta invertida, debe sacar la carta invertida (en el orden correcto).
El mazo de cartas
Una baraja de cartas se define como:
[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 tarjeta se define como su número, luego la primera letra de su palo. El reverso de una carta es exactamente lo contrario, la primera letra de su palo seguida de un número.
La carta dibujada
Ejemplo, si la carta que elegimos al azar para revertir era la 4 of Clubs (4C)
, terminaríamos con (sin barajar, obviamente):
[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]
La barajadura
Luego, después de barajar:
[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]
Esta es una salida válida dada entrada vacía.
La entrada de cubierta
Sin embargo, a la inversa, cuando nuestro programa recibe la salida anterior como entrada, debería salir 4C
. Es decir, para una entrada de:
[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]
Usted itera hasta encontrar la carta invertida y la devuelve al estado normal. Así que aquí encontraríamos C4
, sabríamos que C no es un número, y lo devolveríamos como 4C
, lo cual es correcto.
Reglas
- No puede cargar la plataforma desde ninguna fuente externa.
- Una entrada vacía debería dar como resultado un mazo aleatorio con 1 carta aleatoria invertida.
- Una baraja de cartas con 1 carta invertida como entrada debería resultar en la carta invertida.
- Cualquier otra entrada puede dar lugar a llamas explosivas que circulan en segways a través de un tubo futurista.
- O cualquier otra cosa, para el caso.
- Tanto la carta elegida como el orden aleatorio deben ser uniformemente aleatorios.
- Es decir, todas las cartas tienen la misma posibilidad de ser seleccionadas para ser revertidas.
- Es decir, todas las combinaciones de cartas tienen la misma posibilidad de aparecer.
- Puedes usar
SHCD
oshcd
para los trajes, pero sea consistente:- Si elige trajes en mayúscula (
SHCD
) también debe usarTJQKA
. - Si elige trajes en minúsculas (
shcd
) también debe usartjqka
.
- Si elige trajes en mayúscula (
- Este es el código de golf , el ganador tiene los bytes más bajos.