Frame 1
function start_game(p) {
pat = p;
gotoAndPlay ("reset");
}
stop();
onEnterFrame = function () {
if (getBytesTotal() <= getBytesLoaded()) {
delete onEnterFrame;
start_game(0);
}
};
Frame 13
stop();
Symbol 7 MovieClip [mcBlockOrg] Frame 1
function enable() {
mc_num = Number(_name.slice(2));
delete onRelease;
delete onMouseMove;
onPress = function () {
delete onPress;
ox = _xmouse;
oy = _ymouse;
_parent._parent.click_block(mc_num);
onRelease = function () {
delete onMouseMove;
delete onRelease;
_parent._parent.release_block();
};
onMouseMove = function () {
var _local4 = _xmouse - ox;
var _local2 = _ymouse - oy;
if ((Math.abs(_local4) + Math.abs(_local2)) < 4) {
return(undefined);
}
delete onMouseMove;
delete onRelease;
var _local3 = 0;
ay = 0;
if (_local4 < 0) {
if (_local2 < 0) {
_local3 = -1;
} else {
ay = 1;
}
} else if (_local2 < 0) {
ay = -1;
} else {
_local3 = 1;
}
_parent._parent.move_block(mc_num, _local3, ay);
};
};
}
function disable() {
delete onPress;
delete onRelease;
delete onMouseMove;
}
stop();
w = 1;
h = 1;
Symbol 7 MovieClip [mcBlockOrg] Frame 2
stop();
w = 1;
h = 2;
Symbol 7 MovieClip [mcBlockOrg] Frame 3
stop();
w = 2;
h = 1;
Symbol 7 MovieClip [mcBlockOrg] Frame 4
stop();
w = 2;
h = 2;
Symbol 15 MovieClip Frame 1
stop();
Symbol 19 MovieClip Frame 1
stop();
_visible = false;
Symbol 19 MovieClip Frame 2
stop();
cnt = 0;
onEnterFrame = function () {
cnt++;
_visible = ((cnt % 2) ? true : false);
if (cnt > 12) {
delete onEnterFrame;
}
};
Symbol 28 Button
on (release) {
getURL ("http://www.gamedesign.jp/");
}
Symbol 30 MovieClip Frame 1
cel_size = 40;
xmax = 4;
ymax = 5;
dat0 = "002 104 302 022 123 322 131 231 041 341";
dat1 = "002 104 302 023 223 031 133 331 041 341";
dat2 = "002 104 302 021 121 221 321 031 133 331 041 341";
dat3 = "002 104 302 022 123 322 131 231 041 341";
dat = eval ("dat" + _parent.pat);
a = dat.split(" ");
bmax = a.length;
i = 0;
while (i < bmax) {
mcname = "mc" + i;
mcDraw.attachMovie("mcBlockOrg", mcname, i);
mc = eval ("mcDraw." + mcname);
s = a[i];
mc.bx = Number(s.charAt(0));
mc.by = Number(s.charAt(1));
mc.shape = Number(s.charAt(2));
mc.gotoAndStop(mc.shape);
mc._visible = false;
i++;
}
mcDraw.attachMovie("mcFrameOrg", "mcFrame", i);
mcDraw.mcFrame.swapDepths(200);
sndMove0 = new Sound();
sndMove0.attachSound("on01.wav");
sndMove1 = new Sound();
sndMove1.attachSound("on11.wav");
Symbol 30 MovieClip Frame 2
function draw_block(bn) {
var w = cel_size;
var mc = eval ("mcDraw.mc" + bn);
mc._x = (mc.bx * w) - (mc.by * w);
mc._y = ((mc.bx * w) / 2) + ((mc.by * w) / 2);
mc._visible = true;
}
function swap_depths(fbn, ax, ay) {
var i;
var j;
var block = new Array();
var n = 0;
while (n < bmax) {
var mc = eval ("mcDraw.mc" + n);
block[n] = new Object();
block[n].bx = mc.bx;
block[n].by = mc.by;
block[n].w = mc.w;
block[n].h = mc.h;
if (fbn == n) {
if (ax < 0) {
block[n].bx = block[n].bx - 1;
block[n].w = block[n].w + 1;
}
if (ax > 0) {
block[n].w = block[n].w + 1;
}
if (ay < 0) {
block[n].by = block[n].by - 1;
block[n].h = block[n].h + 1;
}
if (ay > 0) {
block[n].h = block[n].h + 1;
}
}
block[n].dep = (((block[n].bx + block[n].by) + block[n].h) * 10) + block[n].bx;
n++;
}
var cel = new Array();
i = 0;
while (i < ymax) {
cel[i] = new Array();
j = 0;
while (j < xmax) {
cel[i][j] = -1;
j++;
}
i++;
}
var n = 0;
while (n < bmax) {
i = 0;
while (i < block[n].h) {
j = 0;
while (j < block[n].w) {
cel[block[n].by + i][block[n].bx + j] = n;
j++;
}
i++;
}
n++;
}
do {
var flg = 0;
var bn = 0;
while (bn < bmax) {
var ox = block[bn].bx;
if (ox > 0) {
i = 0;
while (i < block[bn].h) {
var oy = (block[bn].by + i);
var n = cel[oy][ox - 1];
if (n >= 0) {
if (block[n].dep > block[bn].dep) {
var tmp = block[n].dep;
block[n].dep = block[bn].dep;
block[bn].dep = tmp;
flg = 1;
}
}
i++;
}
}
var oy = block[bn].by;
if (oy > 0) {
i = 0;
while (i < block[bn].w) {
var ox = (block[bn].bx + i);
var n = cel[oy - 1][ox];
if (n >= 0) {
if (block[n].dep > block[bn].dep) {
var tmp = block[n].dep;
block[n].dep = block[bn].dep;
block[bn].dep = tmp;
flg = 1;
}
}
i++;
}
}
bn++;
}
} while (flg != 0);
var bn = 0;
while (bn < bmax) {
var mc = eval ("mcDraw.mc" + bn);
mc.swapDepths(block[bn].dep);
mc.dep = block[bn].dep;
bn++;
}
}
i = 0;
while (i < bmax) {
draw_block(i);
i++;
}
swap_depths(-1, 0, 0);
Symbol 30 MovieClip Frame 3
stop();
mcFade._alpha = 100;
onEnterFrame = function () {
mcFade._alpha = mcFade._alpha - 10;
if (mcFade._alpha <= 0) {
delete onEnterFrame;
nextFrame();
}
};
Symbol 30 MovieClip Frame 4
function normal_status() {
var i = 0;
while (i < bmax) {
mc = eval ("mcDraw.mc" + i);
mc.enable();
i++;
}
}
function click_block(bn) {
var i = 0;
while (i < bmax) {
if (i == bn) {
} else {
mc = eval ("mcDraw.mc" + i);
mc.disable();
}
i++;
}
mc = eval ("mcDraw.mc" + bn);
}
function release_block() {
normal_status();
}
function move_block(bn, ax, ay) {
var i;
var j;
var cel = new Array();
i = 0;
while (i < ymax) {
cel[i] = new Array();
j = 0;
while (j < xmax) {
cel[i][j] = -1;
j++;
}
i++;
}
var n = 0;
while (n < bmax) {
if (n == bn) {
} else {
var mc = eval ("mcDraw.mc" + n);
i = 0;
while (i < mc.h) {
j = 0;
while (j < mc.w) {
cel[mc.by + i][mc.bx + j] = n;
j++;
}
i++;
}
}
n++;
}
var f = 0;
var mc = eval ("mcDraw.mc" + bn);
if (ax < 0) {
var dx = (mc.bx + ax);
if (dx < 0) {
f = 1;
} else {
i = 0;
while (i < mc.h) {
if (cel[mc.by + i][dx] >= 0) {
f = 1;
}
i++;
}
}
}
if (ax > 0) {
var dx = (((mc.bx + ax) + mc.w) - 1);
if (dx >= xmax) {
f = 1;
} else {
i = 0;
while (i < mc.h) {
if (cel[mc.by + i][dx] >= 0) {
f = 1;
}
i++;
}
}
}
if (ay < 0) {
var dy = (mc.by + ay);
if (dy < 0) {
f = 1;
} else {
i = 0;
while (i < mc.w) {
if (cel[dy][mc.bx + i] >= 0) {
f = 1;
}
i++;
}
}
}
if (ay > 0) {
var dy = (((mc.by + ay) + mc.h) - 1);
if (dy >= ymax) {
f = 1;
} else {
i = 0;
while (i < mc.w) {
if (cel[dy][mc.bx + i] >= 0) {
f = 1;
}
i++;
}
}
}
move_bn = bn;
if ((((mc.shape == 4) && (mc.bx == 1)) && (mc.by == (ymax - 2))) && (ay == 1)) {
var mc = eval ("mcDraw.mc" + move_bn);
mc.swapDepths(201);
i = 0;
while (i < bmax) {
var mc = eval ("mcDraw.mc" + i);
if ((mc.bx == 3) && (mc.by == 2)) {
mc.swapDepths(202);
}
if ((mc.bx == 3) && (mc.by == 3)) {
mc.swapDepths(203);
}
if ((mc.bx == 3) && (mc.by == 4)) {
mc.swapDepths(204);
}
i++;
}
cnt = 0;
onEnterFrame = function () {
var mc = eval ("mcDraw.mc" + move_bn);
mc._x = mc._x - 8;
mc._y = mc._y + 4;
cnt++;
if (cnt > 16) {
delete onEnterFrame;
mcClear.gotoAndStop(2);
}
};
return(undefined);
}
if (f) {
normal_status();
return(undefined);
}
swap_depths(bn, ax, ay);
mc.bx = mc.bx + ax;
mc.by = mc.by + ay;
var w = cel_size;
mc.dx = (mc.bx * w) - (mc.by * w);
mc.dy = ((mc.bx * w) / 2) + ((mc.by * w) / 2);
var i = 0;
while (i < bmax) {
mc = eval ("mcDraw.mc" + i);
mc.disable();
i++;
}
switch (Math.floor(Math.random() * 5)) {
case 0 :
sndMove0.start();
break;
default :
sndMove1.start();
}
move_bn = bn;
onEnterFrame = function () {
var mc = eval ("mcDraw.mc" + move_bn);
var ax = (((mc.dx - mc._x) * 4) / 5);
var ay = (((mc.dy - mc._y) * 4) / 5);
mc._x = mc._x + ax;
mc._y = mc._y + ay;
if ((Math.abs(mc._x - mc.dx) < 1) && (Math.abs(mc._y - mc.dy) < 1)) {
delete onEnterFrame;
draw_block(bn);
normal_status();
}
};
}
stop();
bt0.onRelease = function () {
_parent.start_game(0);
};
bt1.onRelease = function () {
_parent.start_game(1);
};
bt2.onRelease = function () {
_parent.start_game(2);
};
bt3.onRelease = function () {
_parent.start_game(3);
};
bt4.onRelease = function () {
_parent.start_game(4);
};
bt5.onRelease = function () {
_parent.start_game(5);
};
normal_status();