//
//定義
//


//-- 円盤数 --
_global.EnbanCount = 3;

//-- 円盤名 --
var ENBAN1:Number = 0;
var ENBAN2:Number = 1;
var ENBAN3:Number = 2;
var ENBAN4:Number = 3;
var ENBAN5:Number = 4;
var ENBAN6:Number = 5;
var ENBAN7:Number = 6;
var ENBAN8:Number = 7;
var ENBAN9:Number = 8;

//-- 円盤移動量 --
_global.MOVEVALUE = 10;

//-- サーバとの通信ステータス --
_global.comStatus = 'off';

//-- サーバからの応答文字列のオフセット --
var SERVER_OFFSET = 1;

//-- サーバとの通信データ --
_global.seedString = '';

//--------------------------
// 各座標データの変数定義
//--------------------------
//
// ハノイ円盤位置のマトリックス定義
//
//
//   a,1,x,y
//   a,2,x,y
//   a,3,x,y
//   b,1,x,y
//     |
//   c,3,x,y
//
//x座標定義
mtxX = [{pos:'a',x:314.0}
	   ,{pos:'b',x:438.0}
	   ,{pos:'c',x:563.0}];

//y座標定義
mtxY = [{pos:'x',y:145}
	   ,{pos:'9',y:200}
	   ,{pos:'8',y:215}
	   ,{pos:'7',y:230}
	   ,{pos:'6',y:245}
	   ,{pos:'5',y:260}
	   ,{pos:'4',y:275}
	   ,{pos:'3',y:290}
	   ,{pos:'2',y:305}
	   ,{pos:'1',y:320}];

//
//Prologからの円盤移動データ
//
_global.initialPOS = [{from:'a1', to:'a1'}
					,{from:'a2', to:'a2'}
					,{from:'a3', to:'a3'}
					,{from:'a4', to:'a4'}
					,{from:'a5', to:'a5'}
					,{from:'a6', to:'a6'}
					,{from:'a7', to:'a7'}
					,{from:'a8', to:'a8'}
					,{from:'a9', to:'a9'} ];

//
//円盤の現在位置データ
//
_global.currentPOS = [ {pos:''}
					  ,{pos:''}
					  ,{pos:''}
					  ,{pos:''}
					  ,{pos:''}
					  ,{pos:''}
					  ,{pos:''}
					  ,{pos:''}
					  ,{pos:''} ];

//
//円盤の移動先データ
//
_global.nextPOS = [{pos:''}
				  ,{pos:''}
				  ,{pos:''}
				  ,{pos:''}
				  ,{pos:''}
				  ,{pos:''}
				  ,{pos:''}
				  ,{pos:''}
				  ,{pos:''} ];

//
//円盤MCの配列定義
_global.enban = new Array();
_global.enban[0] = enban01;
_global.enban[1] = enban02;
_global.enban[2] = enban03;
_global.enban[3] = enban04;
_global.enban[4] = enban05;
_global.enban[5] = enban06;
_global.enban[6] = enban07;
_global.enban[7] = enban08;
_global.enban[8] = enban09;

//
//-------------------------------
// 初期化処理
//-------------------------------
function initHanoi(){

//
//QAエリアへのスクロールバーの設定
//
QAscroll.setScrolltarget( QA );

}

//-------------------------------
// 円盤の位置を初期化
//-------------------------------
function initEnban(){
	//
	//通信処理停止
	_global.comStatus = 'off';

	//通信データ初期化
	_global.seedString = '';

	//現在位置データ初期化
	initEnbanPosition();

	//
	//円盤表示初期化
	for( i=0; i< _global.EnbanCount; i++ ){
		//表示初期化
		_global.enban[ i ]._x = getMtx( _global.currentPOS[ i ].pos.charAt(0,1), 'x' );
		_global.enban[ i ]._y = getMtx( _global.currentPOS[ i ].pos.charAt(1,1), 'y' );
	}

	//
	//QAフィールド初期化
	initQAField();

}

//-------------------------------
//QAフィールド初期化
//-------------------------------
function initQAField(){

	QAField = "";

}

//-------------------------------
//円盤位置初期化
//-------------------------------
function initEnbanPosition(){

	for( i=0; i< _global.EnbanCount; i++ ){
		//位置初期化
		_global.currentPOS[i].pos = _global.initialPOS[i].from;
		_global.nextPOS[i].pos = _global.initialPOS[i].from;
	}
}

//-------------------------------
//円盤位置リスタート位置へ
//-------------------------------
function restartEnbanPosition(){

	for( i=0; i< _global.EnbanCount; i++ ){
		_global.nextPOS[i].pos = _global.initialPOS[i].from;
	}

	//
	//prologの通信データを初期化
	_global.comStatus = 'idle';
	_global.seedString = '';

	//
	//QAエリアを初期化
	initQAField()
}

//--------------------------------------
// 絶対座標を得る
// getMtx( 'a', 'x' ) ← a の x座標を取得
// getMtx( '2', 'y' ) ← 2 の y座標を取得
//---------------------------------------
function getMtx(pos:String, xy:String ){

	if( xy == 'x' ){
	//x座標取得
		for( var i in mtxX ){
			if( mtxX[i].pos == pos ){
				return( mtxX[i].x );
			}
		}
	}else{
	//y座標取得
		for( var i in mtxY ){
			if( mtxY[i].pos == pos ){
				return( mtxY[i].y );
			}
		}
	}
return('');
trace( "NG" );
}



