Problem
Gegeben eine positive ganze Zahl n
won < 100
Geben Sie ein Rautenmuster wie folgt aus:
Eingang n=1
/\/\
\/\/
Eingabe n=2
:
/\ /\
//\\/\/\//\\
\\//\/\/\\//
\/ \/
Eingabe n=3
:
/\ /\
//\\ /\ /\ //\\
///\\\//\\/\/\//\\///\\\
\\\///\\//\/\/\\//\\\///
\\// \/ \/ \\//
\/ \/
Eingabe n=4
:
/\ /\
//\\ /\ /\ //\\
///\\\ //\\ /\ /\ //\\ ///\\\
////\\\\///\\\//\\/\/\//\\///\\\////\\\\
\\\\////\\\///\\//\/\/\\//\\\///\\\\////
\\\/// \\// \/ \/ \\// \\\///
\\// \/ \/ \\//
\/ \/
Und so weiter.
Regeln
- Programm und Funktion erlaubt.
- Leerzeichen dürfen nachgestellt werden.
- Führende Leerzeichen in Zeilen ohne
/
oder mit\
Erlaubnis. - Nachgestellte und führende Zeilenumbrüche sind erlaubt.
- Kürzester Code in Bytes gewinnen
Antworten:
SOGL V0.12 , 24 Bytes
Probieren Sie es hier aus!
Erläuterung:
quelle
╬
das ist ein kranker Befehl.╬
lolKohle ,
3027 BytesProbieren Sie es online!Link ist eine ausführliche Version des Codes. Erklärung: Die Zeichenprimitive von Charcoal können einen Diamanten nicht ganz zeichnen, da die diagonalen Bewegungen auf Quadraten derselben Parität bleiben. Bearbeiten: Die neue Lösung besteht darin, eine Seite eines Diamanten zu zeichnen und dann die gesamte Leinwand zu drehen, um die nächste Seite zu zeichnen, sodass ein Diamant in einer Schleife gezeichnet werden kann. Diese Schleife ist dann in einer Schleife enthalten, um alle inneren Diamanten für jeden Diamanten zu zeichnen. Die äußerste Schleife zeichnet alle Diamanten nebeneinander. Zum Schluss wird das Bild gespiegelt.
Beachten Sie, dass Charcoal inzwischen erweitert wurde und ein weiteres Byte mit gespeichert werden kann
Increment
.quelle
APL (Dyalog) ,
706966 BytesProbieren Sie es online!
Nimmt man an
⎕IO←0
, was auf vielen Systemen Standard ist, so ist das Programm 0-indiziert.Dies ist ein Handel, der Eingaben über STDIN entgegennimmt.
Erläuterung
(etwas veraltet)
Beachten Sie, dass dies
⍺
das linke Argument,⍵
das rechte Argument und⍺⍺
der linke Operator ist.B
ist eine Funktion, die beim Spiegeln der Diamanten hilft. Die Zeichenfolge wird als rechtes Argument und die Umkehrfunktion als linkes Argument verwendet (alsoB
ein Operator).Und jetzt gehen wir zum Hauptteil des Programms.
Dies ist erforderlich, um sicherzustellen, dass alle für jedes Element im Bereich erstellten Dreiecke
⌽⍳A
dieselbe Höhe haben, damit sie später miteinander verkettet werden können.Jetzt ist der obere linke Teil des Musters fertig. Alles was übrig bleibt, ist es vertikal und dann horizontal zu spiegeln.
Und das ist es! Die Ausgabe ist eine Zeichenmatrix mit
/\
s und Leerzeichen.quelle
05AB1E ,
47434135343332 BytesProbieren Sie es online!
(-4 Bytes dank @Emigna, der 3 Verbesserungen vorgeschlagen hat)
Diese Erklärung galt für die frühere Version, seitdem gab es einige Iterationen.
quelle
η
anstelle von Suffixen verwenden, da diese für diese Zeichenfolge identisch sind.N£
ist das gleiche wie¨
hier und€R
istí
.CJam ,
6563 BytesProbieren Sie es online!
Erläuterung
In dieser Erklärung beziehe ich mich auf die eingegebene Nummer als
n
.quelle
e#
in der Erklärung?#
ist kein Kommentar in CJam - sourceforge.net/p/cjam/wiki/Basic%20operators/#number-sign - obwohl es in vielen anderen Sprachen verfügbar ist . Da es sich bei CJam um eine Golfsprache handelt, werden alle Ein-Zeichen-Befehle für eine golfgerechte Funktionalität verwendet. Kommentare sind nur für unbenutzten Code nützlich. Daher wird eine Sequenz aus zwei Zeichen verwendet, wodurch die Sequenz aus einem Zeichen für etwas anderes freigegeben wirdPython 2 ,
152147143140 Bytes-1 Byte dank musicman523
Probieren Sie es online!
Dies funktioniert, indem die inneren Spalten des größten Diamanten zerkleinert werden
[0,..,n,n,..,0]
, um die Anzahl der zu entfernenden Spalten zu steuern.quelle
r=r+
zur+=
Pyth,
3532 BytesTestsuite
Fertig, um zu sehen, wie sich meine und @ LeakyNuns Ansätze unterscheiden würden.
quelle
Dyalog APL, 46
quelle
{}
Ihrer Antwort hinzugefügt , da sie enthalten sein muss.Pyth , 49 Bytes
Probieren Sie es online!
quelle
V , 38 Bytes
Probieren Sie es online!
quelle