Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Условие для массива 
:(
    Опции темы
WhiteFang
Дата 9.5.2008, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 9.4.2008

Репутация: нет
Всего: нет



Собственно есть вопрос по JS. 
Вот есть у меня поле. Из определённой точки осуществляется заполнение поля (то бишь массива) волной. Но поле не всё пустое. Есть точка начала волны (А) и точка (В) откуда к этому началу стоит идти. Ну соответственно из точки В я ищу наименьшее значение ячейки в четырёх направлениях: верх, низ, лево, право. 
Вот условие для поиска вверх.
Код

if (((x1 - 1) >= 0) && ((x1 - 1) <NUM) && (y1 >= 0) && (y1 <NUM) & 
        (((x1 + 1) >= 0) && ((x1 + 1) < NUM) && (y1 >= 0) && (y1 < NUM) && (field[x1 - 1][y1] <= field[x1 + 1][y1])) & 
        ((x1 >= 0) && (x1 < NUM) && ((y1 + 1) >= 0) && ((y1 + 1) < NUM) && (field[x1 - 1][y1] <= field[x1][y1 + 1])) & 
        ((x1 >= 0) && (x1 < NUM) && ((y1 - 1) >= 0) && ((y1 - 1) < NUM) && (field[x1 - 1][y1] <= field[x1][y1 - 1]))) 
   { 
        field[x1 - 1][y1] = 254; // значение точки В (бот) 
        Draw(x1 - 1, y1); //это прорисовка клетки, ну собственно она и не важна 
        GoToTank(x1 - 1, y1); /*это название функции, если клетка наименьшая, то из неё функция вызывает сама себя*/ 
        return; 
   }

NUM - это размеры массива. 
Вначале я проверяю, лежит ли данная клетка в пределах массива, а потом поочерёдно сравниваю верхнюю ячейку с левой, правой и нижней, заодно проверяя их расположение. Так вот, проблема в том, что если точка Б в углу массива, то нифига никуда бот не идёт, функция просто проходит, не зайдя ни в одно условие и не вызвав себя ниразу. Собственно где ошибка? Я так понимаю в условии, только где?
PM MAIL   Вверх
unicorn55
Дата 12.5.2008, 03:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 4.5.2007

Репутация: нет
Всего: нет



& - это битовая операция а здесь используется как логическая.
То есть ее нужно заменить на &&. 
Тогда условие будет выполняться если мы находимся в точке минимума. Вроде так.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0384 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.