Lieben Sie es, coole Zeitraffer von Konstruktionen oder andere massive Arbeiten in Minuten zu sehen? Machen wir hier einen.
Wir werden uns einen Bagger ansehen, der einen Steinbruch gräbt und jeden Tag Bilder macht, um den gesamten Fortschritt zu sehen. Und Ihre Aufgabe ist es, uns diesen Prozess zu zeigen!
Der Steinbruch wird durch die Breite seiner ersten Schicht definiert.
Der Bagger zeichnet sich durch seine Fähigkeit aus, an einem Tag zu graben.
Eingang
Breite des Steinbruchs. Ganzzahl, immer> = 1.
Baggergrabgeschwindigkeit. Ganzzahl, immer> = 1.
Ausgabe
Fortschritt des Grabens an jedem Tag. Begonnen mit flachem unberührtem Boden und beendet mit fertiggestelltem Steinbruch.
Regeln
Am letzten Tag müssen möglicherweise weniger Einheiten gegraben werden, als der Bagger kann. Übermäßige Arbeit wird nirgendwo verwendet, daher sollten Sie nur den vollständig ausgegrabenen Steinbruch ausgeben.
Alle Tagesfortschritte müssen gleichzeitig in der Ausgabe vorhanden sein. Sie können den Fortschritt des vorherigen Tages in der Ausgabe nicht löschen oder überschreiben.
Nachfolgende und führende Zeilenumbrüche für jede Tagesausgabe sind in einer angemessenen Anzahl zulässig.
Dies ist Code-Golf , also machen Sie Ihren Code so kompakt wie möglich.
Klarstellungen
Die Arbeit beginnt mit einem ebenen Boden. Die Länge des angezeigten Bodens ist die Breite des Steinbruchs + 2. Auf beiden Seiten des Steinbruchs befindet sich also immer ein Unterstrich.
__________
Der gegrabene Steinbruch sieht für eine gleichmäßige Breite so aus:
_ _
\ /
\ /
\ /
\/
Und so für ungerade Breite
_ _
\ /
\ /
\ /
V
Hier einige Beispiele für den Fortschritt des Steinbruchs:
_ _______
V dug 1 unit
_ ______
\/ dug 2 units
_ ___
\___/ dug 5 units
_ _
\ __/ dug 10 units
\_/
Beispiel für vollständigen Fortschritt. Steinbruchbreite: 8. Baggergeschwindigkeit: 4 Einheiten pro Tag.
__________
_ _____
\__/
_ _
\______/
_ _
\ __/
\__/
_ _
\ /
\ __/
\/
_ _
\ /
\ /
\ /
\/
Eckkästen
Der Bagger muss am letzten Tag genau seine Fähigkeit (Geschwindigkeit) graben.
Width: 7, Speed: 3
Width: 10, Speed: 4
Retina 0,8,2 ,
163156 BytesProbieren Sie es online aus! Erläuterung:
Konvertieren Sie die Eingaben in unär. Das gibt uns
W¶S
.Vertauschen Sie die Eingaben und duplizieren Sie die Breite. Das gibt uns
S¶W¶W
.Berechnen Sie das Volumen des Steinbruchs. Das gibt uns
S¶W¶V
.Verbinden Sie die Eingaben in einer Zeile. Das gibt uns
S;W;V
.Berechnen Sie den Fortschritt für jeden Tag in einer eigenen Zeile. Jeder Tag hat das Format
S;W;D
, in demD
ist0
in der ersten Zeile und Inkrementen vonS
jedem Tag , bis es erreichtV
.Löschen
S
undW
in jeder Zeile um 2 erhöhen . Das gibt unsG;D
für jeden Tag.Während
D
es ungleich Null ist, graben Sie entwederD
oderG-2
aus der Zeile (so dass das erste und das letzte Zeichen immer übrig bleiben) und verschieben Sie die Tiefe in die nächste Zeile. Jede Zeile wird mit einer mehr>
als der vorherigen eingerückt . Neu gegrabene Linien enthalten auch a<
.Verwandeln Sie den Einzug in Leerzeichen und das Folgende
_
in a\
.Wenn a einem
<
folgt,\
verwandeln Sie es in einV
, wenn es einem folgt,_
verwandeln Sie es in ein/
. Löschen Sie alle<
s und;
s.quelle
Python 2 , 265 Bytes
Probieren Sie es online aus!
quelle
1+i+a
bisi-~a
.sum(range(0,w+1,2))
kann seinw/2*(w/2+1)
t
kann möglicherweise auch inline sein, was zu 257 Bytes führt .JavaScript (Node.js) ,
329315307300301298285275260254 ByteProbieren Sie es online aus!
Erläuterung
quelle
w
es seltsam ist.f=
) nicht zählen und können ein weiteres Byte speichern, indem Sie die Parameter (w=>s=>
) curryen .