সংগীত বাক্স তৈরি করা


23

আপনার কাজটি হ'ল অক্ষরগুলির একটি ক্রম (সংগীত) ইনপুট হিসাবে (কোনও ফাংশন বা প্রোগ্রামে) নেওয়া, এবং সঙ্গীত বাক্সের মতো দেখতে সংগীতটি মুদ্রণ (বা ফিরে) দেওয়া।

আপনি কেবল অক্ষরগুলি ABCDEFG.()ইনপুট হিসাবে পাবেন এবং ইনপুটটি কখনও খালি হবে না। আপনি যদি এটি চান তবে আপনি ছোট হাতের অক্ষরেও চিঠিগুলি পেতে পারেন।

এটি 3 টি দৈর্ঘ্যের একটি খালি সংগীত বাক্স:

.......
.......
.......

আপনি দেখতে পাচ্ছেন, লাইনগুলি 7 টি অক্ষর দীর্ঘ এবং যেহেতু সঙ্গীত বাক্সটির দৈর্ঘ্য 3, আমাদের কাছে 3 টি লাইন রয়েছে। এখানে কেবল .আছে, যেহেতু সঙ্গীত বাক্সটি খালি রয়েছে। এর মধ্যে কিছু সংগীত রাখি!

প্রথমত, আমরা সংগীত বাক্স তৈরি করি। এই উদাহরণে, ইনপুট হবে CDAG.DAG

দৈর্ঘ্য CDAG.DAG8, সুতরাং আমাদের দৈর্ঘ্য 8 এর একটি সংগীত বাক্স দরকার:

.......
.......
.......
.......
.......
.......
.......
.......

তারপরে, আমরা ইনপুটটি পড়ি, একবারে একটি করে অক্ষর এবং Oতার যথাযথ স্থানে রাখি ।

প্রথম অক্ষরটি হ'ল Cএবং প্রতিটি নোটের অবস্থানটি এর সমান (আমি স্পষ্টতার জন্য স্পেস যুক্ত করেছি):

 A B C D E F G
 . . . . . . .
 . . . . . . .
 (and so on)

যদি ইনপুট চরিত্রটি হয় a . , তবে আমরা কেবল একটি খালি রেখা মুদ্রণ করি.......

সুতরাং, Cসাথে 3 য় অক্ষর হবে। আসুন এটি আমাদের সঙ্গীত বাক্সে শীর্ষে রাখুন:

..O....
.......
.......
.......
.......
.......
.......
.......

আমরা অন্যান্য সমস্ত অক্ষরের জন্য এই প্রক্রিয়াটি পুনরাবৃত্তি করব (বন্ধনীগুলিতে লেখাটি কেবল আপনাকে নোটটি দেখানোর জন্য, এটির আউটপুট নেওয়া উচিত নয়):

..O.... (C)
...O... (D)
O...... (A)
......O (G)
....... (.)
...O... (D)
O...... (A)
......O (G)

সঙ্গীত বাক্সগুলি কীভাবে কাজ করে তার কারণে, যদি আমরা ব্যতীত অন্য কোনও চরিত্র ব্যবহার করি O,. এবং <insert newline here>, যেমন একটি স্থান হিসাবে, আমাদের আউটপুটে, তাহলে এটি সঠিক সঙ্গীত খেলা হবে না!

এটি একটি জ্যা:

(ACE)

এই জ্যোতি আমাদের নোট বাজানোর জন্য নির্দেশ দিচ্ছে A, CএবংE একই সময়ে। জ্যাণ্ডে কখনও বিরতি (অর্থাত্ ক .) থাকবে না।

এভাবেই লেখা হবে:

O.O.O...

এবং এটি সংগীতে এটি প্রদর্শিত হতে পারে: B(ACE)D

আপনি কখনই জ্যাবে না জোর পাবেন না, এটি বৈধ হবে না: (AB(CD)EF)বা এটি:A(B()) এবং জ্যাটি খালি থাকবে না, এটি বৈধ হবে না:A()B

আপনি কখনই কোনও অবৈধ ইনপুট পাবেন না।

উদাহরণ:

B(ACE)D

.O.....
O.O.O..
...O...

B

.O.....

GGABC

......O
......O
O......
.O.....
..O....

...

.......
.......
.......

A..F.C(DA).

O......
.......
.......
.....O.
.......
..O....
O..O...
.......

