Considere estos 15 patrones de naipes ASCII (as a través de Joker y el reverso), donde X
hay 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 K
seguido por uno deC D H S
(para tréboles, diamantes, corazones y espadas) para las 52 cartas estándar.- Un single
R
para un Joker. - Un sencillo
B
para el reverso (una carta boca abajo).
Entonces, la cadena B AS KH 10C R JD
denota 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 X
con el símbolo del palo apropiado.
Por ejemplo, la salida para B AS KH 10C R JD
serí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 S
en 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.