Рассмотрим эти 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 карточек, и может быть дубликаты любой карточки.
- Не должно быть никакого вывода, если входные данные являются пустой строкой.
- Не должно быть никаких пробелов, кроме (необязательно) двух, которые составляют правые углы последней карты.
- Вы можете предположить, что ввод действителен.
- Обновление: нижняя правая метка на стандартных карточках была перевернута, поэтому значение находится в углу. Нижний правый ярлык Джокера не изменился.