Головоломки Flash

         

Если да, просматриваем все блоки


if (thisColor == 5) {

// Если да, просматриваем все блоки над ним.

for(var i=y-1;i> = 0;i —- ) {

// Если блок не пустой.

aboveCoior = _root[ "block "+x+" ,"+i] ._currentframe;

if (aboveCoior != 5) {

// Смещаем его вниз.

_root["block "+x+""+y].gotoAndStop(aboveCoior);

_root["block "+x+" "+i].gotoAndStop(5)

break;

}}}}}}

После того как все блоки передвинуты, может оказаться, что некоторые столбцы пустые. Если так произошло, весь столбец справа от пустого должен быть сдвинут влево, чтобы закрыть промежуток.
Чтобы это осуществить, функция collapseAcross движется сквозь все столбцы слева направо. Если найден пустой столбец, за которым следует непустой, то последний сдвигается влево на одну позицию.
Этот процесс повторятся снова и снова, пока не перестанут попадаться пустые столбцы. Тогда цикл оканчивается, и функция выполнена.

function collapseAcross() {

// Продолжаем, пока есть пустые столбцы,



do {

n = 0;

// Проверяем все столбцы,

for(var x=0;x

// Если текущий столбец пустой.

if (_root["block "+x+" 11"]._currentframe = = 5) {

// Если следующий - полный, if (_root["block "+(x+1)+" 11"] _currentframe != 5)

{ n++;

// Смещаем все блоки.

for(var у=0,-у

c = _root["block "+(x+1)+" "+y]._currentframe;

_root["block "+x+" "+y].gotoAndStop(c);

_root["block "+(x+1)+" "+y].gotoAndStop(5);

}}}}
// цикол прекращается, если больше не обнаружено пустых столбцов

} while (n > 0);

}


Содержание раздела