Considere estes 15 padrões de cartas de baralho ASCII (ás ao Joker e verso), onde X
é um espaço reservado para o símbolo do naipe : (eles ficam melhores com menos espaçamento entre linhas)
------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- -------------
|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| |* * * * * * *|
------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- -------------
Escreva um programa que utilize uma sequência que denote uma sequência de cartões separada por espaço usando ...
A 2 3 4 5 6 7 8 9 10 J Q K
seguido de um dosC D H S
(para tacos, diamantes, copas e espadas) dos 52 cartões padrão.- Um single
R
para um Coringa. - Um single
B
para o verso (um cartão com a face para baixo).
Portanto, a corda B AS KH 10C R JD
denota uma carta virada para baixo, seguida por um ás de espadas, seguida por um rei de copas, seguido por um dez de paus, seguido por um Coringa, seguido por um valete de diamantes.
Seu programa precisa imprimir as cartas de baralho ASCII correspondentes em stdout, substituindo X
pelo símbolo do naipe apropriado.
Por exemplo, a saída para B AS KH 10C R JD
seria
------------- ------------- ------------- ------------- ------------- -------------
|* * * * * * *| |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|
------------- ------------- ------------- ------------- ------------- -------------
Você pode pegar a entrada do stdin ou escrever uma função que aceita uma string.
A submissão com o menor número de caracteres vence.
Bônus: subtraia 30 da sua contagem de caracteres se você usar os símbolos pretos de naipe Unicode em♣ ♦ ♥ ♠
vez de C D H S
em sua saída. (A entrada sempre usa C D H S
.)
Notas
- Pode haver mais de 54 cartões na sequência de entrada e pode haver duplicatas de qualquer cartão.
- Não deve haver saída se a entrada for a sequência vazia.
- Não deve haver espaços à direita além dos (opcionalmente) os dois que compõem os cantos direitos da última carta.
- Você pode assumir que a entrada é válida.
- Atualização: a etiqueta inferior direita nos cartões padrão foi revertida para que o valor esteja no canto. O rótulo Joker no canto inferior direito não mudou.