番号をシャッフルする

このゲームでは1~25までの番号が配列変数randに入っています。この1~25までの数値をランダムに並べ替えて画面に表示します。これは並べ替えというよりも「シャッフル」する処理になります。シャッフルを行う処理ですが、あらかじめ順番に配列変数に値を入れておきます。配列内で入れ替える位置を2つランダムに求めます。この2カ所の値を入れ替えます。これを適当な回数だけ繰り返せばシャッフルすることができます。今回は20回シャッフルしています。

シャッフルが完了したらマス目に配列変数randの値を表示していきます。また、タッチした後にはマス目の背景色をグレーにしているので、最初の段階では白色で表示されるように背景色のスタイルを設定しておきます。

コード03

        function setNumber(){
            for (var i=0; i<maxCount; i++) {    // 数値を順番に配列変数に入れる
                rand[i] = i + 1;
            }
            for (i=0; i<20; i++){   // シャッフル
                var pt1 = Math.floor(Math.random() * rand.length);
                var pt2 = Math.floor(Math.random() * rand.length);
                var n = rand[pt2];
                rand[pt2] = rand[pt1];
                rand[pt1] = n;
            }
            for (i=0; i<maxCount; i++){ // 数値を表示する
                document.getElementById(i).innerHTML = rand[i];
                document.getElementById(i).style.backgroundColor = "#fff";  // 背景色を白にする
            }
        }