Frame 3
stop();
Frame 11
stop();
Symbol 6 MovieClip [mcMarkOrg] Frame 1
stop();
_visible = false;
Symbol 6 MovieClip [mcMarkOrg] Frame 2
stop();
_visible = true;
Symbol 6 MovieClip [mcMarkOrg] Frame 3
stop();
_visible = true;
Symbol 6 MovieClip [mcMarkOrg] Frame 13
stop();
_visible = true;
Symbol 9 MovieClip [mcBallOrg] Frame 1
stop();
_visible = false;
Symbol 9 MovieClip [mcBallOrg] Frame 2
stop();
_visible = true;
delete onEnterFrame;
Symbol 9 MovieClip [mcBallOrg] Frame 3
stop();
_visible = true;
mc._yscale = 80;
mc._xscale = 120;
oy = mc._y;
c = 0;
onEnterFrame = function () {
c++;
mc._y = (oy - 50) - (Math.sin((Math.PI * c) / 6) * 20);
mc._yscale = 100;
mc._xscale = 100;
};
Symbol 25 MovieClip Frame 1
stop();
if (_root.lang > 0) {
gotoAndStop (2);
}
Symbol 26 MovieClip Frame 1
stop();
btStart.onRelease = function () {
_parent.gotoAndStop("game");
};
xmax = 7;
ymax = 4;
cpos = new Array();
i = 0;
while (i < ymax) {
cpos[i] = new Array();
i++;
}
sc = new Array();
cx = 0;
cy = 200;
cz = 400;
bh = 50;
syw = 26;
i = 0;
while (i < ymax) {
vz = 0;
vy = 30 + (i * syw);
j = 0;
while (j < xmax) {
cpos[i][j] = new Object();
w = 70;
vx = (((-(xmax - 0.5)) * w) / 2) + (j * w);
if (i % 2) {
vx = vx + (w / 2);
}
cpos[i][j].dx = 300 + ((vx * cy) / (vy + cy));
cpos[i][j].dy = 300 - ((cz * vy) / (vy + cy));
j++;
}
dy1 = (vy * cz) / (vy + cy);
dy2 = ((vy * (cz - w)) / (vy + cy)) + w;
dy3 = ((vy + syw) * cz) / ((vy + syw) + cy);
sc[i] = new Object();
sc[i].w = dy2 - dy1;
sc[i].h = dy3 - dy1;
i++;
}
c = 0;
i = 0;
while (i < ymax) {
j = 0;
while (j < xmax) {
mcName = (("mark_" + j) + "_") + i;
mcDraw.attachMovie("mcMarkOrg", mcName, 200 - c);
mc = eval ((("mcDraw.mark_" + j) + "_") + i);
mc._x = cpos[i][j].dx;
mc._y = cpos[i][j].dy;
mc._xscale = sc[i].w;
mc._yscale = sc[i].h;
mc.gotoAndStop(3);
mcName = (("ball_" + j) + "_") + i;
mcDraw.attachMovie("mcBallOrg", mcName, 400 - c);
mc = eval ((("mcDraw.ball_" + j) + "_") + i);
mc._x = cpos[i][j].dx;
mc._y = cpos[i][j].dy;
mc._xscale = sc[i].w;
mc._yscale = sc[i].w;
if ((Math.random() * 3) < 1) {
mc.gotoAndStop(2);
}
c++;
j++;
}
i++;
}
Symbol 30 Button
on (release) {
getURL ("http://www.gamedesign.jp/");
}
Symbol 33 MovieClip Frame 1
function draw_time() {
tf.text = "Time " + rest_time;
}
function start_timer(t) {
_visible = true;
start_rest_time = (rest_time = t);
draw_time();
st = getTimer();
sec = 0;
onEnterFrame = function () {
var _local2 = Math.floor((getTimer() - st) / 1000);
if (_local2 == sec) {
return(undefined);
}
sec = _local2;
rest_time = start_rest_time - sec;
draw_time();
if (rest_time == 0) {
delete onEnterFrame;
_parent.start_gameover();
}
};
}
function stop_timer() {
delete onEnterFrame;
}
function get_rest() {
return(rest_time);
}
stop();
_visible = false;
Symbol 37 Button
on (release) {
_parent.next_stage();
}
Symbol 41 MovieClip Frame 1
Symbol 41 MovieClip Frame 11
stop();
Symbol 45 Button
on (release) {
_parent._parent.gotoAndStop("title");
}
Symbol 47 Button
on (release) {
gotoAndStop ("rank");
}
Symbol 59 Button
on (release) {
_parent._parent._parent.gotoAndStop("title");
}
Symbol 60 MovieClip Frame 1
stop();
score = Number(_parent._parent.stage_no);
ranker = new Array();
RANK_MAX = 10;
i = 0;
while (i < RANK_MAX) {
ranker[i] = new Object();
i++;
}
CGIFile = "hisc.cgi?" + Math.floor(Math.random() * 1000);
myLoadVars = new LoadVars();
myLoadVars.onLoad = function (success) {
var _local1;
_local1 = 0;
while (_local1 < RANK_MAX) {
ranker[_local1].playername = myLoadVars["name" + _local1];
ranker[_local1].score = myLoadVars["score" + _local1];
_local1++;
}
rank_in = false;
_local1 = 0;
while (_local1 < RANK_MAX) {
if (score > Number(myLoadVars["score" + _local1])) {
rank_in = true;
}
_local1++;
}
if (rank_in) {
gotoAndStop ("entry");
} else {
gotoAndStop ("display");
}
};
myLoadVars.load(CGIFile);
Symbol 60 MovieClip Frame 9
stop();
btEntry.onRelease = function () {
playername = tfName.text;
if (playername.length > 20) {
playername = playername.slice(0, 20);
}
gotoAndStop ("save");
};
Symbol 60 MovieClip Frame 16
stop();
CGIFile = "hisc.cgi?" + Math.floor(Math.random() * 1000);
mySaveVars = new LoadVars();
mySaveVars.score = score;
mySaveVars.playername = playername;
myLoadVars = new LoadVars();
myLoadVars.onLoad = function (success) {
var _local1;
_local1 = 0;
while (_local1 < RANK_MAX) {
ranker[_local1].playername = myLoadVars["name" + _local1];
ranker[_local1].score = myLoadVars["score" + _local1];
_local1++;
}
gotoAndStop ("display");
};
mySaveVars.sendAndLoad(CGIFile, myLoadVars, "POST");
Symbol 60 MovieClip Frame 22
stop();
i = 0;
while (i < RANK_MAX) {
mc = eval ("mc" + i);
mc.tfRank.text = i + 1;
if (i == 0) {
mc.tfRank.text = "Top";
}
mc.tfName.text = ranker[i].playername;
mc.tfScore.text = ranker[i].score;
i++;
}
Symbol 61 MovieClip Frame 1
Symbol 61 MovieClip Frame 24
stop();
Symbol 61 MovieClip Frame 32
stop();
Symbol 62 MovieClip Frame 1
tfStage.text = "";
xmax = 7;
ymax = 7;
cpos = new Array();
i = 0;
while (i < ymax) {
cpos[i] = new Array();
i++;
}
sc = new Array();
cx = 0;
cy = 800;
cz = 1600;
bh = 50;
syw = 26;
i = 0;
while (i < ymax) {
vz = 0;
vy = 30 + (i * syw);
j = 0;
while (j < xmax) {
cpos[i][j] = new Object();
w = 70;
vx = (((-(xmax - 0.5)) * w) / 2) + (j * w);
if (i % 2) {
vx = vx + (w / 2);
}
cpos[i][j].dx = 300 + ((vx * cy) / (vy + cy));
cpos[i][j].dy = 440 - ((cz * vy) / (vy + cy));
j++;
}
dy1 = (vy * cz) / (vy + cy);
dy2 = ((vy * (cz - w)) / (vy + cy)) + w;
dy3 = ((vy + syw) * cz) / ((vy + syw) + cy);
sc[i] = new Object();
sc[i].w = dy2 - dy1;
sc[i].h = dy3 - dy1;
i++;
}
c = 0;
i = 0;
while (i < ymax) {
j = 0;
while (j < xmax) {
mcName = (("mark_" + j) + "_") + i;
mcDraw.attachMovie("mcMarkOrg", mcName, 200 - c);
mc = eval ((("mcDraw.mark_" + j) + "_") + i);
mc._x = cpos[i][j].dx;
mc._y = cpos[i][j].dy;
mc._xscale = sc[i].w;
mc._yscale = sc[i].h;
mcName = (("ball_" + j) + "_") + i;
mcDraw.attachMovie("mcBallOrg", mcName, 400 - c);
mc = eval ((("mcDraw.ball_" + j) + "_") + i);
mc._x = cpos[i][j].dx;
mc._y = cpos[i][j].dy;
mc._xscale = sc[i].w;
mc._yscale = sc[i].w;
c++;
j++;
}
i++;
}
sndPick = new Sound();
sndPick.attachSound("jump3.wav");
sndPut = new Sound();
sndPut.attachSound("s0.WAV");
Symbol 62 MovieClip Frame 2
function make_map() {
var _local5;
var _local1;
_local5 = 0;
while (_local5 < ymax) {
_local1 = 0;
while (_local1 < xmax) {
cel[_local5][_local1].ball = 0;
cel[_local5][_local1].mark = 0;
_local1++;
}
_local5++;
}
var _local12 = 1 + Math.floor(Math.random() * (xmax - 2));
var _local11 = 1 + Math.floor(Math.random() * (ymax - 2));
var _local19 = _local12;
var _local18 = _local11;
cel[_local11][_local12].ball = 1;
cel[_local11][_local12].mark = 2;
_local5 = 0;
while (_local5 < ball_max) {
var _local17 = new Array();
var _local8 = 0;
_local1 = 0;
while (_local1 < 6) {
if (next_cel(_local12, _local11, _local1)) {
if (next_next_cel(_local12, _local11, _local1)) {
_local17[_local8] = _local1;
_local8++;
}
}
_local1++;
}
if (_local8 == 0) {
break;
}
cel[_local11][_local12].ball = 0;
var _local14 = Math.floor(Math.random() * _local8);
var _local13 = _local17[_local14];
var _local10 = _local12;
var _local9 = _local11;
_local1 = 0;
while (_local1 < 2) {
var _local7 = next_x(_local10, _local9, _local13);
var _local6 = next_y(_local10, _local9, _local13);
cel[_local6][_local7].mark = 1;
cel[_local6][_local7].ball = 1;
_local10 = _local7;
_local9 = _local6;
_local1++;
}
var _local16 = new Array();
var _local15 = new Array();
var _local4 = 0;
var _local3 = 0;
while (_local3 < ymax) {
var _local2 = 0;
while (_local2 < xmax) {
if (cel[_local3][_local2].ball) {
_local16[_local4] = _local2;
_local15[_local4] = _local3;
_local4++;
}
_local2++;
}
_local3++;
}
if (_local4 == 0) {
break;
}
_local14 = Math.floor(Math.random() * _local4);
_local12 = _local16[_local14];
_local11 = _local15[_local14];
_local5++;
}
cel[_local18][_local19].mark = 2;
}
function next_x(cx, cy, d) {
var _local1;
if ((cy % 2) == 0) {
_local1 = cx + addx0[d];
} else {
_local1 = cx + addx1[d];
}
return(_local1);
}
function next_y(cx, cy, d) {
var _local1 = cy + addy[d];
return(_local1);
}
function next_cel(ox, oy, d) {
var _local2 = next_x(ox, oy, d);
if ((_local2 < 0) || (_local2 >= xmax)) {
return(0);
}
var _local1 = next_y(ox, oy, d);
if ((_local1 < 0) || (_local1 >= ymax)) {
return(0);
}
if (cel[_local1][_local2].ball) {
return(0);
}
return(1);
}
function next_next_cel(ox, oy, d) {
var _local5 = next_x(ox, oy, d);
var _local4 = next_y(ox, oy, d);
var _local2 = next_x(_local5, _local4, d);
if ((_local2 < 0) || (_local2 >= xmax)) {
return(0);
}
var _local1 = next_y(_local5, _local4, d);
if ((_local1 < 0) || (_local1 >= ymax)) {
return(0);
}
if (cel[_local1][_local2].ball) {
return(0);
}
return(1);
}
stage_no = 1;
ball_max = 4;
rest_time = 60;
cel = new Array();
i = 0;
while (i < ymax) {
cel[i] = new Array();
j = 0;
while (j < xmax) {
cel[i][j] = new Object();
j++;
}
i++;
}
his = new Array();
his_c = 0;
addx0 = [1, 0, -1, -1, -1, 0];
addx1 = [1, 1, 0, -1, 0, 1];
addy = [0, 1, 1, 0, -1, -1];
Symbol 62 MovieClip Frame 3
function normal_status(clickable) {
var i;
var j;
i = 0;
while (i < ymax) {
j = 0;
while (j < xmax) {
var mcm = eval ((("mcDraw.mark_" + j) + "_") + i);
var m = cel[i][j].mark;
if (m) {
if (m == 2) {
mcm.gotoAndStop(2);
} else {
mcm.gotoAndStop(3);
}
} else {
mcm.gotoAndStop(1);
}
var mcb = eval ((("mcDraw.ball_" + j) + "_") + i);
if (cel[i][j].ball) {
mcb.gotoAndStop(2);
if (clickable) {
mcb.onPress = function () {
start_float(this._name);
};
mcm.onPress = function () {
start_float(this._name);
};
} else {
delete mcb.onPress;
delete mcm.onPress;
}
} else {
mcb.gotoAndStop(1);
delete mcm.onPress;
}
j++;
}
i++;
}
if (clickable) {
} else {
delete mcBG.onPress;
}
}
function start_float(n) {
var a = n.split("_");
ball_x = Number(a[1]);
ball_y = Number(a[2]);
var i;
var j;
i = 0;
while (i < ymax) {
j = 0;
while (j < xmax) {
if (cel[i][j].ball) {
var mcb = eval ((("mcDraw.ball_" + j) + "_") + i);
var mcm = eval ((("mcDraw.mark_" + j) + "_") + i);
delete mcb.onPress;
delete mcm.onPress;
if ((j == ball_x) && (i == ball_y)) {
mcb.gotoAndStop(3);
}
}
j++;
}
i++;
}
i = 0;
while (i < ymax) {
j = 0;
while (j < xmax) {
if ((cel[i][j].mark > 0) && (cel[i][j].ball == 0)) {
var mcm = eval ((("mcDraw.mark_" + j) + "_") + i);
delete mcm.onPress;
if (cel[i][j].mark == 2) {
mcm.gotoAndStop(2);
} else {
mcm.gotoAndStop(3);
}
}
j++;
}
i++;
}
var cx = ball_x;
var cy = ball_y;
var d = 0;
while (d < 6) {
if (next_next_cel(cx, cy, d)) {
var nx = next_x(cx, cy, d);
var ny = next_y(cx, cy, d);
if (cel[ny][nx].ball > 0) {
var nx2 = next_x(nx, ny, d);
var ny2 = next_y(nx, ny, d);
if (cel[ny2][nx2].mark > 0) {
var mcm = eval ((("mcDraw.mark_" + nx2) + "_") + ny2);
mcm.onPress = function () {
start_jump(this._name);
};
mcm.gotoAndStop("jump_ok");
mcm.dir = d;
}
}
}
d++;
}
sndPick.start();
}
function start_jump(n) {
var a = n.split("_");
var dx = Number(a[1]);
var dy = Number(a[2]);
var mcm = eval ((("mcDraw.mark_" + dx) + "_") + dy);
var nx = next_x(ball_x, ball_y, mcm.dir);
var ny = next_y(ball_x, ball_y, mcm.dir);
cel[ball_y][ball_x].ball = 0;
cel[ny][nx].ball = 0;
cel[dy][dx].ball = 1;
his[his_c] = new Object();
his[his_c].bx = ball_x;
his[his_c].by = ball_y;
his[his_c].nx = nx;
his[his_c].ny = ny;
his[his_c].dx = dx;
his[his_c].dy = dy;
his_c++;
sndPut.start();
if (check_clear()) {
normal_status(0);
mcTimer.stop_timer();
gotoAndStop ("clear");
} else {
normal_status(1);
}
}
function check_clear() {
var _local2;
var _local1;
var _local3 = 0;
_local2 = 0;
while (_local2 < ymax) {
_local1 = 0;
while (_local1 < xmax) {
if (cel[_local2][_local1].ball) {
_local3++;
if (_local3 > 1) {
return(0);
}
if (cel[_local2][_local1].mark == 1) {
return(0);
}
}
_local1++;
}
_local2++;
}
return(1);
}
function start_gameover() {
normal_status(0);
mcTimer.stop_timer();
gotoAndStop ("gameover");
}
stop();
make_map();
his_c = 0;
tfStage.text = "Stage " + stage_no;
mcTimer.start_timer(rest_time);
normal_status(1);
mcBG.useHandCursor = false;
mcBG.onPress = function () {
normal_status(1);
};
btUndo.onRelease = function () {
if (his_c == 0) {
return(undefined);
}
his_c--;
var _local4 = his[his_c].bx;
var _local3 = his[his_c].by;
var _local6 = his[his_c].nx;
var _local5 = his[his_c].ny;
var _local2 = his[his_c].dx;
var _local1 = his[his_c].dy;
cel[_local1][_local2].ball = 0;
cel[_local5][_local6].ball = 1;
cel[_local3][_local4].ball = 1;
normal_status(1);
};
btQuit.onRelease = function () {
_parent.gotoAndStop("title");
};
listener = new Object();
listener.onKeyDown = function () {
if (Key.isDown(32)) {
start_gameover();
}
};
Key.addListener(listener);
Symbol 62 MovieClip Frame 10
function next_stage() {
stage_no++;
ball_max++;
rest_time = mcTimer.rest_time + 15;
gotoAndStop ("play");
}
stop();
Symbol 62 MovieClip Frame 17
stop();