Рассмотрим эти 15 паттернов игральных карт ASCII (туз через джокер и заднюю сторону), где Xесть место для символа масти : (они выглядят лучше с меньшим межстрочным интервалом)
------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- -------------
|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| |* * * * * * *|
------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- -------------
Напишите программу, которая принимает строку, обозначающую последовательность карточек через пробел, используя ...
A 2 3 4 5 6 7 8 9 10 J Q Kзатем один изC D H S(для булав, бубнов, черв и пик) для 52 стандартных карт.- Сингл
Rдля Джокера. - Сингл
Bдля обратной стороны (лицевой стороной вниз).
Таким образом, строка B AS KH 10C R JDобозначает открытую карту, за которой следует туз пик, за которым следует король червей, затем десятка треф, затем джокер, а затем алмазный валет.
Ваша программа должна распечатать соответствующие игральные карты ASCII на стандартный вывод, заменив Xсоответствующий символ масти.
Например, вывод для B AS KH 10C R JDбудет
------------- ------------- ------------- ------------- ------------- -------------
|* * * * * * *| |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|
------------- ------------- ------------- ------------- ------------- -------------
Вы можете взять ввод из stdin или написать функцию, которая принимает строку.
Представление с кратчайшим количеством символов выигрывает.
Бонус: вычтите 30 из числа ваших персонажей, если вы используете черные символы масти Юникод ♣ ♦ ♥ ♠ вместо C D H Sсвоих выходных. (Ввод всегда используется C D H S.)
Примечания
- Во входной строке может быть более 54 карточек, и может быть дубликаты любой карточки.
- Не должно быть никакого вывода, если входные данные являются пустой строкой.
- Не должно быть никаких пробелов, кроме (необязательно) двух, которые составляют правые углы последней карты.
- Вы можете предположить, что ввод действителен.
- Обновление: нижняя правая метка на стандартных карточках была перевернута, поэтому значение находится в углу. Нижний правый ярлык Джокера не изменился.