↑サンプル↑
さらににいくつかASを加えます。
質問や間違いなどは左のメールフォームよりお願いいたします。
フレーム1―スクリプト |
---|
変更なしです。function panelset(){ //function"panelsetを定義" for(_root.x=0;_root.x<=2;_root.x++){ //_root.xが0〜2の間_root.xは増加する for(_root.y=0;_root.y<=2;_root.y++){ //_root.yが0〜2の間_root.xは増加する name="arr"+(_root.y*3+_root.x); //name="arr1"+0〜8の数字 左上が0で右下が8 _root.block.duplicateMovieClip (name,250-(_root.y*3+_root.x),{_x:_root.x*20,_y:_root.y*20}); //"_root.block."= 複製元スプライト //"name" = 生成したスプライト名 //"250-(_root.y*3+_root.x)" = 深度=250−(3y+x)←yは縦何段目かxは横何列目かを示す //{_x:_root.x*20,_y:_root.y*20}) = マスを配置する場所の指定 }//for(_root.y=0;_root.y<=2;_root.y++)にかかる }//for(_root.x=0;_root.x<=2;_root.x++)にかかる }//function panelset()にかかる |
フレーム2−1―スプライト |
スプライトにASを追加+若干変更。on(press){ //このスプライトをクリックしたとき _root.x=this._x/20; //_root.xはこのスプライトのx座標/20 _root.y=this._y/20; //_root.yはこのスプライトのy座標/20 _root.test=this._name; //クリックしたスプライト名をテキスト"test"で表示 switch(_root.arr1[_root.y*3+_root.x]){ //_root.arr1の(_root.y*3+_root.x)番目の値が case 0: //0のとき _root.arr1[_root.y*3+_root.x]=1; //_root.arr1の(_root.y*3+_root.x)番目の値を1にする this.gotoAndPlay("1"); //このスプライトのラベル"1"を再生 break; //処理終了 case 1: _root.arr1[_root.y*3+_root.x]=2; this.gotoAndPlay("2"); break; case 2: _root.arr1[_root.y*3+_root.x]=0; this.gotoAndPlay("0"); break; } } - onClipEvent(enterframe){ //毎フレーム更新ごとに判定 _root.test2="arr1 "+_root.arr1; //on(press){}から移動 この方がうまくいきます。 _root.test3="arr2 "+_root.arr2; //テキスト"test3"でarr2の値を表示 _root.answer="2つは全部一致している"+_root.arranswer; //"テキスト"_root.answer"で_root.arranswerの値(true or false)を表示 for(i=0;i<=8;i++){ //0〜8の間処理を繰り返す if(_root.arr1[i]!==_root.arr2[i]){ //_root.arr1のi番目と_root.arr2のi番目の値が一致しなければ _root.arranswer=false; //変数_root.arranswerはfalse break; //処理終了 } else{ //それ以外の場合 _root.arranswer=true; } } } |
フレーム2−2―スクリプト |
ここも変更なし。_root.panelset(); //function"panelset"呼び出し |
フレーム3―テキスト |
・スプライト名確認用 ・名前はtest |
フレーム4―テキスト |
・_root.arr1のデータの状態確認用 ・名前はtest2 |
フレーム5―テキスト |
・_root.arr1と_root.arr2が一致するか確認 ・名前はanswer |
フレーム6―テキスト |
・_root.arr2のデータの状態確認用 ・名前はtest3 |
フレーム7―停止 |
・停止 |