Ha sido elegido para hacer un programa que cree algunos gráficos de barras ASCII bonitos . Aquí está el formato de entrada:
[List of words (they can have spaces)] [an integer >= 0]
Bar 3
This is so cool 4
IDK-Why 6
La entrada tendrá múltiples líneas en este formato, cada una representando una barra en el gráfico. El formato de salida de un gráfico será así:
_ _ _ _
|_|_|_|_|
| | | |
| | | + [name of 4th bar]
| | + [name of 3rd bar]
| + [name of 2nd bar]
+ [name of 1st bar]
Aquí hay unos ejemplos:
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
Se permiten funciones o programas completos.
Respuestas:
sh + awk + tac, 173
Principalmente un
awk
script que imprime el gráfico de abajo hacia arriba, que luego se inviertetac
.Descripción
awk, primera parte, ejecutada para cada línea de entrada
Salida
awk, segunda parte, ejecutada una vez al final
sin golf:
Salida
tac invierte las líneas
fuente
JavaScript (ES6),
270226270287La corrección de errores agregó una fila faltante de '|' debajo de los barrotes
Prueba Prueba en Firefox, ya que Chrome no admite la asignación de Desestructuración ES6
fuente
i.match(/.+ |./g)
. Quizás eso podría ser de utilidad?destructuring assignment
: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… . Pruebe un navegador mejor como Firefox421 bytes - Python 2
Pruebas
fuente
a 0 b 3
) y barras descendentes (por ejemploa 5 b 3 c 0
). Mi versión de Python es Python 2.7.10.Java, 613 para la función de impresión
Puede ser posible guardar algunos bytes mediante las transformaciones "habituales" de
for(i=0;i<n;i++)
afor(;i++<n;)
, simplificando los condicionales ternarios, o con cálculos más elegantes de las "etiquetas" y "alturas", pero es un comienzo.fuente
Haskell, 323 bytes
Ejemplo de uso:
Cómo funciona (descripción general, detalles tal vez más adelante):
La parte de análisis (
(p,q)<-unlines...
) toma muchos bytes, tal vez pueda jugar golf más abajo.fuente
Python 2, 345 bytes
fuente