Tantangan
Diberikan daftar catatan, Anda harus mengembalikan tablature yang sesuai.
Catatan
Catatan harus dalam kisaran A hingga G inklusif dan rentang oktaf menjadi 2 hingga 6 inklusif. Formatnya adalah not-oktaf dengan #
mewakili tajam dan b
mewakili datar. Misalnya: A7
atau F#3
.
Tab
Tablature adalah metode penulisan musik, dengan menggambarkan diagram secara instrumen. Biasanya digambarkan sebagai lima baris dengan angka di atasnya.
Angka-angka yang dituliskan pada garis mewakili fret yang digunakan untuk mendapatkan nada yang diinginkan. Misalnya, angka 3 yang ditulis di baris atas staf menunjukkan bahwa pemain harus menekan fret ketiga pada E tinggi (senar pertama). Angka 0 menunjukkan mur - yaitu, string terbuka.
Angka Fret mungkin tidak lebih besar dari 22 dan gitarnya enam senar.
Tablature harus dalam format ASCII standar . Anda tidak boleh menyertakan indikator teknik apa pun (palu, geser, dll.). Pisahkan setiap not dengan lima garis. Dalam hal dua digit, kurangi jumlah tanda hubung menjadi empat.
Awal tab akan terlihat seperti ini:
e |-----
B |-----
G |-----
D |-----
A |-----
E |-----
Dan akhirnya akan terlihat seperti:
-----|
untuk semua lini.
(sumber: justinguitar.com )
Contoh
Input: C3 C3 D3 E3 F3
Output:
e |-----------------------------------|
B |-----------------------------------|
G |-----------------------------------|
D |-----------------0-----2-----3-----|
A |-----3-----3-----------------------|
E |-----------------------------------|
Kemenangan
Kode terpendek menang
Jawaban:
Python 3 -
329328319300Ini adalah posting pertama saya di codegolf.se, dan mungkin hampir tidak optimal; Saya telah membaca banyak posting di sini tetapi melakukan golf kode pertama saya mungkin 50 jam yang lalu. Ingin mencoba, meskipun!
EDIT: Dihapus 1 byte, tidak perlu mengeluarkan tanda hubung ekstra di sana
EDIT 2: Dihapus 9 byte, menghapus beberapa spasi dari string catatan
EDIT 3: Dihapus 19 byte dengan mengkonversi
filter()
ke generatorSedikit tidak ungolfed:
sumber