入れ替える処理
プログラム初心者です。AS3.0で書いています
簡単な15面パズルを作りたいです。
15面パズルは解けない配置があるらしいので、ランダムではなく数字の入れ替えを100回くらい行いたいです。この入れ替えの処理をどう書けばいいのか教えてください
スタートボタンを押したときに4つの隣接するマスをランダムに選び、入れ替えを行うようにすればいいらしいのですがどうやって書けばいいのかわかりません(端のマスは例外処理をいれる)
できれば重複もなくしたいです
よろしくお願いします
メインタイムラインには
mc1~mc16のムービークリップ
mcのなかに入れ子で数字が入っています
no1~no16のテキスト
スタートボタン内のasです
var i:int;
var parentObject:Object=Object(parent);
parentObject.sbtn.addEventListener(MouseEvent.CLICK,Mouse_Down);
function Mouse_Down(event:MouseEvent):void
{
for( i = 1 ; i <= 16 ; i++ ) //カード番号の初期化、左上に1右下に16の規則的な配置
{
Object(root)[ "mc" + i ]["no" + i].text = "";
}
for( i = 1 ; i <= 16 ; i++) //配列の初期化クリア
{
//配列の初期化をクリアできる処理
}
//ここにスタートボタンを押したときに4つの隣接するマスをランダムに選び、100回くらい入れ替えができる処理を入れたいです
if( Object(root)[ "mc" + i ]["no" + i].text == 16 )
{
Object(root)[ "mc" + i ]["no" + i].text = ""; //「no16」の表示をクリアして空のマスを作る
Object(root).soeji = i; //数値をクリアした配列の「添え字」を保存
}
}