Вы были выбраны для создания программы, которая создает несколько симпатичных гистограмм ASCII . Вот формат ввода:
[List of words (they can have spaces)] [an integer >= 0]
Bar 3
This is so cool 4
IDK-Why 6
Входные данные будут иметь несколько строк в этом формате, каждая из которых представляет один столбец на графике. Выходной формат графика будет таким:
_ _ _ _
|_|_|_|_|
| | | |
| | | + [name of 4th bar]
| | + [name of 3rd bar]
| + [name of 2nd bar]
+ [name of 1st bar]
Вот некоторые примеры:
In:
Cool 4
Kool 6
Out:
_
| |
_| |
| | |
| | |
| | |
|_|_|
| |
| + Kool
+ Cool
In:
Graph 5
Bar 3
Out:
_
| |
| |_
| | |
| | |
|_|_|
| |
| + Bar
+ Graph
In:
Very 4
Large 5
Bar 3
Graph 5
Out:
_ _
_| | | |
| | |_| |
| | | | |
| | | | |
|_|_|_|_|
| | | |
| | | + Graph
| | + Bar
| + Large
+ Very
In:
Bars can be 0 0
Large-bars_are$nice2 6
average)(@#$ 3
neato 5
Out:
_
| | _
| | | |
| |_| |
| | | |
| | | |
_|_|_|_|
| | | |
| | | + neato
| | + average)(@#$
| + Large-bars_are$nice2
+ Bars can be 0
Функции или полные программы разрешены.
Ответы:
sh + awk + tac, 173
В основном это
awk
скрипт, который печатает график снизу вверх, который затем переворачиваетсяtac
.Описание
awk, первая часть, выполняется для каждой строки ввода
Выход
awk, вторая часть, исполняется один раз в конце
ungolfed:
Выход
TAC переворачивает линии
источник
JavaScript (ES6), 270
262 270 287Исправление ошибки добавило отсутствующую строку '|' под решеткой
Тест Тест в Firefox, так как Chrome не поддерживает назначение ES6 Destructuring
источник
i.match(/.+ |./g)
. Возможно, это могло бы быть полезным?destructuring assignment
: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… . Попробуйте лучший браузер, как Firefox421 байт - Python 2
тесты
источник
a 0 b 3
) и нисходящих баров (напримерa 5 b 3 c 0
). Моя версия Python - Python 2.7.10.Java, 613 для функции печати
Может быть возможно сэкономить несколько байтов с помощью «обычных» преобразований
for(i=0;i<n;i++)
вfor(;i++<n;)
, упрощения троичных условных выражений или с помощью более элегантных вычислений «меток» и «высот», но это только начало.источник
Haskell, 323 байта
Пример использования:
Как это работает (приблизительный обзор, подробности могут быть позже):
Парсинг (
(p,q)<-unlines...
) занимает много байтов, может быть, я смогу сделать это дальше.источник
Python 2, 345 байт
источник