Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не выходит отладить функцию (https://javascript.ru/forum/misc/30274-ne-vykhodit-otladit-funkciyu.html)

ozzon91 30.07.2012 11:26

Не выходит отладить функцию
 
Не выходит отладить функцию
var arr = [[0, 0, 0, 0],
            [0, 5, 0, 0],
            [0, 0, 5, 0],
            [0, 0, 0, 5]];


         
function szuw(y, x, symbol) {
    arr[y][x] = symbol;
    var score1;
    var score2; 
    var y1 = y;
    var x1 = x;

   for(var i = 0; arr[y1][x1]==symbol; i++,x1++,y1++){
     score2 = i;
     }
     
   for(var i = 1; arr[y][x]==symbol; i++,x--,y--){
     score1 = i;
     }
  return score1 + score2;
}

отладчик выдает Error: TypeError: arr[y1] is undefined

devote 30.07.2012 11:29

видимо потому что у вас значения x,y больше 3 или меньше нуля

ozzon91 30.07.2012 11:56

функция не работает даже так
alert(szuw(1,1,5));

если алерт вписать внутрь цикла то он выдает верные значения, например так
for(var i = 0; arr[y1][x1]==symbol; i++,x1++,y1++){
     score2 = i;
    alert(score2);
     }

ozzon91 30.07.2012 12:49

Ребята есть идеи??

vadim5june 30.07.2012 13:10

у Вас в начале по логике должно 5 стоять
[5, 0, 0, 0]

devote 30.07.2012 13:14

Цитата:

Сообщение от vadim5june
у Вас в начале по логике должно 5 стоять
[5, 0, 0, 0]

да у него не в логике проблемы, а втом что человек понятия е имеет как нужно строить циклы, и когда их заканчивать.

ozzon91 30.07.2012 13:36

Цитата:

да у него не в логике проблемы, а втом что человек понятия е имеет как нужно строить циклы, и когда их заканчивать.
Так скажите в чем проблема.
Цитата:

у Вас в начале по логике должно 5 стоять
[5, 0, 0, 0]
По логике функция считает количество равных цифр на северозапад и юговосток из заданых координат. При передаче парамнтров 3, 3, 5 функция должна вернуть 3 тобишь количество пятерок стоящих наискосок.

vadim5june 30.07.2012 14:20

Цитата:

Сообщение от ozzon91 (Сообщение 192906)
Так скажите в чем проблема.

По логике функция считает количество равных цифр на северозапад и юговосток из заданых координат. При передаче парамнтров 3, 3, 5 функция должна вернуть 3 тобишь количество пятерок стоящих наискосок.

почему она 3 вернет как встретит первое совпадение так и остановится
arr[y1][x1]==symbol

ozzon91 30.07.2012 14:44

но цикл идет же пока верно равенство arr[y1][x1]==symbol ?

vadim5june 30.07.2012 14:54

Цитата:

Сообщение от ozzon91 (Сообщение 192937)
но цикл идет же пока верно равенство arr[y1][x1]==symbol ?

а когда он кончится?Когда вылет за пределы то есть arr[y1] будет undefined
Вам последнюю строку нужно из одних 0


Часовой пояс GMT +3, время: 18:13.