Sie wurden ausgewählt, um ein Programm zu erstellen, das einige hübsche ASCII- Balkendiagramme erstellt . Hier ist das Eingabeformat:
[List of words (they can have spaces)] [an integer >= 0]
Bar 3
This is so cool 4
IDK-Why 6
Die Eingabe enthält in diesem Format mehrere Zeilen, von denen jede einen Balken im Diagramm darstellt. Das Ausgabeformat eines Diagramms sieht folgendermaßen aus:
_ _ _ _
|_|_|_|_|
| | | |
| | | + [name of 4th bar]
| | + [name of 3rd bar]
| + [name of 2nd bar]
+ [name of 1st bar]
Hier sind einige Beispiele:
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
Funktionen oder Vollprogramme sind erlaubt.
Antworten:
sh + awk + tac, 173
Meistens ein
awk
Skript, das das Diagramm von unten nach oben druckt und dann umkehrttac
.Beschreibung
awk, erster Teil, wird für jede Eingabezeile ausgeführt
Ausgabe
awk, zweiter Teil, am Ende einmal ausgeführt
ungolfed:
Ausgabe
tac kehrt die Zeilen um
quelle
JavaScript (ES6), 270
262 270 287Fehlerbehebung fügte eine fehlende Zeile '|' unter den Gittern
Test Test in Firefox, da Chrome die ES6- Destructuring-Zuweisung nicht unterstützt
quelle
i.match(/.+ |./g)
. Vielleicht könnte das von Nutzen sein?destructuring assignment
: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… . Versuchen Sie einen besseren Browser wie Firefox421 Bytes - Python 2
Tests
quelle
a 0 b 3
) und absteigende Balken (zBa 5 b 3 c 0
). Meine Python-Version ist Python 2.7.10.Java, 613 für die Druckfunktion
Es mag möglich sein, einige Bytes durch die "üblichen" Transformationen von
for(i=0;i<n;i++)
tofor(;i++<n;)
, Vereinfachung der ternären Bedingungen, oder durch elegantere Berechnungen der "Bezeichnungen" und "Höhen" einzusparen , aber es ist ein Anfang.quelle
Haskell, 323 Bytes
Anwendungsbeispiel:
Wie es funktioniert (grobe Übersicht, Details vielleicht später):
Der Parsing-Teil (
(p,q)<-unlines...
) nimmt eine Menge Bytes in Anspruch, vielleicht kann ich weiter unten Golf spielen.quelle
Python 2, 345 Bytes
quelle