Giriş
Parsons kodu tanımlamak için sadece basit bir yoludur zift varyasyonlarını bir not daha yüksek olup olmadığı, bir müzik parçasının veya bir öncekinden daha düşük.
Zil seslerini hatırlamayı emseniz bile, bir notun aşağı veya yukarı gittiğini hala hatırlayabilirsiniz, bu nedenle Parsons kodu bir arama motorunu kullanarak bir müzik tanımlamanıza yardımcı olabilir.
Açıklama
Her varyasyon, aşağıdakilerden biri olan tek bir karakterle temsil edilir:
R
eğer not öncekiyle aynı ise ( “ R epeat” anlamına gelir )U
eğer not öncekinden daha yüksekse ( " U p" anlamına gelir )D
eğer not öncekinden düşükse ( " D own" anlamına gelir )
İlk not olarak yazılmıştır *
.
Örnek
Parsons kodunun bir örneği ( "Ode to Joy" un başlangıcı ):
*RUURDDDDRUURDR
Aslında , bu şekilde görselleştirebilirsiniz :
*-*
/ \
* *
/ \
*-* * *-*
\ / \
* * *-*
\ /
*-*
Bundan sonra buna kontur diyeceğiz .
Bu tür kontürlerin çizilmesine ilişkin kurallar yukarıdaki örnekte kendi kendini açıklar .
Meydan okuma
Şimdi asıl sorun geliyor.
Girdi olarak kontur verilen ilgili Parsons kodunu çıkaran bir program yazın.
Konturu çizmeniz istenmez, bunun tam tersi de geçerlidir.
Konturdan orijinal Parsons kodunu bulun.
kurallar
- Kod golfü için genel kurallar geçerlidir
- Bayt sayısındaki en kısa program kazanır
- Giriş bir konturdur ve çıkış geçerli bir Parsons kodu olmalıdır
- Giriş için fazladan boşlukla ilgili ayrıntılar önemsizdir, sizin için en iyi olanı yapın
- Önceki kural nedeniyle fazladan boşluk kullanarak çıktının bölümlerini ve / veya programı bir şekilde veya başka bir şekilde kodlamanıza izin verilmez.
notlar
- Bu test için yararlı olabilir
- Karşılık gelen Parsons kodu
*
IS*
- Boş bir dize geçerli bir kontur değil
- Bir Parsons kodu her zaman ile başlar
*
*
, hiçbir şey yapmadan başlaması gerekiyor ?
*
? Hayır! *
Sanırım yazdırmalı . Bu köşe vakasını ekleyeceğim.
*
. Her zaman.