Considere estos 15 patrones de naipes ASCII (as a través de Joker y el reverso), donde Xhay un marcador de posición para el símbolo del palo : (se ven mejor con menos espacio entre líneas)
------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- -------------
|AX | |2X | |3X | |4X | |5X | |6X | |7X | |8X | |9X | |10X | |JX | |QX | |KX | |J | |* * * * * * *|
| ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | |O ------- | | * * * * * * |
| | | | | | | | | | | | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | |X | | | |X | | | |X | | |K | | | |* * * * * * *|
| | | | | | X | | | | X | | | | | | | | | | | | | | | | X | | | | X | | | | | | | | X | | | | | | | | | | | | | | |E | J | | | * * * * * * |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |X X| | | |X X| | | | | | | | | | | | | | |R | O | | |* * * * * * *|
| | X | | | | | | | | X | | | | | | | | X | | | |X X| | | |X X| | | |X X| | | | X | | | | | | | | J | | | | Q | | | | K | | | | K | | | * * * * * * |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |X X| | | |X X| | | | | | | | | | | | | | | | E | J| |* * * * * * *|
| | | | | | X | | | | X | | | | | | | | | | | | | | | | | | | | X | | | | | | | | X | | | | | | | | | | | | | | | | R | O| | * * * * * * |
| | | | | | | | | | | | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | | X| | | | X| | | | X| | | | | K| |* * * * * * *|
| ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- E| | * * * * * * |
| XA| | X2| | X3| | X4| | X5| | X6| | X7| | X8| | X9| | X10| | XJ| | XQ| | XK| | R| |* * * * * * *|
------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- -------------
Escriba un programa que tome una cadena que denote una secuencia de tarjetas separadas por espacios usando ...
A 2 3 4 5 6 7 8 9 10 J Q Kseguido por uno deC D H S(para tréboles, diamantes, corazones y espadas) para las 52 cartas estándar.- Un single
Rpara un Joker. - Un sencillo
Bpara el reverso (una carta boca abajo).
Entonces, la cadena B AS KH 10C R JDdenota una carta boca abajo, seguida de un as de espadas, seguido de un rey de corazones, seguido de diez clubes, seguido de un Joker, seguido de una jota de diamantes.
Su programa necesita imprimir las cartas de juego ASCII correspondientes en stdout, reemplazando Xcon el símbolo del palo apropiado.
Por ejemplo, la salida para B AS KH 10C R JDsería
------------- ------------- ------------- ------------- ------------- -------------
|* * * * * * *| |AS | |KH | |10C | |J | |JD |
| * * * * * * | | ------- | | ------- | | ------- | |O ------- | | ------- |
|* * * * * * *| | | | | | |H | | | |C C| | |K | | | | |D | |
| * * * * * * | | | | | | | | | | | C | | |E | J | | | | | |
|* * * * * * *| | | | | | | | | | |C C| | |R | O | | | | | |
| * * * * * * | | | S | | | | K | | | | | | | | K | | | | J | |
|* * * * * * *| | | | | | | | | | |C C| | | | E | J| | | | |
| * * * * * * | | | | | | | | | | | C | | | | R | O| | | | |
|* * * * * * *| | | | | | | H| | | |C C| | | | | K| | | D| |
| * * * * * * | | ------- | | ------- | | ------- | | ------- E| | ------- |
|* * * * * * *| | SA| | HK| | C10| | R| | DJ|
------------- ------------- ------------- ------------- ------------- -------------
Puede tomar la entrada de stdin o escribir una función que tome una cadena.
La presentación con el menor número de caracteres gana.
Bonificación: resta 30 de tu recuento de personajes si usas los símbolos de traje negro Unicode en♣ ♦ ♥ ♠ lugar de C D H Sen tu salida. (La entrada siempre usa C D H S).
Notas
- Puede haber más de 54 tarjetas en la cadena de entrada y puede haber duplicados de cualquier tarjeta.
- No debería haber salida si la entrada es la cadena vacía.
- No debe haber espacios finales además de (opcionalmente) los dos que forman las esquinas derechas de la última carta.
- Puede suponer que la entrada es válida.
- Actualización: la etiqueta inferior derecha de las tarjetas estándar se ha invertido, por lo que el valor está en la esquina. La etiqueta Joker inferior derecha no ha cambiado.