Der 13. März wird als nationaler Juwelentag anerkannt , der das Thema dieser Herausforderung ist. So gegeben, eine ganze Zahl , n
wo n
größer als 0 ist , erstellen Sie ein ASCII - Juwel. Beispielsweise:
n = 1 n = 2 n = 3
______
____ / \
__ / \ \ /
/ \ \ / \ /
\ / \ / \ /
\/ \/ \/
Der Boden ist definiert als der Boden des Schmuckstücks bis zum höchsten Paar von \/
. Der Rest ist die Spitze. Für das obige Beispiel gilt n = 1
:
Bottom: \ / Top: __
\/ / \
Wie Sie sehen können, besteht der Boden aus n + 1
Schichten \/
mit (1 * lines from the bottom) * 2
Zwischenräumen mit maximaler Anzahl von n
Linien vom Boden des Schmuckstücks. Wenn wir das zweite Juwel ( n = 2
) nehmen, können wir das sehen:
____
/ \
\ / 2 (or n) layers from the bottom with 1*2*2 or 4 spaces in between \/
\ / 1 layer from the bottom with 1*1*2 or 2 spaces in between \/
\/ The bottom (0 layers) with 1*0*2 spaces or 0 spaces in between \/
Das Oberteil besteht aus einem Paar /\
mit n*2
Zwischenräumen und n*2
Unterstrichen.
Regeln
- Muss in der Lage sein, alle positiven Ganzzahlen ungleich Null als Benutzereingabe zu erfassen
- Es muss ein Juwel mit den oben definierten Spezifikationen erstellt werden (hier angepasst):
- Das Oberteil besteht aus einem Paar
/\
mitn*2
Zwischenräumen undn*2
Unterstrichen. - Der Boden besteht aus
n + 1
Lagen\/
mit(1 * lines from the bottom) * 2
Zwischenräumen mit maximaler Anzahl vonn
Linien vom Boden des Schmuckstücks.
- Das Oberteil besteht aus einem Paar
- Es ist zulässig, Zeilenumbrüche nach dem Juwel oder Leerzeichen in jeder Zeile zu setzen.
- Keine Standardlücken erlaubt
Gewinnkriterien
Die wenigsten Bytes gewinnen!
Antworten:
Holzkohle , 17 Bytes
Code:
Erläuterung:
Ein sehr ordentlich Befehl ist
‖M
, der auch automatisch Spiegel/
in\
.Verwendet die Charcoal- Codierung .
Probieren Sie es online!
quelle
05AB1E ,
2720 BytesProbieren Sie es online!
Erläuterung
quelle
D„/\„\/‡
zuÂ
.Python 2,
1019895 BytesProbieren Sie es online!
Anonyme Funktion, die eine positive Ganzzahl aufnimmt und eine Zeichenfolge zurückgibt
Python 3.6, 92 Bytes (Dank an Ben Frankel)
Ich konnte keinen Online-Interpreter für diese Version finden, aber er ist aufgrund von F-Strings in Version 3.6 etwas kürzer
quelle
lambda n:f' {"__"*n}\n/{" "*n}\\\n'+'\n'.join(' '*i+'\\'+' '*(n-i)+'/'for i in range(n+1))
. Nutzen Sie die Vorteile von F-Strings.PHP, 123 Bytes
143 Bytes erste Version
Probieren Sie es hier aus!
quelle
V ,
282726 Bytes1 Byte, die dank @DJMcMayhem durch Verwendung von
>
anstelle von gespeichert wurdenÉ
<esc>
ist0x1b
Probieren Sie es online!
Hexdump:
Erläuterung
Oben:
Unterseite:
quelle
É<space>
auf>
welche am Ende eines Makros implizit ausgefüllt wird>>
>
Einrückungen werden also um ein Leerzeichen anstatt um einen Tabulator verschoben.set expandtab
undset shiftwidth=1
Röda , 71 Bytes
Probieren Sie es online!
quelle
JavaScript (ES6), 80 Byte
quelle
Python 3,
107105 BytesNimmt ein Int von Stdin
quelle
MATL , 34 Bytes
Probieren Sie es bei MATL Online!
Erläuterung
quelle
PowerShell ,
76, 74 BytesHinweis: Das Online-Beispiel enthält eine kurze Zusammenfassung als Demonstration. Platzieren Sie diese in einer PoSH-Funktion oder einem Skript, um sie auszuführen.
Probieren Sie es online!
quelle
' '*$i++
anstelle von' '*($n-$_)
.C 131 Bytes
Probieren Sie es online!
quelle
i,j;f(n){for(p(" ");i++<n*2;p("_"));for(p("\n/%*c\n",n*2+1,92);j++<n+1;p("%*c%*c\n",j,92,(n-j)*2+3,47));}
Pyth, 44 Bytes
Versuch es!
Erläuterung
Der Code besteht aus 3 Teilen:
quelle
Python3, 104 Bytes
Das Programm nimmt eine Ganzzahl von STDIN und gibt das Juwel an STDOUT zurück.
quelle
Pip , 43 Bytes
42 Byte Code, +1 für
-n
Flag.Übernimmt die Eingabe als Befehlszeilenargument. Probieren Sie es online!
Erläuterung
Konstruiert die ersten beiden Zeilen separat, dann den Rest des Juwel mit einer Kartenoperation:
Eine andere Lösung
Auch 42 + 1 Bytes, diesmal mit dem
-l
Flag:TIO
quelle
Pyth, 38 Bytes
quelle
C 115 Bytes
Probieren Sie es online!
C, 123 Bytes
Obwohl die Herausforderung dies nicht erfordert, kann die Funktion auf Kosten von 8 Byte wiederverwendbar gemacht werden (die erste Lösung spart 8 Byte, indem auf die implizite Initialisierung globaler Variablen zurückgegriffen wird).
Probieren Sie es online!
quelle
Batch, 152 Bytes
Tests:
quelle
C #, 187 Bytes
Ich bin mir sicher, dass es eine kompaktere Lösung gibt, aber dies ist mein erster Versuch:
Probieren Sie es online ..
quelle
JavaScript (ES6), 93 Byte
Demo
Code-Snippet anzeigen
quelle
Gleichstrom , 121 Bytes
Probieren Sie es online!
quelle
Perl 5
10994 + 1 (für Flag -p) = 95 BytesProbieren Sie es online!
Kann so ausgeführt werden:
Ungolfed
Erläuterung
quelle