.(ABCDEF)

.......
OOOOOO.

আউটপুটে ট্রিলিং / শীর্ষস্থানীয় হোয়াইটস্পেস অনুমোদিত।

এটি , সংক্ষিপ্ততম কোডটি জিতেছে!


কোনও সংগীত স্ট্রিংয়ে ()দু'বার থাকতে পারে (যেমন AB(CD)E(FG):) ??
মিঃ এক্সকোডার

@ মিঃ এক্সকোডার হ্যাঁ, এটি পারে।
Okx

আউটপুট অক্ষরের একটি তালিকা / অ্যারে হতে পারে?
রড

@ রড নিশ্চিত করুন, পিপিসি মান হিসাবে
Okx

আমরা কি একই গার্ডায় একই নোট দুটি না পাওয়ার গ্যারান্টিযুক্ত?
বিড়াল বিড়াল

উত্তর:


0

বীচি , 29 বাইট

28 বাইট কোডের, -lপতাকা জন্য +1 ।

'.X7RA_'OMz@?a@`\(\w+.|.`@XL

কমান্ড-লাইন আর্গুমেন্ট হিসাবে লোয়ারকেসে ইনপুট নেয়। এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

                              a is 1st cmdline arg; XL is `[a-z]`; z is lowercase alphabet
             a@`\(\w+.|.`     List of all matches in a of this regex:
                               Either a ( followed by letters followed by another
                               character (i.e. the closing paren), or any one character
                         @XL  For each of those matches, a list of all matches of this
                               regex (effectively, split the match into a list of
                               characters and keep only the lowercase letters)
          z@?                 Find index of each letter in the lowercase alphabet
         M                    To that list of lists of indices, map this function:
'.X7                           Take a string of 7 periods
    RA_                        and replace the characters at all indices in the argument
       'O                      with O
                              Finally, autoprint the resulting list, with each item on
                              its own line (-l flag)

কীভাবে একটি ইনপুট রূপান্তরিত হয় তার একটি নমুনা এখানে:

"b.(ceg)"
["b" "." "(ceg)"]
[["b"] [] ["c" "e" "g"]]
[[1] [] [2 4 6]]
[".O....." "......." "..O.O.O"]

6

পাইথন 2 , 95 94 বাইট

-1 বাইট মান কালি ধন্যবাদ

x=1
for i in input():
 if x:o=['.']*7
 if'@'<i:o[ord(i)-65]='O'
 if'*'>i:x=i>'('
 if x:print o

এটি অনলাইন চেষ্টা করুন! অথবা সমস্ত পরীক্ষার কেস চেষ্টা করে দেখুন

ব্যাখ্যা

'@'<iiএকটি চিঠি কিনা তা পরীক্ষা করা, সঠিক অবস্থানে .দ্বারা প্রতিস্থাপন করা হয় O
'*'>iযদি চেক করা হল i, একটি প্রথম বন্ধনী হলে এটা x=i>'('করা হবে 0উপর xছাপার / ক্লিয়ারিং প্রতিরোধ o, যখন i==')', এটা করা হবে 1উপর xপুনরায় সক্ষম করার মুদ্রণ / ক্লিয়ারিং o
যখন i=='.'কিছুই পরিবর্তন করা হবে না, এবং '.......'মুদ্রিত করা হবে।
চরিত্র আদেশ তাদের ASCII কোড দ্বারা দেওয়া হয়, যেখানে'('<')'<'*'<'.'<'@'<'A'


ওহ আমি সেই মন্তব্যটি মিস করেছি। nvm।
কুইন্টোপিয়া

কমা খানা: ['.']*7। সম্ভবত আপনি যখন টিপল ব্যবহার করছিলেন তখন থেকেই এটি হোল্ডওভার, যার জন্য কমা দরকার। এছাড়াও, আমি ভুল হতে পারি, তবে এটি ['O', '.', '.', '.', '.', '.', '.']প্রতি লাইনে একটি অ্যারে আউটপুট বলে মনে হচ্ছে , এবং আমি নিশ্চিত নই যে এটি অনুমোদিত কিনা?
মূল্য কালি


আপনি বাইট পরিবর্তন উল্লেখ করেছেন এবং আপনার টিআইও লিঙ্কটি পরিবর্তন করেছেন তবে আপনার পোস্টে তালিকাভুক্ত কোডটি এখনও একই: ভি
মান কালি

1
@ ভ্যালিউইঙ্ক ¯ \ _ (ツ) _ / ¯
রড

4

ব্যাচ, 209 বাইট

@set s=%1
@set p=)
@for %%n in (a b c d e f g)do @set %%n=.
:g
@if %s:~,1% lss @ (set "p=%s:~,1%")else set %s:~,1%=O
@set s=%s:~1%
@if %p%==( goto g
@echo %a%%b%%c%%d%%e%%f%%g%
@if not "%s%"=="" %0 %s%

অক্ষর আহরণের এবং লাইন outputting যদি গত প্রতীক দেখা একটি ছিল না করে কাজ করে (


4

রাদা , 97 78 76 বাইট

{search`\(\w+\)|.`|{|c|seq 65,71|{|l|["O"]if[chr(l)in c]else["."]}_;["
"]}_}

এটি অনলাইন চেষ্টা করুন!

এটি একটি বেনাম ফাংশন যা স্ট্রিমের ইনপুটটি পড়ে। এটি এর মতো ব্যবহার করুন:main { f={...}; push("ABCD") | f() }। এটি ইটিএইচ প্রডাকশনগুলির উত্তর থেকে রেজেক্স ব্যবহার করে।

Ungolfed:

{
    search(`\(\w+\)|.`) | for chord do
        seq(ord("A"), ord("G")) | for note do
            if [ chr(note) in chord ] do
                push("O")
            else
                push(".")
            done
        done
        push("\n")
    done
}

পূর্ববর্তী উত্তর:

f s{(s/"(?=([^()]*(\\([^()]*\\))?)*$)")|{|c|seq 65,71|{|l|["O"]if[chr(l)in c]else["."]}_;["
"]}_}

এটি অনলাইন চেষ্টা করুন!

এটি এমন স্ট্রিংগুলিতে এমন জায়গাগুলি বিভক্ত করে কাজ করে যেখানে স্ট্রিংয়ের মধ্যে কেবল মেলে বন্ধনী থাকে। তারপরে, প্রতিটি জ্যাণ্ডের জন্য, এটি সম্ভাব্য নোটগুলির মাধ্যমে পুনরাবৃত্তি করে এবং Oনোটটি কর্ডের সদস্য .হলে এবং অন্যথায় মুদ্রণ করে ।


4

জাভাস্ক্রিপ্ট (ES6), 86 85 76 বাইট

9 নাইট সংরক্ষণ করার জন্য 9 বাইট সংরক্ষণ করা

let f =
s=>s.replace(r=/\(\w+\)|./g,x=>`ABCDEFG
`.replace(r,c=>x.match(c)?"O":"."))
<input oninput="if(/^([A-G.]|\([A-G]+\))+$/.test(value))O.textContent=f(value)"><br>
<pre id=O></pre>

ব্যাখ্যা

প্রথমত, আমরা আউটপুটটির প্রতিটি লাইনটি কী তৈরি করবো তা মিলিয়ে তুলি: জীবাণু এবং চরগুলি যা কোনও জলের অংশ নয়। তারপরে, প্রতিটি লাইনের জন্য, আমরা স্ট্রিংটি নিয়ে থাকি ABCDEFG\nএবং এতে প্রতিটি নন-লাইন অক্ষরকে প্রতিস্থাপন করি Oযদি লাইনটি এতে থাকে এবং .অন্যথায়।


যদি একটি ট্রেলিং নতুনলাইন গ্রহণযোগ্য হয়, আপনি ব্যবহার করে 8 বাইট সংরক্ষণ করতে পারেন s=>s.replace(r=/\(\w+\)|./g,x=>`ABCDEFG\n`.replace(r,c=>x.match(c)?"O":"."))
নীল

@ নীল ওয়াও, এটি আশ্চর্যজনক :-)
ইটিএইচ প্রডাকশনগুলি 10:37

হু, এখন আমি এটি আবার পরিমাপ করছি, এটি 10 ​​বাইট সাশ্রয় হওয়া উচিত ...
নীল

হতে \)পারে .?
l4m2

2

জাভাস্ক্রিপ্ট (ES6), 118 116 114 বাইট

f=([c,...t],s)=>c?((s?0:x=[...'.......'],c='ABCDEFG)('.indexOf(c))>6?c-7:(x[c]='O',s))?f(t,1):x.join``+`
`+f(t):''

পরীক্ষার মামলা


2

রুবি, 78 75 71 বাইট

->x{x.scan(/\(\w+\)|./).map{|x|l=?.*7
x.bytes{|x|x>47?l[x-65]=?O:1};l}}

স্ট্রিংগুলির একটি অ্যারে প্রদান করে।

অবহেলিত + ব্যাখ্যা

def boxes string
  string.scan(/\(\w+\)|./)    # Split the string into an array of chords.
  .map do |chord|             # Replace each chord with...
    line = '.' * 7            # a line, where by default each character is a '.',
    chord.bytes do |note|     # but for each note in the chord...
      if note > '.'.ord       # (if it is in fact a note and not a dot or paren)
        line[note-65] = 'O'   # replace the corresponding dot with an 'O'.
      end
    end
    line               
  end
end

3 বাইট সংরক্ষণ করতে এবং এর পরিবর্তে একাধিক-লাইনের স্ট্রিং ফিরিয়ে আনার চেষ্টা করুন x.gsub(...){l=?.*7;$&.bytes{...};l+$/}( সর্বশেষে রেজিেক্স ম্যাচটি অ্যাক্সেস করতে আপনি ব্যবহার করতে পারবেন বলে প্রথমটি scanদিয়ে gsubসরিয়ে ফেলুন, সরান mapএবং এড়িয়ে যান)। (এছাড়াও ডিফল্ট হিসাবে একটি নতুন লাইনে মানচিত্র।)|x|$&$/
মান কালি

1

পিএইচপি, 171 বাইট

preg_match_all('#[A-G\.]|\([A-G]+\)#',$argv[1],$m);foreach($m[0]as$l){if($l=='.')echo".......";else foreach([A,B,C,D,E,F,G]as$a)echo strpos($l,$a)!==false?O:'.';echo"\n";}

ভাঙ্গন:

preg_match_all('#[A-G\.]|\([A-G]+\)#',$argv[1],$m); // Matches either one character in the range [A-G.] OR multiple [A-G] characters between parentheses
foreach($m[0]as$l)                                  // For each match :
    if($l=='.')                                     //   If no note is played
        echo".......";                              //     Echo empty music line
    else                                            //   Else
        foreach([A,B,C,D,E,F,G]as$a)                //     For each note in the [A-G] range
            echo strpos($l,$a)!==false?O:'.';       //       Echo O i the note is played, . if not
    echo"\n";                                       //  Echo new line
}

এখানে চেষ্টা করুন!


1

রেটিনা , 120 বাইট

O`(?<=\([^)]*)[^)]
T`L.`d
(?<=\([^)]*)\d
$*x 
\)
m¶
+`\b(x+) \1(x+) m
$1 m$2 
 m?x

T`x m(`.\O_
\d
$*.O¶
¶
6$*.¶
%7>`.

আমি নিশ্চিত গল্ফ করার জন্য জায়গা আছে তবে এটি এখন কাজ করে, তাই আমি আরও পরে গল্ফ দেওয়ার চেষ্টা করব।

এটি অনলাইন চেষ্টা করুন!

কিভাবে এটা কাজ করে

মূলত, প্রোগ্রামটি প্রতিটি চরিত্রকে একটি সংখ্যায় পরিবর্তন করে, তারপরে Oএকটি লাইনে একটি অবস্থান নির্ধারণ করে কাজ করে । মানচিত্রের ABCDEFG.জন্য01234569

একক নোট লাইন তৈরি করতে, যা করতে হবে তা হল Oসংশ্লিষ্ট সংখ্যার পরে একটি স্থাপন করা put. , তারপরে লাইনটি characters অক্ষর দীর্ঘকে প্যাড করা।

যাইহোক, chords করতে কিছুটা কৌশলযুক্ত। একটি অনুরূপ প্রক্রিয়া ব্যবহৃত হয়, তবে সংখ্যাগুলি ইনক্রিমেন্টে অনুবাদ করতে হয়, যেমন জ্যাজে প্রথম নোটটি (যাই হোক না কেন), দ্বিতীয়টি প্রথমটির পরে এক্স অবস্থান, তৃতীয়টি তার পরে ওয়াই পজিশন ইত্যাদি etc.

কোড

O`(?<=\([^)]*)[^)]

জমিগুলির মধ্যে সমস্ত অক্ষর বাছাই করে শুরু করুন।

T`L.`d

বর্ণগুলি থেকে সংখ্যায় প্রতিবর্ণ (ম্যাপিং) সম্পাদন করুন।

(?<=\([^)]*)\d
$*x 

ব্র্যাককেটের মধ্যে সমস্ত অঙ্ককে একটি অ্যানারি উপস্থাপনা ( xগুলি ব্যবহার করে ) এর পরে স্থানের পরে প্রতিস্থাপন করুন ।

\)
m¶

সমস্ত লেনদেন বন্ধনীর সাথে mএকটি নতুন লাইন অনুসরণ করুন। mআসছে লুপ জন্য মন্দের একটা মার্কার হিসেবে ব্যবহার করা হবে:

+`\b(x+) \1(x+) m
$1 m$2 

এটি একটি প্রতিস্থাপনের পর্যায়ে যা আর প্রতিস্থাপন না করা অবধি লুপ হয় can't এটি xএকটি এর আগে এর শেষ দুটি সিকোয়েন্স নেয় mএবং দ্বিতীয়টি থেকে প্রথমটি বিয়োগ করে, mপিছনে সরে যায় । চিহ্নিতকারীটি mপ্রয়োজন কারণ এটি ডান থেকে বামে এই অপারেশন করতে হবে।

 m?x

প্রথমটি xবাদে প্রতিটি অনুক্রমের প্রথমটি সরান ।

T`x m(`.\O_

Tস্থান পরিবর্তন xকরে এবং মুছে ফেলার মাধ্যমে ransliterate.Om এবং(

এই মুহুর্তে, chords জন্য সমস্ত লাইন তৈরি করা হয়েছে। এখন একক নোট লাইন তৈরি করতে হবে।

\d
$*.O¶

প্রতিটি ডিজিটকে অনেকগুলি এবং .এর পরে একটি Oএবং একটি নতুন লাইন দ্বারা প্রতিস্থাপন করুন ।

¶
6$*.¶
%7>`.

.ডানদিকে গুলি যোগ করে প্রতিটি লাইন 7 পাদদেশে প্যাড করুন । এটি .প্রতিটি লাইনের শেষে 6 টি যোগ করে (প্রতিটি লাইনে কমপক্ষে 1 টি অন্যান্য অক্ষর থাকবে) কাজ করে, তারপরে প্রতিটি লাইনে প্রথম 7 এর পরে কোনও কিছুই না করে প্রতিস্থাপন করে। (যেহেতু .9 এর মানচিত্র, Oসেই লাইনগুলি বাদ দেওয়া হবে)



0

পার্ল 5 - 78 + 1 (পতাকা) + 2 (ইনপুট কোটস) = 81 বাইট

for(;/(\([a-g]+\)|[a-g\.])/g;){$i=$1;print$i=~/$_/?'o':'.'for(a..g);print"\n"}

এভাবে চালানো যেতে পারে:

perl -n <name of file holding script> <<< <input in quotations>

আপনি কি ভাবেন না যে উদ্ধৃতিগুলিতে ইনপুটটি 2 টি অতিরিক্ত বাইট হিসাবে গণনা করবে? আমি ভুল হতে পারি, কারণ এই বিবৃতিতে অন্যথায় মেটা conকমত্য থাকতে পারে।
Okx

@ ওকএক্স আমার বাইকাউন্ট আপডেট করেছে। নিশ্চিত যদি এটি এখনও ধরণ নতুন এখানে এটা এ যোগ করেছেন :) ছিল না
CraigR8806

0

রুবি, 68 বাইট

->s{w=?.*m=7
s.bytes{|i|i>64?w[i-65]=?O:m=i!=40;m&&(puts w;w=?.*7)}}

ধারণাটি হ'ল .......প্রতিবারই আমরা কোনও চিঠি পাই, তারপরে স্ট্রিংটি সংশোধন করা , তারপরে আউটপুট এবং পুনরায় সেট করা, তবে কেবল যখন আমরা বন্ধনীগুলির বাইরে থাকি। (আউটপুটটিং বন্ধ করে দেয়।)এবং .উভয়ই আউটপুটটিংটি স্যুইচ / ছেড়ে দেয়, তবে পরবর্তীতে অসম্পূর্ণ কারণ এটি ব্র্যাকেটের ভিতরে কখনও খুঁজে পাওয়া যায় না।

পরীক্ষা প্রোগ্রামে অসম্পূর্ণ

f=->s{w=?.*m=7              #set m to a truthy value (7) and w to seven .'s
  s.bytes{|i|               #for each byte in the string
    i>64?w[i-65]=?O:m=i!=40 #if a letter, modify the appropriate character of w ELSE set m to false if inside brackets, true otherwise.
    m&&(puts w;w=?.*7)      #if m is true, output the contents of w and reset to seven .'s
  }
}

p 1
f["B(ACE)D"]
p 2
f["B"]
p 3
f["GGABC"]
p 4
f["A..F.C(DA)."]
p 5
f[".(ABCDEF)"]

0

পাইথন 3, 94 বাইট

একটি বেনামে ফাংশন

import re
lambda s:[''.join('.O'[c in x]for c in'ABCDEFG')for x in re.findall(r'\(\w+\)|.',s)]

0

হাস্কেল , 101 বাইট

c#s|elem c s=c|1<3='.'
s?r=map(#s)"ABCDEFG":p r
p('(':r)|(x,_:t)<-span(')'<)r=x?t
p(x:r)=[x]?r
p e=[]

এটি অনলাইন চেষ্টা করুন! ব্যবহার: p "AB.(CA)D"। স্ট্রিংগুলির একটি তালিকা ফেরত দেয়।

ব্যাখ্যা:

ফাংশনটি pস্ট্রিংয়ের উপরে পুনরাবৃত্তি করে। এটি যদি একটি খোলার বন্ধনী খুঁজে পায়'(' তারপরে হওয়ার আগে এবং তার পরে (x,_:t)<-span(')'<)rবাকী rস্ট্রিংগুলিকে স্ট্রিংগুলিতে পার্টিশন করুন । অন্যথায় বর্তমান অক্ষরটি একটি স্ট্রিতে পরিণত হয় । উভয় ক্ষেত্রে ফাংশনটি নোটের বর্তমান স্ট্রিং এবং বাকী স্ট্রিং সহ কল ​​করা হয়। স্ট্রিংয়ের উপরে ফাংশনটি মানচিত্র করে , যেখানে বর্তমান সমস্ত নোটের নোটগুলির সাথে নেই এমন সমস্ত অক্ষর প্রতিস্থাপন করে । ফলাফলের সংগীত বাক্সের লাইনটি বাকী তালিকায় পুনরাবৃত্ত কলগুলিতে চাপ দেওয়া হয় ।x')'tx[x]??#"ABCDEFG"#'.'pr


0

রেটিনা 0.8.2 , 52 বাইট

\(\w+\)|.
abcdefg$&¶
+`([a-g])(.*)\1
O$2
T`().l`___.

এটি অনলাইন চেষ্টা করুন! নিম্ন ক্ষেত্রে ইনপুট লাগে। ব্যাখ্যা:

\(\w+\)|.
abcdefg$&¶

সঙ্গীতকে chords বা নোটগুলিতে বিভক্ত করুন এবং নোটের সমতুল্যদের তালিকা যুক্ত করে আউটপুট তৈরি করা শুরু করুন।

+`([a-g])(.*)\1
O$2

প্রতিটি জলের প্রতিটি নোটের জন্য আউটপুটটিকে একটিতে পরিবর্তন করুন O এবং জোট থেকে নোটটি মুছুন।

T`().l`___.

সমস্ত এখন বহির্মুখী সংগীত মুছুন, এবং সমস্ত মিলহীন নোটগুলি খালিটিতে পরিবর্তন করুন।


0

পিএইচপি, 93 বাইট

for($s=$t="
.......";$c=ord($argn[$i++]);$d||$s=$t.!print$s)$c<65?$c-46&&$d=~$c&1:$s[$c&7]=O;

-nRবা সাথে পাইপ হিসাবে চালান করুন এটি অনলাইনে চেষ্টা করুন

ভাঙ্গন

for($s=$t="\n.......";      // init
    $c=ord($argn[$i++]);    // loop through characters
    $d||                        // 2. if chord flag is unset
        $s=$t.!print$s)             // then print and reset chord
    $c<65                       // 1. if not note
        ?$c-46                      // and not dot
            &&$d=~$c&1              // then set or clear chord flag
        :$s[$c&7]=O             // else set note in chord
    ;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.