OVK2015: да, при вашем написании, если взять его отдельно, код срабатывает как надо. Видимо у меня ошибка в чем-то другом.
console.log('row= ' + row + 'ROWS = ' + ROWS);
вот что выводит консоль:
row= 21 ROWS = 20
и 'gameover' не возращает
в данном случае даже когда первые два условия (для col) = false , a row попадает под описанные условия, т.е. row>ROWS функция не возвращает 'gameover';