Показать сообщение отдельно
Старый 25.11.2012, 23:35
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 21  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Вам вроде объяснили. У Вас нет элемента [n][27] и элемента [20][n]. Их нет. 27-й элемент имеет индекс 26. Соответственно все написанные условия приводят к ошибке — Вы обращаетесь к элементу, которого нет. Какими еще словами это объяснять, я не знаю. Предлагаю поспать и перечитать топик.

Я вообще не понял зачем Вам этот огород. Все эти вопросы только для того, чтобы выяснить, есть ли там элемент с индексом, который хочется проверить на живучесть. Вуаля.
Код AS3:
			var arr:Array = new Array(9);
			trace(arr[9] == null); // true
Так что вместо того, чтобы пытать значения итераторов, достаточно просто спросить, есть там кто? А уже потом — живой ли он?
Другими словами:
Код AS3:
if(mama[j - 1][j2 - 1]	is enemy && mama[j - 1][j2 - 1].alive)	liver_a ++;
if(mama[j - 1][j2]		is enemy && mama[j - 1][j2].alive)		liver_a ++;
if(mama[j - 1][j2 + 1]	is enemy && mama[j - 1][j2 + 1].alive)	liver_a ++;
if(mama[j + 1][j2 - 1]	is enemy && mama[j + 1][j2 - 1].alive)	liver_a ++;
if(mama[j + 1][j2]		is enemy && mama[j + 1][j2].alive)		liver_a ++;
if(mama[j + 1][j2 + 1]	is enemy && mama[j + 1][j2 + 1].alive)	liver_a ++;
if(mama[j][j2 + 1]		is enemy && mama[j][j2 + 1].alive)		liver_a ++;
if(mama[j][j2 - 1]		is enemy && mama[j][j2 - 1].alive)		liver_a ++;
Кроме того, можно просмотр этого квадрата 3х3 запихать в свой двойной циклик, дабы не строчить ритмичным стихом. Сможете?

Понять бы еще, чего считает этот счетчик печенок по всему полю)))
__________________
Reality.getBounds(this);