Задача про черепашку

Черепашка ползет по декартовой плоскости, ее путь задан массивом цыфр [1,3,5,2,6,2…], после каждого отрезка черепашка поворачивает на 90 градусов по часовой стрелке. Нужно найти, когда черепащка пересечет собственный путь и вернуть номер шага.


function solution(A) {
    
    var points = ["0:0"],
        x = 0, y = 0,
        direction = 0,
        length = A.length;
        
    for (var i = 0; i < length; i++) {
        
        for (var j = 0; j < A[i]; j++) {
            if ( direction % 4 === 0 ){
                y += 1;
            } else if ( direction % 4 === 1 ) {
                x +=  1; 
            } else if ( direction % 4 === 2 ) {
                y -= 1;
            } else if ( direction % 4 === 3 ) {
                x -= 1;
            }
                        
            if (points.indexOf(x + ":" + y) !== -1) {
                return i + 1;
            } else {
                points.push(x + ":" + y);
            }
        }        
        
        direction++;
        
    }
    
    return 0;
    
}

2 Комментарии “Задача про черепашку

Комментарии закрыты