Ihre heutige Mission ist es, einen Wirbel mit einem einzigen Parameter zu erzeugen.
Dieser Parameter bestimmt die Länge jedes Arms in Zeichen.
Jede "Schicht" jedes Arms enthält ein Zeichen mehr als die letzte.
So sieht der Wirbel bei gegebener Armlänge aus:
0:
#
1:
#
###
#
2:
#
# #
###
# #
#
3:
## #
# #
###
# #
# ##
4:
# #
## #
# #
###
# #
# ##
# #
10:
#
#
#
#
#
#### #
### #
## #
# #
###
# #
# ##
# ###
# ####
#
#
#
#
#
Es gelten Standardlücken, nachfolgendes Leerzeichen optional. Jedes einzelne Nicht-Leerzeichen in ASCII kann "#" ersetzen.
Dies ist Code-Golf, also gewinnt die kürzeste Antwort in Bytes.
Antworten:
MATL , 60 Bytes
Probieren Sie es online aus! Oder überprüfen Sie die Testfälle: 0 , 1 , 2 , 3 , 4 , 10 .
Es stellte sich heraus, dass dies lustiger war als ich erwartet hatte. Erklären wird allerdings schwieriger ...
quelle
Gelee , 48 Bytes
Probieren Sie es online aus!
(Macht es mehr Platz , der von den endgültigen Ersetzen
Y
mitG
, um einen Raum zwischen jeder Spalte hinzuzufügen).Wie?
Erstellt eine Liste der
#
Koordinaten eines Arms relativ zur Mitte. Transformiert dies in die Koordinaten der vier Arme von der oberen linken Ecke und fügt die Mittelkoordinate hinzu. Erstellt eine Tabelle mit allen Koordinaten im Raum und setzt die Arme#
und den Raum aufund verbindet die Zeilen mit Zeilenumbrüchen.
quelle
Mathematica
139172 BytesDie Idee ist, einen einzelnen Arm mit einer Funktion zu erstellen
{⌊.5+.5(-7+8#)^.5⌋,#-1}
, die den Index jedes Elements des Arms ausspuckt, vorausgesetzt, das mittlere Element hat den Index (0,0). Das hat noch niemand aufgegriffen, aber ich vermute, dass diese Idee zu einer gewinnbringenden Antwort in einer besseren Golfsprache führen würde. Dann drehe ich den Arm um ein Vielfaches von 90 Grad, indiziere neu und konstruiere die Matrix.SparseArray
schien die offensichtliche Wahl für die Konstruktion der Matrix zu sein, hätte aber mitBoxMatrix
und gehen könnenReplacePart
.Ungolfed (hart codiert für Armlänge = 3,
%
bedeutet vorherige Ausgabe):Verwendung% @ 4
Wie ich erfahren habe, muss die Ausgabe reines ASCII ohne zusätzlichen Abstand oder Formatierung sein, der Code muss etwas länger werden (172 Bytes):
quelle
Holzkohle , 30 Bytes
Erläuterung
Probieren Sie es online aus!
quelle
Trim
scheint Golfspieler zu funktionieren:NθFθ⁺¶#×#ιJ⁰¦⁰Tθ⁺¹θ#⟲O↖²⁴⁶
(⁺¹
ist eine Problemumgehung, weilT⁰¦⁰
sie aus irgendeinem Grund nicht funktioniert und⊕
damals nicht existierte.)