package { /** * マスの作業クラス */ public class MasuWork { public var masuPos:int; public var arrayIndexNum:int; public var cnt:int; public var usedNumArray:Array = new Array(); public var index:int; public var endIndexNumFlag_01:Boolean = false; // 末尾のマスかどうか public var endIndexNumFlag_02:Boolean = false; // 末尾から二番目のマスかどうか public var mixUsedNumArray:Array = new Array(); // 共通、自身の使用インデックス配列を格納する
public function mixUsedNumArrayFunc(commonUsedArr:Array, usedArr:Array):void { for (var i:int = 0; i < commonUsedArr.length; i++ ) { this.mixUsedNumArray.push(commonUsedArr[i]); }
if (usedArr.length != 0) { for (i = 0; i < usedArr.length; i++ ) { this.mixUsedNumArray.push(usedArr[i]); } }
}
}
}
Common.as
package { /** * 共通のクラス */ public class Common { public static var arrayNum:Array = new Array(); public static var usingNumArray:Array = new Array(); public static var masuArray:Array = new Array();
public function Common() {
}
// 回数計算 public static function culcCnt(_arrayIndexNum:int):int { return culcFactorial((Common.arrayNum.length - 1) - _arrayIndexNum); }
// 階乗計算 public static function culcFactorial(num:int):int { var cnt:int = num; while (cnt--) { if (cnt == 0) break; num = num * cnt; }
return num; }
// 検索 : 使用していない配列インデックスを取得する。 public static function search(numArray:Array):int { var indexNum:int; if (numArray.length == 0) { indexNum = 0; return indexNum; }
for (var i:int = 0; i < Common.arrayNum.length; i++ ) { var hitCnt:int = 0; for (var j:int = 0; j < numArray.length; j++ ) { if (numArray[j] == i) { break; }else { hitCnt++; if (hitCnt == numArray.length) { return i; } } } }