Lihat juga: Rotatagon
Tantangan
Diberikan string sebagai input, output wordagon.
Wordagons
Wordagon adalah cara untuk merepresentasikan string dalam hexagon. Sekarang, mari kita membuat wordagon dari string hexa
:
Pertama, Anda mulai dengan karakter pertama di string dan menempatkannya di tengah:
h
Kemudian, Anda mengambil karakter berikutnya dalam string dan menambahkan lapisan heksagonal:
e e
e h e
e e
Kemudian, tambahkan layer berikutnya:
x x x
x e e x
x e h e x
x e e x
x x x
Akhirnya, tambahkan layer terakhir:
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
Dan Anda sekarang memiliki wordagon untuk string hexa
.
Contohnya
Inilah beberapa yang saya siapkan sebelumnya:
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 )
) ) ) ) )
Perhatikan bahwa membuntuti dan / atau memimpin baris baru diizinkan.
Kemenangan
Kode terpendek dalam byte menang.
code-golf
ascii-art
hexagonal-grid
Peluruhan Beta
sumber
sumber
Jawaban:
Pyth - 29 byte
Test Suite .
sumber
Python 2, 83 byte
Mencetak wordagon dan kemudian macet (yang hanya mencetak ke STDERR).
Contoh:
xnatau disimpan 5 byte. Terima kasih!
sumber
y
dengan melakukann=len(s)\nwhile 1:n-=1;y=abs(n);...
dan mengakhiri dengan kesalahan.Vim, 92 byte
Huruf melingkar mewakili Control+ huruf; ␛ melarikan diri.
sumber
@q
menyebabkan loop tak terbatas untuk saya. Ini berfungsi dengan baik jika dihapus.Mathematica
100219 byteJika ASCII-Art tidak perlu Terminal-Art ini harus valid.
Kiriman saya sebelumnya secara keliru lebih menarik bintang daripada segi enam. Saya tidak bisa melihat bagaimana saya begitu off!
CirclePoints@6
mengembalikan simpul dari segi enam unit, dengan asumsi bahwa pusat berada pada titik asal.Subdivide
ing koordinat untuk simpul tetangga menemukan posisi spasi sama di sepanjang tepi masing-masing.Penghitung dari 1 hingga
StringLength -1
dari string input memungkinkan setiap lapisan wordagon ditangani secara terpisah.Seiring
n
bertambahnya, demikian juga jarak masing-masing simpul dari titik asal.Text[s~StringPart~1,{0,0}]
mencetak huruf pertama dari input di tempat asal.f @ "Wordagon"
Bagi yang penasaran, seperti inilah versi bintangnya. Saya tahu, itu jauh dari sasaran. Itu hanya menunjukkan huruf pada simpul segi enam.
sumber
Ruby, 82 byte
beralih melalui
1-n..n-1
dalam arah i = y dan j = x. Tanpa spasi di setiap baris, output akan terlihat seperti di bawah ini, sebagai hasil dari memilih karakter daris
dengan indeks[[i.abs+j,i.abs,-j].max]
. Menambahkan spasi memimpin membentuk segi enam yang diperlukan.Tidak digabungkan dalam program uji
Output khas
sumber
JavaScript (ES6), 118 byte
Dimana
\n
mewakili karakter baris baru literal. Berdasarkan jawaban saya untuk tantangan ASCII-Hexplosive meskipun bagian dari solusi mirip dengan jawaban Ruby @ LevelRiverSt. Berbagai komponen dariMath.max
menghasilkan output berikut untukl=3
:Nilai maksimum diambil, dan nilai lebih besar dari
l
yang dihapus, sehingga menghasilkan bentuk segi enam, sedangkan nilai yang tersisa dipetakan ke karakter dari string:sumber
05AB1E , 31 byte
Penjelasan
Memanfaatkan simetri hanya menghasilkan bagian atas segi enam,
kemudian mencerminkan itu untuk membentuk bagian bawah.
Cobalah online!
sumber
Python 2, 104 byte
sumber
PHP - 202 byte
Penggunaan dari baris perintah:
sebagai contoh:
Test Suite .
sumber