Ein Bildhauer hat die Aufgabe, Eiszapfen-Skulpturen für das neue Museum in Grönland zu schaffen. Er hat von seinem Chef Spezifikationen erhalten, die aus zwei Zahlen bestehen: [s, m] oder Größe und Schmelze. Größe muss eine ungerade Zahl sein. Er bekam ein paar Fotos von echten Eiszapfen:
vvvvv [5, 0]
vvv
v
vvvvvvv [7, 0]
vvvvv
vvv
v
vvvvvvv [7, 2]
vvvvv
vvvvvvv [7, 3]
vvv [3, 1]
Er braucht ein Programm zum Zeichnen. Beliebige Sprache erlaubt. Das Programm muss S und M einschließen, wobei jede Eingabemethode akzeptabel ist. Sie müssen dann eine ASCII-Kunstdarstellung davon ausdrucken.
S ist, wie viele v
s auf der ersten Schicht sind. M ist, wie viele Schichten von unten ausgeschnitten werden.
Dies ist Codegolf , daher basiert dieser Wettbewerb wie üblich auf Bytes . Leerzeichen zählen für die Bytezählung. Wenigste Bytes gewinnt.
Bearbeiten: Sie erhalten nie eine Reihe von Zahlen, die nichts zeichnen, zum Beispiel [5, 3]. Ein Prüfcode ist jedoch nicht erforderlich.
Antworten:
05AB1E , 11 Bytes
Probieren Sie es online!
quelle
V , 15 Bytes
Probieren Sie es online!
Ziemliech direkt.
quelle
05AB1E , 12 Bytes
Code:
Erläuterung:
Verwendet die CP-1252- Codierung. Probieren Sie es online!
quelle
;-Ý·¹+'v×.c
würde ein Byte speichernMATL , 22 Bytes
Probieren Sie es online!
Erläuterung
quelle
Jelly , 19 Bytes
TryItOnline!
Wie?
quelle
J’
(Bereich der Länge verringert) würde auch den gleichen Effekt haben, aber es gibt keine abgesenkte Version vonJ
, und dasLḶ
ist irgendwie süß :)Batch, 142 Bytes
quelle
Ruby,
4644 Bytes2 Bytes gespart dank GB
quelle
puts
braucht kein Leerzeichen?v*(s-2*i)
verwenden?v*s;s-=2
Python,
7673 BytesBearbeiten: 3 Bytes dank @TuukkaX und @ Challenger5 gespeichert (Danke!)
quelle
print
gibt es ein nutzloses Leerzeichen :)lambda s,m:"\n".join([' '*(s/2-i/2)+'V'*i for i in range(s,m*2,-2)])
def f(s,m):
und so zwei Bytes sparen.def f()
7lambda
ist 7. Mit Challenger5s Tipp ist def tatsächlich kürzer. Zumindest, wenn du das soprint
, es ist also 4 Zeichen kürzer (lambda s,m:"\n".join(...)
), da es imlambda
Grunde genommen eine implizite Rückgabe gibt.JavaScript (ES6), 57 Byte
Gibt eine nachgestellte Newline aus. Wenn eine führende Zeile akzeptabel ist, dann für 54 Bytes:
quelle
Python 2, 63 Bytes
quelle
Turtlèd , 53 Bytes
Probieren Sie es online!
Erläuterung:
quelle
Java,
138137 BytesUngolfed:
Update: Ein Byte und ein Loop-Body sind dank @ClaytonRamsey verschwunden.
quelle
C 83 Bytes
Ungolfed und Nutzung:
quelle
Pyth, 21 Bytes
Ein Programm, das die Eingabe von
S
gefolgt vonM
, durch Zeilenumbrüche getrennt, annimmt und das Ergebnis druckt.Testsuite
Wie es funktioniert
quelle