Frame 1
block = "candy";
x = new Array(3);
y = new Array(3);
flag = new Array(3);
color = new Array(3);
nextcolor = new Array(3);
c = 0;
while (c < 3) {
nextcolor[c] = random(6) + 2;
tellTarget ("next" add String(c)) {
gotoAndStop(/:nextcolor[/:c]);
};
c++;
}
score = 0;
stop();
Frame 2
blocks = new Array(20);
blockcolor = new Array(20);
blockdown = new Array(20);
i = 0;
while (i < 20) {
blocks[i] = new Array(10);
blockcolor[i] = new Array(10);
blockdown[i] = new Array(10);
j = 0;
while (j < 10) {
blocks[i][j] = 0;
blockcolor[i][j] = 1;
blockdown[i][j] = 0;
j++;
}
i++;
}
n = 1;
score = 0;
Frame 3
c = 0;
while (c < 3) {
y[c] = 0;
x[c] = 3 + c;
flag[c] = 0;
color[c] = nextcolor[c];
nextcolor[c] = random(6) + 2;
tellTarget ("next" add String(c)) {
gotoAndStop(/:nextcolor[/:c]);
};
duplicateMovieClip (block, block add String(n + c), n + c);
tellTarget (block add String(n + c)) {
gotoAndStop(/:color[/:c]);
};
setProperty(block add String(n + c), _x , x[c] * 20);
c++;
}
Frame 7
c = 0;
while (c < 3) {
if (flag[c] == 0) {
if ((y[c] < 19) and (blocks[y[c] + 1][x[c]] == 0)) {
y[c] = y[c] + 1;
setProperty(block add String(n + c), _y , y[c] * 20);
} else {
flag[c] = 1;
}
}
c++;
}
if (((flag[0] * flag[1]) * flag[2]) == 0) {
gotoAndPlay (4);
} else {
c = 0;
while (c < 3) {
blocks[y[c]][x[c]] = n + c;
blockcolor[y[c]][x[c]] = color[c];
c++;
}
}
Frame 8
down = 0;
i = 0;
while (i < 20) {
test = blockcolor[i][0];
length = 1;
j = 1;
while (j < 10) {
if ((blockcolor[i][j] == test) and (test != 1)) {
length = length + 1;
} else {
length = 1;
test = blockcolor[i][j];
}
if (length >= 3) {
down = 1;
c = 0;
while (c < length) {
blockdown[i][j - c] = 1;
c++;
}
}
j++;
}
i++;
}
j = 0;
while (j < 10) {
test = blockcolor[0][j];
length = 1;
i = 1;
while (i < 20) {
if ((blockcolor[i][j] == test) and (test != 1)) {
length = length + 1;
} else {
length = 1;
test = blockcolor[i][j];
}
if (length >= 3) {
down = 1;
c = 0;
while (c < length) {
blockdown[i - c][j] = 1;
c++;
}
}
i++;
}
j++;
}
i = 2;
while (26 >= i) {
if (i < 20) {
test = blockcolor[i][0];
} else {
test = blockcolor[19][i - 19];
}
length = 1;
j = 1;
while (j < 10) {
if (((i - j) < 19) and ((i - j) >= 0)) {
if ((blockcolor[i - j][j] == test) and (test != 1)) {
length = length + 1;
} else {
length = 1;
test = blockcolor[i - j][j];
}
if (length >= 3) {
down = 1;
c = 0;
while (c < length) {
blockdown[(i - j) + c][j - c] = 1;
c++;
}
}
}
j++;
}
if (i < 20) {
test = blockcolor[i][9];
} else {
test = blockcolor[19][28 - i];
}
length = 1;
j = 8;
while (j >= 0) {
if ((((i + j) - 9) < 19) and (((i + j) - 9) >= 0)) {
if ((blockcolor[(i + j) - 9][j] == test) and (test != 1)) {
length = length + 1;
} else {
length = 1;
test = blockcolor[(i + j) - 9][j];
}
if (length >= 3) {
down = 1;
c = 0;
while (c < length) {
blockdown[((i + j) - 9) + c][j + c] = 1;
c++;
}
}
}
j--;
}
i++;
}
if (down == 0) {
n = n + 3;
j = 0;
while ((j < 10) and (blocks[0][j] == 0)) {
j++;
}
if (j == 10) {
gotoAndPlay (3);
} else {
gotoAndPlay (15);
}
}
Frame 11
i = 0;
while (i < 20) {
j = 0;
while (j < 10) {
if (blockdown[i][j] == 1) {
tellTarget (block add String(blocks[i][j])) {
gotoAndStop (8);
};
}
j++;
}
i++;
}
Frame 14
i = 0;
while (i < 20) {
j = 0;
while (j < 10) {
if (blockdown[i][j] == 1) {
removeMovieClip(block add String(blocks[i][j]));
tellTarget ("sound") {
play();
};
blocks[i][j] = 0;
blockcolor[i][j] = 1;
blockdown[i][j] = 0;
score = score + 1;
ii = i;
while (0 < ii) {
blocks[ii][j] = blocks[ii - 1][j];
blockcolor[ii][j] = blockcolor[ii - 1][j];
setProperty(block add String(blocks[ii][j]), _y , ii * 20);
ii--;
}
}
j++;
}
i++;
}
gotoAndPlay (8);
Frame 15
m = 1;
while ((n + 2) >= m) {
removeMovieClip(block add String(m));
m++;
}
stop();
Symbol 13 MovieClip Frame 1
stop();
Symbol 16 MovieClip Frame 1
stop();
Symbol 18 MovieClip Frame 1
stop();
Symbol 22 Button
on (release) {
getURL ("http://qiqu.51.net", "_blank");
}
Symbol 26 Button
on (release) {
play();
}
Symbol 27 Button
on (keyPress "<Left>") {
if (!(((flag[0] == 0) and (flag[1] == 1)) and (flag[2] == 0))) {
l = 0;
while ((2 >= l) and (flag[l] == 1)) {
l++;
}
if ((0 < x[l]) and (blocks[y[l]][x[l] - 1] == 0)) {
c = l;
while (2 >= c) {
if (flag[c] == 0) {
x[c] = x[c] - 1;
setProperty(block add String(n + c), _x , x[c] * 20);
}
c++;
}
}
}
}
on (keyPress "<Right>") {
if (!(((flag[0] == 0) and (flag[1] == 1)) and (flag[2] == 0))) {
r = 2;
while ((r >= 0) and (flag[r] == 1)) {
r--;
}
if ((x[r] < 9) and (blocks[y[r]][x[r] + 1] == 0)) {
c = r;
while (c >= 0) {
if (flag[c] == 0) {
x[c] = x[c] + 1;
setProperty(block add String(n + c), _x , x[c] * 20);
}
c--;
}
}
}
}
on (keyPress "<Down>") {
c = 0;
while (c < 3) {
y[c] = 19;
while ((0 < y[c]) and (blocks[y[c]][x[c]] != 0)) {
y[c]--;
}
setProperty(block add String(n + c), _y , y[c] * 20);
flag[c] = 1;
c++;
}
gotoAndPlay (7);
}
on (keyPress "<Up>") {
if (((flag[0] + flag[1]) + flag[2]) == 0) {
colorx = color[0];
color[0] = color[1];
color[1] = color[2];
color[2] = colorx;
c = 0;
while (c < 3) {
tellTarget (block add String(n + c)) {
gotoAndStop(/:color[/:c]);
};
c++;
}
}
c = 0;
while (c < 3) {
setProperty(block add String(n + c), _x , x[c] * 20);
c++;
}
}
Symbol 30 Button
on (release) {
gotoAndPlay (2);
}