Müziğin tersi : bu akorda ne var? verilen akordaki notaları basmaktır. Bu kez girdi bir akordaki notaların bir listesidir ve göreviniz hangi akorun çıktısını almaktır.
Programınız aşağıdaki triadik akorları desteklemelidir. Örnekler kök C ile verilir. Diğer köklere sahip akorlar, tüm notalar döndürülmüş olarak aynı akorlardır, bu nedenle C bu kök nota haline gelir, örneğin Dmaj, D, F # ve A'dan oluşur.
C C#D D#E F F#G G#A A#B
Db Eb Gb Ab Bb
Cmaj C E G
Cm C D# G
Caug C E G#
Cdim C D# F#
Csus4 C F G
Csus2 C D G
Caug'un Eaug ve G # aug ile aynı olduğunu ve Csus4'ün Fsus2 ile aynı olduğunu unutmayın. İkisinden birini çıktı alabilirsiniz, ancak hepsini çıkarırsanız bir bonus vardır.
Ve bonus için yedinci akorlar aşağıdaki tabloda listelenmiştir:
C C#D D#E F F#G G#A A#B
Db Eb Gb Ab Bb
C7 C E G A#
Cm7 C D# G A#
Cmmaj7 C D# G B
Cmaj7 C E G B
Caug7 C E G# A#
Cdim7 C D# F# A
kurallar
- Tam bir program veya işlev yazabilirsiniz.
- Giriş, boşluk veya başka bir uygun karakterle ayrılmış notların bir listesidir. Ayrıca bir dizi dizisi (işlev bağımsız değişkeninden girdi alırsa) veya bu dizinin dize olarak temsili olabilir.
- Girişin belirli bir sırada olması gerekmez.
- Girişte yinelenen notlar olabilir. Onlardan sadece bir tanesiyle aynı şekilde muamele edilmelidir.
- Çıktı akorun adıdır. Birden fazla ad çıkarması durumunda, giriş için aynı kural geçerlidir.
- Giriş desteklenen bir akor değilse, notları olduğu gibi yazdırmalısınız. Programınız ayrıca yukarıdaki tablolarda listelenmeyen diğer akorları da destekleyebilir (bu geçerlidir, ancak bonusu yoktur).
- Wikipedia makalesinde listelenen diğer gösterimleri kullanabilirsiniz . Ancak
C
C major'u seçerseniz , bir akoru tek bir nota ile ayırt etmek için her iki durumda da insan tarafından okunabilir bir önek eklemeniz gerekir. - Bu görev için yerleşik işlevleri kullanamazsınız (varsa).
- Bu kod golfü. Bayt cinsinden en kısa kod kazanır.
Örnekler
- Girdi:
C D# G
Çıktı:Cm
. - Girdi:
C Eb G
Çıktı:Cm
. - Girdi:
C Eb F#
Çıktı:Cdim
. - Girdi:
F A C#
Çıktı:Faug
,Aaug
,C#aug
,Dbaug
veyaFaug Aaug C#aug
,Faug Aaug Dbaug
herhangi bir sırada. - Girdi:
F D F F F F A A F
Çıktı:Dm
. - Girdi:
C D
Çıktı:C D
.
Bonuslar
- Birden fazla yorum varsa (aug, sus4 / sus2 ve dim7 için) hepsini yazdırırsa -30.
- Yedinci akorları da destekliyorsa -70.
- MIDI girişini kabul ederse ve aldığı her akoru yazdırırsa -200. Notların aynı anda başlaması veya bitmesi gerekmediğini unutmayın. Ara durumlarda ne olacağına siz karar verirsiniz (çökmediği veya çalışmayı durdurmadığı sürece). Perküsyon kanallarında not olmadığını varsayabilirsiniz (ya da uygunsa yalnızca bir kanal vardır). Ayrıca, özellikle platforma bağlıysa, test için bir metin (veya dizi) sürümü sağlamanız önerilir.
B#
, Cb
vb
Csus4 is the same as Gsus2
. Bence demek Csus2 is the same as Gsus4
istiyorsun değil mi?