Identikon adalah penggambaran visual dari nilai hash, sering kali dibuat dari pengaturan simetris bentuk geometris. Avatar Stack Exchange default Anda adalah sebuah identitas. Tantangan ini adalah tentang membuat "wordenticons" , versi sederhana dari identicons berbasis teks yang berlaku untuk string huruf kecil, yaitu kata-kata.
Tantangan
Tulis sebuah program atau fungsi yang mengambil string S dan mengeluarkan kata-katanya. S dijamin tidak kosong dan hanya berisi huruf kecil huruf Inggris az. Anda dapat mengasumsikan S memiliki baris tambahan.
Wordenticon S akan berupa kisi-kisi teks persegi panjang dengan panjang sisi yang 2*length(S)
terdiri dari spasi (
), bilah vertikal, ( |
), dan bilah horizontal ( ―
).
Untuk menghasilkan wordenticon S, bentuk kotak persegi di mana setiap kolom berhubungan dengan huruf S (dalam urutan pembacaan kiri-ke-kanan normal) dan setiap baris berhubungan dengan huruf S (dalam urutan pembacaan normal dari atas ke bawah) ).
Sebagai contoh, jika S adalah food
grid awal kita terlihat seperti
food
f....
o....
o....
d....
di mana .
hanya tempat penampung.
Untuk setiap titik kosong (setiap .
) di kisi:
- Jika huruf kolom muncul sebelum huruf baris sesuai abjad, ganti
.
dengan|
. - Jika huruf kolom muncul setelah huruf baris secara alfabet, ganti
.
dengan―
. - Jika kolom dan huruf baris sama, ganti
.
dengan
Berikut adalah food
contoh setelah masing-masing langkah ini:
Menambahkan
|
:food f...| o|..| o|..| d....
Menambahkan
―
:food f.――| o|..| o|..| d―――.
Menambahkan
food f ――| o| | o| | d―――
Untuk menyelesaikan wordenticon, hapus baris dan kolom berlebihan yang berisi kata-kata
――|
| |
| |
―――
lalu cermin semuanya secara horizontal
――||――
| || |
| || |
――― ―――
dan akhirnya cermin lagi secara vertikal
――||――
| || |
| || |
――― ―――
――― ―――
| || |
| || |
――||――
menghasilkan 2*length(S)
kotak teks panjang sisi yang merupakan wordenticon akhir.
Contohnya
Berikut adalah beberapa contoh wordenticon tambahan. Perhatikan bahwa kata-kata yang berbeda dapat memiliki wordenticons yang identik dan beberapa wordenticons dapat sepenuhnya dibuat dari spasi (sayangnya markdown tidak ingin menerjemahkannya).
food
――||――
| || |
| || |
――― ―――
――― ―――
| || |
| || |
――||――
mood
――||――
| || |
| || |
――― ―――
――― ―――
| || |
| || |
――||――
foof
―― ――
| || |
| || |
―― ――
―― ――
| || |
| || |
―― ――
fool
――――――
| || |
| || |
|―― ――|
|―― ――|
| || |
| || |
――――――
a [2*2 grid of spaces]
to
||
― ―
― ―
||
it
――
| |
| |
――
tt [4*4 grid of spaces]
abc
――――
| ―― |
|| ||
|| ||
| ―― |
――――
and
――――
| || |
|― ―|
|― ―|
| || |
――――
but
――――
| || |
|― ―|
|― ―|
| || |
――――
you
||||
― ―― ―
―| |―
―| |―
― ―― ―
||||
bob
― ―
| || |
― ―
― ―
| || |
― ―
cat
|――|
― ―― ―
|| ||
|| ||
― ―― ―
|――|
cart
|――――|
― ―――― ―
|| ―― ||
||| |||
||| |||
|| ―― ||
― ―――― ―
|――――|
todo
||||||
― | | ―
―― ―― ――
― | | ―
― | | ―
―― ―― ――
― | | ―
||||||
mice
||||||
― |||| ―
―― ―― ――
――| |――
――| |――
―― ―― ――
― |||| ―
||||||
zyxw
||||||
― |||| ―
―― || ――
――― ―――
――― ―――
―― || ――
― |||| ―
||||||
banana
|―|―||―|―|
― ― ― ― ― ―
|| | || | ||
― ― ― ― ― ―
|| | || | ||
― ― ― ― ― ―
― ― ― ― ― ―
|| | || | ||
― ― ― ― ― ―
|| | || | ||
― ― ― ― ― ―
|―|―||―|―|
codegolf
――――――――――――――
| ||| |||| ||| |
|― ―――――――――― ―|
|―| ―――――――― |―|
|―|| ――||―― ||―|
| ||| |||| ||| |
|―|||― || ―|||―|
|―||――― ―――||―|
|―||――― ―――||―|
|―|||― || ―|||―|
| ||| |||| ||| |
|―|| ――||―― ||―|
|―| ―――――――― |―|
|― ―――――――――― ―|
| ||| |||| ||| |
――――――――――――――
programming
―||―||||||||||||―||―
| || |||||||||||| || |
―― |―||||||||||||―| ――
――― ―|―――― ――――|― ―――
| || |||||||||||| || |
――――― ―――――――――― ―――――
―――|―| |―||―| |―|―――
―――|―| |―||―| |―|―――
―――|―|―― ―||― ――|―|―――
―――|―|||| || ||||―|―――
――― ―|―――― ――――|― ―――
――― ―|―――― ――――|― ―――
―――|―|||| || ||||―|―――
―――|―|―― ―||― ――|―|―――
―――|―| |―||―| |―|―――
―――|―| |―||―| |―|―――
――――― ―――――――――― ―――――
| || |||||||||||| || |
――― ―|―――― ――――|― ―――
―― |―||||||||||||―| ――
| || |||||||||||| || |
―||―||||||||||||―||―
abcdefghijklm
――――――――――――――――――――――――
| ―――――――――――――――――――――― |
|| ―――――――――――――――――――― ||
||| ―――――――――――――――――― |||
|||| ―――――――――――――――― ||||
||||| ―――――――――――――― |||||
|||||| ―――――――――――― ||||||
||||||| ―――――――――― |||||||
|||||||| ―――――――― ||||||||
||||||||| ―――――― |||||||||
|||||||||| ―――― ||||||||||
||||||||||| ―― |||||||||||
|||||||||||| ||||||||||||
|||||||||||| ||||||||||||
||||||||||| ―― |||||||||||
|||||||||| ―――― ||||||||||
||||||||| ―――――― |||||||||
|||||||| ―――――――― ||||||||
||||||| ―――――――――― |||||||
|||||| ―――――――――――― ||||||
||||| ―――――――――――――― |||||
|||| ―――――――――――――――― ||||
||| ―――――――――――――――――― |||
|| ―――――――――――――――――――― ||
| ―――――――――――――――――――――― |
――――――――――――――――――――――――
Mencetak gol
Ini adalah kode-golf , kode terpendek dalam byte yang menang. Tiebreaker melanjutkan ke jawaban sebelumnya.
Catatan
- Contoh bilah horizontal (
―
) dalam kode Anda dapat dihitung sebagai 1 byte, bukan 3 byte UTF-8 yang sebenarnya diperlukan. (Hingga sepuluh contoh.) - Jika diinginkan, Anda dapat menggunakan tanda hubung biasa (
-
) sebagai ganti bilah horizontal (―
). - Menghapus atau menambahkan spasi tambahan di garis kata kunci tidak diizinkan (bahkan jika bentuknya tidak berubah). Ini harus berupa
2*length(S)
persegi panjang sisi teks yang tepat . - Output wordenticon secara opsional dapat memiliki satu baris tambahan.
programming
, and
dan codegolf
tetapi Anda lupa puzzles
...