タイトルはほとんどの質問を説明します。
私は2D配列で表されるタイルグリッドを持っています。いくつかのタイルは、空であるとマークされます(ただし、それらはある継続的な使用のために配列に存在します)。他のタイルは通常の状態です。タイルマップ配列を使用して残りのタイル位置をランダムに並べ替えるロジック
グリッド内の残りの(空ではない)タイルを並べ替えると、すべてが(またはほとんど)がで、空ではないポジションになるようにする必要があります。私がすべての空でない位置を繰り返してタイルを別のランダムなものと入れ替えるだけで、私はすでにそれらの多くを自動的に並べ替えているかもしれません(スワップされたもの)。
私は、最小限のループで満足にグリッドを並べ替えることができるいくつかのテクニックがあるのだろうかと思っていました。何かヒント?
ランダムにタイルを交換する必要がありますか?ランダム性が重要でない場合は、1を2,2、3、...、Nで1を1に置き換えて、タイルを1ステップ前に循環させることができます。ランダム性が重要な場合は、** derangement * *の元のタイルをランダムに生成する必要があります。 – templatetypedef
はい、**脱線**は私が欲しいものです!空でないタイルを保存してランダムに配布するのではなく、インプレースでそれを行うことができるかどうか疑問に思っていました。そして、空でない位置だけを使うことができるので、マップからランダムな場所を選んで、空であるかどうかをチェックすることで、非生産的なチェックが多くなる可能性があります。 – eternalthinker