building a grid of nodes in javascript
//constructing a grid of nodes
//grid node object
var GridNode = function(){
this.element = null;
this.up = null;
this.down = null;
this.left = null;
this.right = null;
};
//makes one grid line
function line(len){
var grid = new GridNode();
var current = grid;
for(var i=0;i<len;i++){
current.right = new GridNode();
current.right.left = current;
current = current.right;
}
return grid;
}
//fuses two lines together
function fuseLines(l1, l2){
var c1 = l1;
var c2 = l2;
while(c1 !== null || c2 !== null){
c1.up = c2;
c2.down = c1;
c1 = c1.right;
c2 = c2.right;
}
}
function makeGrid(size){
var origin = line(size);
var current = origin;
for(var i=0;i<size;i++){
var newline = line(size);
fuseLines(current, newline);
current = newline;
}
return origin;
}