編集:これが彼が探していた答えです。マッチに基づいてラウンドを計算するには:
Math.round(match# / 2) + Round-1-match-count
あなたがそれを自分で解決できてうれしいです:]
それを見る別の方法:
ここで問題を再設計しましょう。現在、この種のツリーを適応させているようです
1
5
2
7
3
6
4
そのようなもので、1/2 から 5、3/4 から 6 などを取得するアルゴリズムが必要です。この式を作成できると思いますが、必要以上に複雑になる可能性があります。考えてみると、1/2 は 6 に入る必要はなく、3/4 は 5 に入る必要はありません。実際、次のように見る方がはるかに簡単で正確だと思います。
0a
2a
1a
3a
0b
2b
1b
コードが現在どのようにフォーマットされているかはわかりますが、それらを区別したい場合は、 a と b を実行できます。
今、上に移動するアルゴリズムは
if (spot == 0) {
spot=spot+2; //we'll move it to the next because 0 is the only exception
} else { //if odd
spot=spot+1; //ideally we only need to add one to move to the next bracket
}
parseInt
番号のみを取得するために使用できます。ちょっと待って!それらは同じ番号であるため、どのスロットに行くべきかをどのように知るのでしょうか? そのため、文字を使用できます。文字列の優れた点は、文字列を組み合わせた単なる配列であることです。例:
var word = "Hello";
word[0] = "H";
したがって、次のようにして文字にアクセスできます。そうすることspot[1]
で、a が a に固執し、b が b に固執することを確認できます。お役に立てれば。
ああ、最後にもう 1 つ。3a はどうなのかと疑問に思うかもしれません。そこにbはありません。とにかくそこに手紙が必要かどうかは完全にはわかりませんが、必要な場合は、ab が存在するかどうかを確認するコードを作成できます。そうでない場合は、それが入ることができる唯一の場所であるため、それを a に入れます。