Дело в том, что у вас случается, что при вычислении arr[y1][x1] у arr нет элемента с индексом y1. Тогда arr[y1] возвращает undefined, а всё выражение бросает TypeError, так как undefined не может быть в левой части оператора []. Это можно исправить так:
(y1 in arr) && arr[y1][x1]==symbol или arr[y1]!=undefined && arr[y1][x1]==symbol |
Цитата:
Вот отладил функцию кому не трудно простестируйте function szuw(y, x, symbol) { arr[y][x] = symbol; var score1 = 0; var score2 = 0; if((x == 0) && (y == 0)) score1 = 1; if((y == 0) && (x != 0 && x >= 1)) score1 = 1; var y1 = y; var x1 = x; for(var i = 0; i<=(arr.length-y1-1); i++){ if (arr[y1+i][x1+i] == symbol) { score2++; } } for(var i = 0; i<=y-1; i++){ if (arr[y-i][x-i] == symbol) { score1++; } } return score1 + score2 - 1; } |
Часовой пояс GMT +3, время: 08:18. |