Задать вопрос
@ivankalachikov86

Почему в javascript не срабатывает условие?

Изучаю js, выполняя одну задачку сделать игру змейку столкнулся с непонятной ситуацией при проверке не вышла ли змейка за пределы поля?

Вот проверка:

if (col < 1 || col > COLS || row < 1 || row > ROWS) {
    return 'gameover';
}


причем проверка на col срабатывает, а на row - нет. Выводил в консоль значения переменных - при выходе за границы вниз row становится 21, а ROWS=20. Не пойму что за мистика. Подскажите пожалуйста.

Ссылка на код в codepen: codepen.io/Kalachikov/pen/oLjpXb
  • Вопрос задан
  • 290 просмотров
Подписаться 1 Оценить 4 комментария
Пригласить эксперта
Ответы на вопрос 1
In4in
@In4in
°•× JavaScript Developer ^_^ ו°
Условие то выполняется. Но затем вы вызываете getCellByIndex(21, 1). Эта функция возвращает undefined, так как нету элемента с таким "id"...

if(21 > 20){
  
    getCellByIndex(21, 1).style.....

}


А вообще, подход у вас странный - не лучше ли представить поле как таблицу (я про <table>)? Тем более, раз уж не хотите собрать все элементы 1 раз и положить во многомерный массив, а собираете их каждый раз через querySelectorAll (который и не гарантирует, что порядок будет верным). С таблицами то работать проще: тык
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы