Рассмотрим эти 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 карточек, и может быть дубликаты любой карточки.
- Не должно быть никакого вывода, если входные данные являются пустой строкой.
- Не должно быть никаких пробелов, кроме (необязательно) двух, которые составляют правые углы последней карты.
- Вы можете предположить, что ввод действителен.
- Обновление: нижняя правая метка на стандартных карточках была перевернута, поэтому значение находится в углу. Нижний правый ярлык Джокера не изменился.
источник
Ответы:
JavaScript (E6) 542 (572 - бонус 30)
553 564 5763 вида фигур:
z
Строка (сжатый) содержит основные строительные блоки дляПримечание к бонусу Код для выигрыша бонуса в 30 баллов составляет 29 символов.
Тест в консоли FireFox / FireBug
Выход
Не гольф-код
источник
C # - 906
Довольно большая и простая программа на C #, которая принимает ввод из командной строки и выводит на стандартный вывод. Вероятно, многое еще можно сыграть в гольф, я заметил несколько скучных байтов, когда писал это, но это подождет. Я не думаю, что я собираюсь получить бонус персонажа в костюме Unicode.
Гольф-код:
Пример вывода для
cardGolf.exe 7H QH 3S B R
Большая часть рендеринга выполняется
P
анонимным методом, который принимает позицию, длину, строку и ширину и визуализирует прямоугольник конца строки в конец. Например, оборотная сторона карты просто"* "
повторяется.T
Анонимный метод представляет собой модифицированный вариант я использовал для предыдущей задачи, что делает много прямоугольников. Это, однако, довольно громоздко, и позволит мне отображать границы и фон только в меньшем количестве байтов, что, вероятно, не стоит. Полосатая вниз версияT
IS ,W
которая делает клетки , а не прямоугольники, а также не используется, но встраиваемая версия она используется для отображения карты значения 2 до 10. Следует отметить , что неиспользованный код был удаленный для подсчета байтов, я оставляю это, потому что я могу в конечном итоге использовать это, и я действительно использую их для тестирования.Программа просто просматривает каждую строку вывода (13 из них), а затем рендерит каждую карту по очереди, а затем извлекает из нее 1 срез, так что каждая карта отображается полностью 13 раз. В целях их разнесения каждая карта рассматривается как блок 16 на 13, и я обрезаю каждую строку выходных данных, чтобы удалить конечные пробелы (угловые пробелы удалены).
Отформатированный код с комментариями и концепцией / кодом тестирования:
источник
PowerShell , оценка 442 = (
509495472 байта = (156 сценариев + 316 архивов) - 30 бонусов)Попробуйте онлайн!
раскатали:
Скрипт Powershell для создания архива tar
t
(см. TIO):источник