ノートの入力が与えられると、対応するメジャーのASCII図面を出力する 高音部にキーを押します。
すべての主要なキー(ダブルシャープまたはダブルフラットを含まない) および対応するキー・シグニチャー:
Circle of fifths deluxe 4 by Wikipedia user Just
plain Bill, copyright CC BY-SA 3.0
入力がシャープのキーである場合は、次のASCIIアートを 適切な数のシャープ:
#
-#-------
#
----#----
#
-------#-
#
---------
---------
入力が平らなキーである場合:
---------
b
----b----
b
-b-------
b
-----b---
b
---------
ここでは、可能な入力の簡潔な要約と同様にいくつのシャープまたは 彼らが使うフラット:
0 1 2 3 4 5 6 7
# C G D A E B F# C#
b C F Bb Eb Ab Db Gb Cb
すべての5行のダッシュは常に描画する必要がありますが、 シャープまたはフラットに少なくとも1列の
ダッシュの各行が同じ長さである限り、各辺にパディングがあります。にとって 例えば、これらはすべて入力 Ab
の許容可能な出力です。
--------- ------ --------- ----------------
b b b b
----b---- ----b- -------b- ------b---------
-b------- -b---- ----b---- ---b------------
b b b b
--------- ------ --------- ----------------
--------- ------ --------- ----------------
シャープまたはフラットを持たないCメジャーの場合、1つの正の数のダッシュ ライン(1つでも)は許容されます。
先行または後続の空白の量は問題ありません。 各行。余分な先頭のスペースは、同じ番号がある限りは大丈夫です 各行に
小文字で入力するか、鋭いまたは平らな入力が後ろのスペースを含んでいることを必要とする場合があります。
Since this is code-golf, the shortest solution in bytes will win.
Charcoal, 60 bytes
≔⁻⁺⊖﹪⊗℅§θ¬χ⁷×⁷№θ#×⁷№θbθ←UO⁹¦⁹-¶Fθ«Jι⊖﹪⊕׳ι⁷#»F±θ«Jι⊕﹪⁺³×⁴ι⁷b
Try it
online! Link is to verbose version of code. Explanation:
≔⁻⁺⊖﹪⊗℅§θ¬χ⁷×⁷№θ#×⁷№θbθ
キーシグネチャのシャープ数を計算します。
←UO⁹¦⁹-¶
最初のシャープ/フラットが列0になるように、原点の1つの四角形を残して、スターブを印刷します。
Fθ«
任意のシャープ上でループします。
Jι⊖﹪⊕׳ι⁷#»
シャープの行を計算し、それを印刷します。
F±θ«
どのフラットでもループしてください。
Jι⊕﹪⁺³×⁴ι⁷b
フラットの行を計算し、それを印刷します。