Zobacz także: Rotatagons
Wyzwanie
Biorąc pod uwagę ciąg wejściowy, wypisz jego słowo.
Wordagons
Wordagon to sposób reprezentowania łańcucha w sześciokącie. Teraz stwórzmy słowo z łańcucha hexa
:
Najpierw zaczynasz od pierwszego znaku w ciągu, umieszczając go na środku:
h
Następnie weź kolejny znak w ciągu i dodaj warstwę heksagonalną:
e e
e h e
e e
Następnie dodaj następną warstwę:
x x x
x e e x
x e h e x
x e e x
x x x
Na koniec dodaj ostatnią warstwę:
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
A teraz masz słowo na sznurek hexa
.
Przykłady
Oto niektóre, które przygotowałem wcześniej:
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 )
) ) ) ) )
Pamiętaj, że końcowe i / lub wiodące znaki nowej linii są dozwolone.
Zwycięski
Najkrótszy kod w bajtach wygrywa.
code-golf
ascii-art
hexagonal-grid
Rozpad beta
źródło
źródło
Odpowiedzi:
Pyth - 29 bajtów
Pakiet testowy .
źródło
Python 2, 83 bajty
Drukuje wordagon, a następnie ulega awarii (co drukuje tylko do STDERR).
Przykład:
xnor zapisał 5 bajtów. Dzięki!
źródło
y
wykonującn=len(s)\nwhile 1:n-=1;y=abs(n);...
i kończąc z błędem.Vim, 92 bajty
Zakreślone litery reprezentują Control+ literę; ␛ jest ucieczką.
źródło
@q
powoduje dla mnie nieskończoną pętlę. Działa idealnie, jeśli zostanie usunięty.Mathematica
100219 bajtówJeżeli ASCII-Art nie musi być sztuką terminalu, powinno to być ważne.
Moje wcześniejsze zgłoszenie omyłkowo narysowało gwiazdę, a nie sześciokąt. Nie widzę, jak mi było tak źle!
CirclePoints@6
zwraca wierzchołki sześciokąta jednostkowego, zakładając, że środek znajduje się na początku.Subdivide
współrzędne sąsiednich wierzchołków znajdują równo rozmieszczone pozycje wzdłuż odpowiedniej krawędzi.Licznik od 1 do
StringLength -1
ciągu wejściowego pozwala na oddzielną obsługę każdej warstwy słowa.Wraz ze
n
wzrostem zwiększa się odpowiednia odległość każdego wierzchołka od początku.Text[s~StringPart~1,{0,0}]
wypisuje pierwszą literę wejścia na początku.f @ „Wordagon”
Dla ciekawskich tak wyglądała wersja gwiazdy. Wiem, to było daleko od celu. Pokazywał tylko litery na wierzchołkach sześciokąta.
źródło
Rubin, 82 bajty
iteruje
1-n..n-1
zarówno w kierunkach i = y, jak i j = x. Bez początkowych spacji w każdym wierszu wynik wygląda następująco: w wyniku wybrania znakus
z indeksu[[i.abs+j,i.abs,-j].max]
. Dodanie spacji wiodących tworzy wymagany sześciokąt.Niegolfowany w programie testowym
Typowa wydajność
źródło
JavaScript (ES6), 118 bajtów
Gdzie
\n
reprezentuje dosłowny znak nowej linii. Na podstawie mojej odpowiedzi na wyzwanie Hexplosive ASCII-art, chociaż części rozwiązania przypominają odpowiedź Ruby @ LevelRiverSt. Różne składniki produktuMath.max
wytwarzają następującą wydajność dlal=3
:Pobierana jest maksymalna wartość, a wartości większe niż
l
są usuwane, tworząc w ten sposób kształt sześciokąta, a pozostałe wartości są odwzorowywane na znaki z ciągu:źródło
05AB1E , 31 bajtów
Wyjaśnienie
Wykorzystując symetrię do wygenerowania tylko górnej części sześciokąta,
a następnie odbicie jej w celu utworzenia dolnej części.
Wypróbuj online!
źródło
Python 2, 104 bajty
źródło
PHP - 202 bajty
Użycie z wiersza poleceń:
na przykład:
Pakiet testowy .
źródło