pengantar
The kode Parsons adalah cara sederhana untuk menggambarkan variasi lapangan dalam sepotong musik, apakah catatan lebih tinggi atau lebih rendah dari yang sebelumnya.
Bahkan jika Anda payah dalam mengingat lagu, Anda masih dapat mengingat jika nada naik atau turun, sehingga kode Parsons dapat membantu Anda mengidentifikasi musik menggunakan mesin pencari.
Deskripsi
Setiap variasi diwakili oleh satu karakter, yang merupakan salah satu dari yang berikut:
Rjika notnya sama dengan yang sebelumnya (singkatan dari " R epeat" )Ujika not lebih tinggi dari yang sebelumnya (singkatan dari " Up " )Djika catatan lebih rendah dari yang sebelumnya (kepanjangan dari " D sendiri" )
Catatan awal ditulis sebagai *.
Contoh
Berikut adalah contoh kode Parsons (awal dari "Ode to Joy" ):
*RUURDDDDRUURDR
Anda sebenarnya dapat memvisualisasikannya , seperti ini:
*-*
/ \
* *
/ \
*-* * *-*
\ / \
* * *-*
\ /
*-*
Kami akan menyebutnya kontur mulai sekarang.
Aturan untuk menggambar kontur semacam itu dianggap dijelaskan sendiri oleh contoh di atas.
Tantangan
Sekarang datang tantangan nyata.
Tulis program yang, diberi kontur sebagai input, mengeluarkan kode Parsons yang sesuai.
Anda tidak diminta untuk menggambar kontur, tetapi sebaliknya justru.
Dari kontur, cari kode Parsons asli.
Aturan
- Aturan yang biasa untuk kode golf berlaku
- Program terpendek dalam jumlah byte menang
- Input adalah kontur, dan output akan menjadi kode Parsons yang valid
- Detail tentang spasi kosong tambahan untuk input tidak relevan, lakukan apa pun yang terbaik untuk Anda
- Anda tidak diperbolehkan melakukan hardcode, dengan satu atau lain cara, bagian dari output dan / atau program menggunakan spasi kosong karena aturan sebelumnya
Catatan
- Ini mungkin berguna untuk pengujian
- Kode Parsons yang sesuai
*adalah* - String kosong bukan kontur yang valid
- Kode Parsons selalu dimulai dengan
*
*yang tidak melakukan apa-apa?
*? Nggak. Seharusnya mencetak *saya kira. Saya akan menambahkan kasing sudut ini.
*. Selalu.
