home *** CD-ROM | disk | FTP | other *** search
- function on_over(pn)
- {
- if(selected_pn < 0)
- {
- draw_curs(pn);
- draw_line(pn);
- }
- }
- function on_click(click_pn)
- {
- if(selected_pn < 0)
- {
- first_click(click_pn);
- _parent.sndClick.start();
- }
- else if(pair_pai[click_pn] == 1)
- {
- his_pat[his_c] = pat[click_pn];
- his_pn1[his_c] = click_pn;
- his_pn2[his_c] = selected_pn;
- his_c++;
- pat[selected_pn] = 0;
- var mc = eval("mcPiece" + selected_pn);
- mc.gotoAndStop(35);
- pat[click_pn] = 0;
- mcSmoke0._x = mc._x;
- mcSmoke0._y = mc._y;
- mcSmoke0.gotoAndPlay(2);
- mc = eval("mcPiece" + click_pn);
- mc.gotoAndStop(35);
- mcSmoke1._x = mc._x;
- mcSmoke1._y = mc._y;
- mcSmoke1.gotoAndPlay(2);
- _parent.sndErase.start();
- selected_pn = -1;
- mcLine.clear();
- draw_curs(click_pn);
- if(his_c * 2 >= pai_max)
- {
- gotoAndStop("clear");
- }
- }
- else
- {
- _parent.sndClick.start();
- selected_pn = -1;
- if(pair_pai[click_pn] == 0)
- {
- draw_curs(click_pn);
- draw_line(click_pn);
- first_click(click_pn);
- }
- else
- {
- draw_curs(click_pn);
- draw_line(click_pn);
- }
- }
- }
- function first_click(click_pn)
- {
- if(pair_pai[click_pn] == 2)
- {
- var i = 0;
- while(i < 4)
- {
- if(curs_pai[i] == click_pn)
- {
- mc = eval("mcCurs" + i);
- mc.gotoAndStop(2);
- }
- i++;
- }
- selected_pn = click_pn;
- }
- }
- function draw_curs(pn)
- {
- var i;
- var c = 0;
- i = 0;
- while(i < 4)
- {
- curs_pai[i] = -1;
- i++;
- }
- if(pat[pn] > 0)
- {
- i = 0;
- while(i < pai_max)
- {
- if(pat[i] == pat[pn])
- {
- curs_pai[c] = i;
- c++;
- }
- i++;
- }
- }
- i = 0;
- while(i < 4)
- {
- var mc = eval("mcCurs" + i);
- var n = curs_pai[i];
- if(n < 0)
- {
- mc._visible = false;
- }
- else
- {
- mc._visible = true;
- mc.gotoAndStop(1);
- var mcPai = eval("mcPiece" + n);
- mc._x = mcPai._x;
- mc._y = mcPai._y;
- }
- i++;
- }
- }
- function draw_line(click_pn)
- {
- var _loc12_ = 0;
- var _loc4_ = undefined;
- _loc4_ = 0;
- while(_loc4_ < pai_max)
- {
- pair_pai[_loc4_] = 0;
- _loc4_ = _loc4_ + 1;
- }
- var _loc14_ = Math.floor(click_pn % 17);
- var _loc13_ = Math.floor(click_pn / 17);
- mcLine.clear();
- mcLine.lineStyle(6,4521728,100);
- _loc4_ = 0;
- while(_loc4_ < 4)
- {
- var _loc1_ = curs_pai[_loc4_];
- if(_loc1_ >= 0)
- {
- if(_loc1_ != click_pn)
- {
- var _loc10_ = check_tate(_loc1_,click_pn);
- if(_loc10_ >= -1)
- {
- _loc12_ = 1;
- pair_pai[_loc1_] = 1;
- var _loc8_ = disp_ox + _loc1_ % xmax * CEL_W + CEL_W / 2;
- var _loc6_ = disp_ox + click_pn % xmax * CEL_W + CEL_W / 2;
- var _loc7_ = disp_oy + Math.floor(_loc1_ / xmax) * CEL_H + CEL_H / 2;
- var _loc5_ = disp_oy + Math.floor(click_pn / xmax) * CEL_H + CEL_H / 2;
- var _loc3_ = disp_oy + _loc10_ * CEL_H + CEL_H / 2;
- if(_loc3_ < _loc7_)
- {
- _loc7_ -= CEL_H / 3;
- }
- if(_loc3_ > _loc7_)
- {
- _loc7_ += CEL_H / 3;
- }
- if(_loc3_ < _loc5_)
- {
- _loc5_ -= CEL_H / 3;
- }
- if(_loc3_ > _loc5_)
- {
- _loc5_ += CEL_H / 3;
- }
- if(_loc3_ == _loc7_)
- {
- if(_loc8_ < _loc6_)
- {
- _loc8_ += CEL_W / 3;
- }
- else
- {
- _loc8_ -= CEL_W / 3;
- }
- }
- if(_loc3_ == _loc5_)
- {
- if(_loc6_ < _loc8_)
- {
- _loc6_ += CEL_W / 3;
- }
- else
- {
- _loc6_ -= CEL_W / 3;
- }
- }
- mcLine.moveTo(_loc8_,_loc7_);
- mcLine.lineTo(_loc8_,_loc3_);
- mcLine.lineTo(_loc6_,_loc3_);
- mcLine.lineTo(_loc6_,_loc5_);
- }
- else
- {
- var _loc11_ = check_yoko(_loc1_,click_pn);
- if(_loc11_ >= -1)
- {
- _loc12_ = 1;
- pair_pai[_loc1_] = 1;
- _loc8_ = disp_ox + _loc1_ % xmax * CEL_W + CEL_W / 2;
- _loc6_ = disp_ox + click_pn % xmax * CEL_W + CEL_W / 2;
- _loc7_ = disp_oy + Math.floor(_loc1_ / xmax) * CEL_H + CEL_H / 2;
- _loc5_ = disp_oy + Math.floor(click_pn / xmax) * CEL_H + CEL_H / 2;
- var _loc2_ = disp_ox + _loc11_ * CEL_W + CEL_W / 2;
- if(_loc2_ < _loc8_)
- {
- _loc8_ -= CEL_W / 3;
- }
- if(_loc2_ > _loc8_)
- {
- _loc8_ += CEL_W / 3;
- }
- if(_loc2_ < _loc6_)
- {
- _loc6_ -= CEL_W / 3;
- }
- if(_loc2_ > _loc6_)
- {
- _loc6_ += CEL_W / 3;
- }
- if(_loc2_ == _loc8_)
- {
- if(_loc7_ < _loc5_)
- {
- _loc7_ += CEL_H / 3;
- }
- else
- {
- _loc7_ -= CEL_H / 3;
- }
- }
- if(_loc2_ == _loc6_)
- {
- if(_loc5_ < _loc7_)
- {
- _loc5_ += CEL_H / 3;
- }
- else
- {
- _loc5_ -= CEL_H / 3;
- }
- }
- mcLine.moveTo(_loc8_,_loc7_);
- mcLine.lineTo(_loc2_,_loc7_);
- mcLine.lineTo(_loc2_,_loc5_);
- mcLine.lineTo(_loc6_,_loc5_);
- }
- }
- }
- }
- _loc4_ = _loc4_ + 1;
- }
- if(_loc12_ == 1)
- {
- pair_pai[click_pn] = 2;
- }
- return _loc12_;
- }
- function check_yoko(pn1, pn2)
- {
- var _loc11_ = -2;
- if(pn1 > pn2)
- {
- var _loc15_ = pn1;
- pn1 = pn2;
- pn2 = _loc15_;
- }
- var _loc16_ = undefined;
- var _loc1_ = undefined;
- var _loc2_ = undefined;
- var _loc10_ = Math.floor(pn1 % xmax);
- var _loc5_ = Math.floor(pn1 / xmax);
- var _loc9_ = Math.floor(pn2 % xmax);
- var _loc4_ = Math.floor(pn2 / xmax);
- if(_loc5_ == _loc4_)
- {
- return _loc11_;
- }
- var _loc7_ = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];
- _loc7_[_loc10_] = 0;
- _loc1_ = _loc10_ - 1;
- while(_loc1_ >= 0)
- {
- if(pat[_loc5_ * xmax + _loc1_] > 0)
- {
- break;
- }
- _loc7_[_loc1_] = 0;
- _loc1_ = _loc1_ - 1;
- }
- _loc1_ = _loc10_ + 1;
- while(_loc1_ < xmax)
- {
- if(pat[_loc5_ * xmax + _loc1_] > 0)
- {
- break;
- }
- _loc7_[_loc1_] = 0;
- _loc1_ = _loc1_ + 1;
- }
- var _loc6_ = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];
- _loc6_[_loc9_] = 0;
- _loc1_ = _loc9_ - 1;
- while(_loc1_ >= 0)
- {
- if(pat[_loc4_ * xmax + _loc1_] > 0)
- {
- break;
- }
- _loc6_[_loc1_] = 0;
- _loc1_ = _loc1_ - 1;
- }
- _loc1_ = _loc9_ + 1;
- while(_loc1_ < xmax)
- {
- if(pat[_loc4_ * xmax + _loc1_] > 0)
- {
- break;
- }
- _loc6_[_loc1_] = 0;
- _loc1_ = _loc1_ + 1;
- }
- var _loc8_ = 99;
- _loc1_ = 0;
- while(_loc1_ < xmax)
- {
- if(!(_loc7_[_loc1_] || _loc6_[_loc1_]))
- {
- var _loc3_ = 1;
- _loc2_ = _loc5_ + 1;
- while(_loc2_ < _loc4_)
- {
- if(pat[_loc2_ * xmax + _loc1_] > 0)
- {
- _loc3_ = 0;
- break;
- }
- _loc2_ = _loc2_ + 1;
- }
- if(_loc3_ == 1)
- {
- var _loc14_ = Math.abs(_loc10_ - _loc1_) + Math.abs(_loc9_ - _loc1_);
- if(_loc14_ < _loc8_)
- {
- _loc8_ = _loc14_;
- _loc11_ = _loc1_;
- }
- }
- }
- _loc1_ = _loc1_ + 1;
- }
- if(_loc7_[0] == 0 && _loc6_[0] == 0)
- {
- _loc14_ = _loc10_ + 1 + _loc9_ + 1;
- if(_loc14_ < _loc8_)
- {
- _loc8_ = _loc14_;
- _loc11_ = -1;
- }
- }
- if(_loc7_[xmax - 1] == 0 && _loc6_[xmax - 1] == 0)
- {
- _loc14_ = xmax - _loc10_ + (xmax - _loc9_);
- if(_loc14_ < _loc8_)
- {
- _loc8_ = _loc14_;
- _loc11_ = xmax;
- }
- }
- return _loc11_;
- }
- function check_tate(pn1, pn2)
- {
- var _loc11_ = -2;
- if(pn1 % xmax > pn2 % xmax)
- {
- var _loc15_ = pn1;
- pn1 = pn2;
- pn2 = _loc15_;
- }
- var _loc16_ = undefined;
- var _loc2_ = undefined;
- var _loc1_ = undefined;
- var _loc5_ = Math.floor(pn1 % xmax);
- var _loc10_ = Math.floor(pn1 / xmax);
- var _loc4_ = Math.floor(pn2 % xmax);
- var _loc9_ = Math.floor(pn2 / xmax);
- if(_loc5_ == _loc4_)
- {
- return _loc11_;
- }
- var _loc7_ = [1,1,1,1,1,1,1,1];
- _loc7_[_loc10_] = 0;
- _loc1_ = _loc10_ - 1;
- while(_loc1_ >= 0)
- {
- if(pat[_loc1_ * xmax + _loc5_] > 0)
- {
- break;
- }
- _loc7_[_loc1_] = 0;
- _loc1_ = _loc1_ - 1;
- }
- _loc1_ = _loc10_ + 1;
- while(_loc1_ < ymax)
- {
- if(pat[_loc1_ * xmax + _loc5_] > 0)
- {
- break;
- }
- _loc7_[_loc1_] = 0;
- _loc1_ = _loc1_ + 1;
- }
- var _loc6_ = [1,1,1,1,1,1,1,1];
- _loc6_[_loc9_] = 0;
- _loc1_ = _loc9_ - 1;
- while(_loc1_ >= 0)
- {
- if(pat[_loc1_ * xmax + _loc4_] > 0)
- {
- break;
- }
- _loc6_[_loc1_] = 0;
- _loc1_ = _loc1_ - 1;
- }
- _loc1_ = _loc9_ + 1;
- while(_loc1_ < ymax)
- {
- if(pat[_loc1_ * xmax + _loc4_] > 0)
- {
- break;
- }
- _loc6_[_loc1_] = 0;
- _loc1_ = _loc1_ + 1;
- }
- var _loc8_ = 99;
- _loc1_ = 0;
- while(_loc1_ < ymax)
- {
- if(!(_loc7_[_loc1_] || _loc6_[_loc1_]))
- {
- var _loc3_ = 1;
- _loc2_ = _loc5_ + 1;
- while(_loc2_ < _loc4_)
- {
- if(pat[_loc1_ * xmax + _loc2_] > 0)
- {
- _loc3_ = 0;
- break;
- }
- _loc2_ = _loc2_ + 1;
- }
- if(_loc3_ == 1)
- {
- var _loc14_ = Math.abs(_loc10_ - _loc1_) + Math.abs(_loc9_ - _loc1_);
- if(_loc14_ < _loc8_)
- {
- _loc8_ = _loc14_;
- _loc11_ = _loc1_;
- }
- }
- }
- _loc1_ = _loc1_ + 1;
- }
- if(_loc7_[0] == 0 && _loc6_[0] == 0)
- {
- _loc14_ = _loc10_ + 1 + _loc9_ + 1;
- if(_loc14_ < _loc8_)
- {
- _loc8_ = _loc14_;
- _loc11_ = -1;
- }
- }
- if(_loc7_[ymax - 1] == 0 && _loc6_[ymax - 1] == 0)
- {
- _loc14_ = ymax - _loc10_ + (ymax - _loc9_);
- if(_loc14_ < _loc8_)
- {
- _loc8_ = _loc14_;
- _loc11_ = ymax;
- }
- }
- return _loc11_;
- }
-