Trąbka jest zaworem instrumentem aerofony, zwykle obozem B♭
. Dźwięk jest emitowany, gdy odtwarzacz wibruje wargami, aby wyprzeć powietrze z wnętrza instrumentu. Wibrację tę uzyskuje się przez ustawienie ust w określony sposób, zwany tłoczeniem. Różne tłoczenia, z węższymi lub luźniejszymi ustami, wytwarzają różne wysokości.
Co więcej, każdy zawór w trąbce również zmienia wysokość instrumentu. Po wciśnięciu zawór zamyka ścieżkę wewnątrz rurki instrumentu, dzięki czemu powietrze przepływa dłuższą ścieżką, obniżając w ten sposób wysokość dźwięku oryginalnego. Na potrzeby tego wyzwania rozważymy standardową B♭
trąbkę, w której pierwszy zawór obniża skok o pełny stopień, drugi obniża skok o pół stopnia, a trzeci obniża skok o jeden i jeden pół kroku.
Wyzwanie
Wyzwanie polega na utworzeniu programu lub funkcji, która przy dwóch wejściach embouchure
i valves
określa wysokość odtwarzanej nuty.
Na potrzeby tego wyzwania notatki będą przebiegać w następującej kolejności:
B♭, B, C, C♯, D, E♭, E, F, F♯, G, G♯, A.
Zasady
- We / Wy można przyjmować / podawać dowolną rozsądną metodą .
- Obowiązują standardowe luki .
- Możesz używać
b
i#
zamiast♭
i♯
jeśli chcesz. - Dane wejściowe dla
valves
można przyjmować jako listę zaworów o obniżonym ciśnieniu (1, 3
) lub listę wartości boolowskich (1, 0, 1
). - To jest golf golfowy , więc wygrywa najkrótszy kod w każdym języku.
Przypadki testowe:
Valves
w tych przypadkach testowych podano jako listę logiczną, gdzie 0 oznacza wciśnięty, a 1 wciśnięty.
Embouchure: Valves: Output:
B♭ 0 0 0 B♭
B♭ 0 1 0 A
B♭ 1 0 1 F
C♯ 0 0 1 B♭
C♯ 1 1 1 G
E♭ 1 0 0 C♯
G 0 1 1 E♭
G♯ 1 0 0 F♯
G♯ 0 0 1 F
G 1 0 0 F
F♯ 1 0 0 E
D 1 0 1 A
A 1 1 1 E♭
E 1 1 0 C♯
E 0 0 1 C♯
Oświadczenie: Nie jestem jeszcze muzykiem, więc przepraszam za rzeź, jaką mogłem zrobić na testach. Poprawki są mile widziane.
F# 100
E powinno być F?
C#
na trąbce bez naciskania jakichkolwiek zaworów. Tylko konkretne uwagi ( B♭-F-B♭-D-F-A♭-B♭...
), seria tonów B♭
. Mimo to, nawet jeśli nie odzwierciedla prawdziwego instrumentu, wyzwanie jest doskonale dobrze zdefiniowane.