Erstellen Sie eine Funktion, die bei einer bestimmten Anzahl von Zeilen n
a bigA
.
- Die horizontale Leiste von
bigA
muss sich in der mittleren Reihe befinden, oder die untere der beiden, wenn sie geraden
ist - Nehmen Sie eine Monospace-Schriftart für die Ausgabe an
Die Ausgabe sollte aus einer Zeichenfolge (oder einer ähnlichen Zeichenfolge, z. B. einem Zeichenarray) mit klaren Zeilenumbrüchen zum Aufbrechen der Zeilen und einem korrekten Leerzeichen für das Auffüllen nach links bestehen (Sie können davon ausgehen, dass es sich bei \ t um 4 Leerzeichen handelt). Auf der rechten Seite kann ein Leerzeichen stehen.
Beispiele
n = 1
A
n = 2
A
AAA
n = 3
A
AAA
A A
n = 4
A
A A
AAAAA
A A
n = 5
A
A A
AAAAA
A A
A A
Dies ist inspiriert durch Erstellen eines "H" aus kleineren "H"
Antworten:
05AB1E , 13 Bytes
Code:
Verwendet die 05AB1E- Codierung. Probieren Sie es online!
Erläuterung:
Segeltuch
Ich sollte die Zeichenfläche wahrscheinlich ein bisschen mehr dokumentieren (und viele andere Funktionen), aber das fasst es im Grunde zusammen. Die Zeichenfläche verfügt über verschiedene "Modi", die auf den angegebenen Parametertypen basieren. Der Canvas-Befehl verfügt über drei Parameter: <Länge> <Zeichenfolge> <Richtung> .
Da es sich bei den Längen- und Richtungsparametern um Listen handelt, werden diese Listen komprimiert, um einen Satz auszuführender Anweisungen zu erstellen. Der string-Parameter ist nur der Buchstabe A , dies ist also das Füllzeichen, das von allen Anweisungen verwendet wird. Die Zeichenfläche interpretiert dies als folgenden Befehlssatz (für Eingabe 7):
Die Anweisungen werden folgendermaßen übersetzt:
Wenn nichts ausgegeben wurde, gibt 05AB1E das Canvas-Ergebnis automatisch aus.
quelle
Charcoal ,
1715 BytesProbieren Sie es online! Link ist eine ausführliche Version des Codes. Erläuterung:
Eingabe
n
.Drucken Sie die horizontale Leiste des großen
A
. (Bei geraden Zahlenn+1
überlappt das th ohnehin die rechte Seite.)Bewegen Sie sich an die Spitze des großen
A
.Bedrucken Sie beide Seiten des großen
A
.quelle
Python 2 , 80 Bytes
Probieren Sie es online!
Teilen Sie die gewünschte Ausgabe in das linke Leerzeichen, das linke
A
plus das mittlere Leerzeichen oderA
s und das rechteA
. Berechnen Sie den mittleren Teil, indem Sie eine feste Zeichenfolge aufschneiden. Auf diese Weise können Sie die erste Zeile auf dieselbe Weise generieren.quelle
Stax , 15 Bytes
Führen Sie es aus und debuggen Sie es
Entpackt, ungolfed und kommentiert sieht das Programm so aus.
Führen Sie dieses aus
quelle
JavaScript (ES6), 77 Byte
Dieser Quellcode hat eine rechteckige Form ! Oh warte ... falsche Herausforderung: - /
Probieren Sie es online!
quelle
Python 3.6 , 79 Bytes oder 73 Bytes
Verwenden von F-Strings zum Ausrichten horizontaler Buchstabenteile:
Mit
\b
verwendet, um eine zu löschenA
(möglicherweise Betrug):quelle
Java (JDK 10) , 124 Byte
Probieren Sie es online!
quelle
J , 65 Bytes
Probieren Sie es online!
Es kann um ca. 12 Bytes, indem Sie einfach das Verb tacit machen, aber ich habe Probleme, es zu tun.
Erläuterung:
3 : '...'
bezeichnet ein explizites einzeiliges Verby
ist das Argument=/~@i.
Erstellt eine Identitätsmatrix mit der Größe des Arguments([:(}:@|."1,.])
Stellt der Identitätsmatrix ihre Spiegelkopie voran, wobei die letzten Elemente jeder Zeile abgelegt werden.1(...)}(...)
ändert die Positionen in seinem rechten Argument auf 1, ausgewählt durch die linke([:(<@;]+i.@+:)<.@-:)
- bereitet die Auswahl folgendermaßen vor:' A'{~
Gibt ein Leerzeichen an den Stellen 0 und 'A' aus, an denen 1 stehtquelle
Canvas ,
1713 BytesProbieren Sie es hier aus!
-4 Bytes dank dzaima !
quelle
Ruby , 66 Bytes
Probieren Sie es online!
Gibt als Array von Zeilen zurück
quelle
SOGL V0.12 , 12 Bytes
Probieren Sie es hier aus!
Erläuterung:
quelle
Japt
-R
,20 bis19 BytesVersuch es
Erläuterung
Alternative
(In der Hoffnung, dass es mir helfen könnte, einige Einsparungen zu finden!)
quelle
ç h'AUz)¬íp ®i'A êÃû
p
durch²
und es sind auch 19 Bytes.Ruby , 73 Bytes
Probieren Sie es online!
quelle
Jelly ,
23201918 BytesProbieren Sie es online!
=þ`
Erstellt eine Identitätsmatrix der Größen
.L‘HĊƲ
Findet den Zeilenindex der horizontalen Leiste, wobei¦
diese Zeile ausgewählt undo\
auf diese angewendet wird , wodurch die Leiste erstellt wird.U
Kehrt jede Zeile um, damit wir kein umgedrehtes "A" haben, undŒB
(palindromize; vectorizes) macht die zweite Hälfte des "A".ị⁾A
(mit einem Leerzeichen, das in der Formatierung abgeschnitten wird) ersetzt0
s durch Leerzeichen und1
s durchA
s.quelle
T-SQL ,
182177 BytesErste Version (mit 182 Bytes):
Die obige Version funktioniert bis zu @ n = 9.
Hier ist eine andere Version, die bis zu @ n = 23 funktioniert, aber 2 zusätzliche Bytes hat:
Ungolfed:
quelle
Haskell ,
989795 Bytes und 109 BytesZwei sehr unterschiedliche Ansätze. Erste (95 Bytes):
und Sekunde (109 Bytes):
Probieren Sie sie hier aus!;Probieren Sie hier eine geänderte Version aus!Versuchen Sie die dritte Version hier!
quelle
l
als Infix-Operator definieren .m True='A'
verkürzt werden aufm b|b='A'
.Python 2 , 70 Bytes oder 65 Bytes
Liste der Zeichenfolgen ist akzeptables Ergebnis, wie @Budd in Kommentaren angegeben.
Probieren Sie es online!
Scheinbar betrügerische Lösung mit
\b
. In TIO sieht es irre aus, in der Konsole macht es den Job.Probieren Sie es online!
quelle
Javascript, 124 Bytes
Eine ziemlich naive Lösung, es gab einen Versuch, seine Fähigkeiten zu üben.
for(i=-1,p=" ".repeat(n-1)+"A ";++i<n;console.log(i-~~(n/2)?p:p.slice(0,i)+"A".repeat(n)),p=p.slice(1,n)+" "+p.slice(n-1)){}
Unverpackt
quelle
Perl 5
-n
, 57 BytesProbieren Sie es online!
quelle
Python 3 ,
93, 88 BytesProbieren Sie es online!
-3 von @ovs mit f-string
quelle