Skip to content

Instantly share code, notes, and snippets.

@momohuri
Last active December 26, 2015 15:49
Show Gist options
  • Save momohuri/7175332 to your computer and use it in GitHub Desktop.
Save momohuri/7175332 to your computer and use it in GitHub Desktop.
Spiral recursive in js
var mySpiral =function(a,b,c,d){
var solution = [];
var lengthOfSegment = 0;
var sens = 1;
var add=-1;
var spiralGrid=function( Width,Height,Row,Col,currentPositionOnSegment){
var index = Height*(Row-1)+Col;
solution.push(index);
if (solution.length===Width*Height) return;
if(lengthOfSegment===currentPositionOnSegment && sens===-1){
sens=1;
currentPositionOnSegment=0;
Col+=add;
add*=-1;
++lengthOfSegment;
} else if (lengthOfSegment!==currentPositionOnSegment && sens===-1){
++currentPositionOnSegment;
Col+=add;
}else if(lengthOfSegment===currentPositionOnSegment && sens===1){
sens=-1;
currentPositionOnSegment=0;
Row+=add;
}else if(lengthOfSegment!==currentPositionOnSegment && sens===1){
++currentPositionOnSegment;
Row+=add;
}
spiralGrid(Width,Height,Row,Col,currentPositionOnSegment);
}
spiralGrid(a,b,c,d,0);
return solution;
}
var first = mySpiral(5,5,3,3);
var second = mySpiral(2,4,1,2)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment