Цитата:
Сообщение от Wolsh
Последнее условие уберите. Мало того что оно бессмысленно, поскольку выполнится всегда (само условие дублирует условия циклов), так еще и при крайних значениях итераторов Вы выходите за границы массива. Попросту говоря, у Вас нет в массиве врагов никаких экземпляров врага по индексам mama[19+1=20][n] или mama[n][26+1=27]. 27 ячеек имеют индексы 0-26, например, а не 1-27. В ячейке 27 нет врага, там undefined или null, а у них нет свойства "живой".
|
Убрать это?

Код AS3:
if(j < 20 && j2 < 27){
if(mama[j + 1][j2 + 1].alive == true){ liver_a ++; }
}
Так внутренний массив состоит из 27 элементов, то есть если элемент 27 условие 27+ 1 не выполняется...к тому же обратите внимание на следующее ..
рабочий пример

Код AS3:
// North
if ( y > 0 )
if ( _cells[x][y-1].ok ) bros++;
// North East
if ( x < _max && y > 0 )
if ( _cells[x+1][y-1].ok ) bros++;
// North West
if ( x > 0 && y > 0 )
if ( _cells[x-1][y-1].ok ) bros++;
// South
if ( y < _max )
if ( _cells[x][y+1].ok ) bros++;
// South East
if ( x < _max && y < _max )
if ( _cells[x+1][y+1].ok ) bros++;
// South West
if ( x > 0 && y < _max )
if ( _cells[x-1][y+1].ok ) bros++;
// East
if ( x < _max )
if ( _cells[x+1][y].ok ) bros++;
// West
if ( x > 0 )
if ( _cells[x-1][y].ok ) bros++;
полный код рабочего примера в приложенных файлах..=\