Siehe auch: Rotation
Herausforderung
Wenn Sie eine Zeichenfolge als Eingabe angeben, geben Sie ihr Wortzeichen aus.
Wordagons
Ein Wortagon ist eine Möglichkeit, eine Zeichenfolge in einem Sechseck darzustellen. Jetzt erstellen wir ein Wort aus der Zeichenfolge hexa
:
Zunächst beginnen Sie mit dem ersten Zeichen in der Zeichenfolge und platzieren es in der Mitte:
h
Dann nehmen Sie das nächste Zeichen in der Zeichenfolge und fügen eine hexagonale Ebene hinzu:
e e
e h e
e e
Dann füge die nächste Ebene hinzu:
x x x
x e e x
x e h e x
x e e x
x x x
Fügen Sie zum Schluss die letzte Ebene hinzu:
a a a a
a x x x a
a x e e x a
a x e h e x a
a x e e x a
a x x x a
a a a a
Und Sie haben jetzt das Wort für die Zeichenfolge hexa
.
Beispiele
Hier sind einige, die ich zuvor vorbereitet habe:
hello
o o o o o
o l l l l o
o l l l l l o
o l l e e l l o
o l l e h e l l o
o l l e e l l o
o l l l l l o
o l l l l o
o o o o o
PPcg
g g g g
g c c c g
g c P P c g
g c P P P c g
g c P P c g
g c c c g
g g g g
o *
* * *
* *
* o *
* *
* * *
(T_T)
) ) ) ) )
) T T T T )
) T _ _ _ T )
) T _ T T _ T )
) T _ T ( T _ T )
) T _ T T _ T )
) T _ _ _ T )
) T T T T )
) ) ) ) )
Beachten Sie, dass nachfolgende und / oder führende Zeilenumbrüche zulässig sind.
Gewinnen
Der kürzeste Code in Bytes gewinnt.
code-golf
ascii-art
hexagonal-grid
Beta-Zerfall
quelle
quelle
Antworten:
Pyth - 29 Bytes
Test Suite .
quelle
Python 2, 83 Bytes
Druckt das Wordagon und stürzt dann ab (was nur in STDERR gedruckt wird).
Beispiel:
xnor sparte 5 Bytes. Vielen Dank!
quelle
y
's durchlaufen , indem Sie einenn=len(s)\nwhile 1:n-=1;y=abs(n);...
Fehler machen und abbrechen.Vim, 92 Bytes
Eingekreiste Buchstaben stehen für Control+ Buchstaben; ␛ ist Flucht.
quelle
@q
bewirkt für mich eine Endlosschleife. Es funktioniert perfekt, wenn es entfernt wird.Mathematica
100219 BytesWenn ASCII-Art nicht Terminal-Art sein muss, sollte dies gültig sein.
Meine frühere Vorlage zeichnete fälschlicherweise eher einen Stern als ein Sechseck. Ich kann nicht sehen, wie es mir so schlecht ging!
CirclePoints@6
Gibt die Eckpunkte eines Einheitssechsecks zurück, vorausgesetzt, der Mittelpunkt befindet sich am Ursprung.Subdivide
Wenn Sie die Koordinaten für benachbarte Scheitelpunkte eingeben, werden Positionen mit gleichem Abstand entlang der jeweiligen Kante gefunden.Ein Zähler von 1 bis zur
StringLength -1
Eingabezeichenfolge ermöglicht, dass jede Ebene des Wordagons separat behandelt wird.Mit
n
zunehmendem Abstand jedes Scheitelpunkts vom Ursprung nimmt auch der Abstand zu.Text[s~StringPart~1,{0,0}]
druckt den ersten Buchstaben der Eingabe am Ursprung.f @ "Wordagon"
Für die Neugierigen sah die Star-Version so aus. Ich weiß, es war weit weg von der Marke. Es wurden nur die Buchstaben an den Eckpunkten des Sechsecks angezeigt.
quelle
Ruby, 82 Bytes
iteriert
1-n..n-1
sowohl in i = y- als auch in j = x-Richtung. Ohne die führenden Leerzeichen in jeder Zeile sieht die Ausgabe wie folgt aus, da ein Zeichen auss
dem Index ausgewählt wurde[[i.abs+j,i.abs,-j].max]
. Das Hinzufügen von führenden Leerzeichen bildet das erforderliche Sechseck.Ungolfed im Testprogramm
Typische Ausgabe
quelle
JavaScript (ES6), 118 Byte
Wobei
\n
das wörtliche Zeilenumbruchzeichen darstellt. Basierend auf meiner Antwort auf die Hexplosive ASCII-art-Herausforderung, obwohl Teile der Lösung der Ruby-Antwort von @ LevelRiverSt ähneln. Die verschiedenen Komponenten vonMath.max
erzeugen die folgende Ausgabe fürl=3
:Der Maximalwert wird genommen und die Werte, die größer als
l
sind, werden entfernt, wodurch die Sechseckform erzeugt wird, während die verbleibenden Werte Zeichen aus der Zeichenfolge zugeordnet werden:quelle
05AB1E , 31 Bytes
Erläuterung
Verwenden Sie die Symmetrie, um nur den oberen Teil des Sechsecks zu generieren,
und spiegeln Sie diesen dann, um den unteren Teil zu bilden.
Probieren Sie es online!
quelle
Python 2, 104 Bytes
quelle
PHP - 202 Bytes
Verwendung von der Kommandozeile:
beispielsweise:
Test Suite .
quelle