public void createStreets(ArrayList<Node> node, int numNodes, int level, int columns){

        int n=0;
        while(n<numNodes){
            Street left, right, up, down= null;
            for(int r=0; ; r++){
                if(r!=0){
                    // new Street (start node, end node (this node), name of street, orientation, inList?)
                    left= new Street(node.get(n-level), node.get(n), "" + (n-level) + "-" + n, "right", -1, 1, this);
                    node.get(n).setInLeft(left);
                    // Street that starts at this node and goes somewhere else
                    node.get(n-level).setOutRight(left);
                }
                if(/**r!=columns-1 && */(n+level)<numNodes){
                    right= new Street(node.get(n+level), node.get(n), "" + (n+level) + "-" + n, "left", -1, 1, this);
                    node.get(n).setInRight(right);
                    node.get(n+level).setOutLeft(right);
                }
                if(n%level!=0){

                    up= new Street(node.get(n-1), node.get(n), "" + (n-1) + "-" + n, "down", 1, 1, this);
                    node.get(n).setInUp(up);
                    node.get(n-1).setOutDown(up);
                }
                if(n%level!=level-1 && (n+1)<numNodes){

                    down= new Street(node.get(n+1), node.get(n), "" + (n+1) + "-" + n, "up", 1, 1, this);
                    node.get(n).setInDown(down);
                    node.get(n+1).setOutUp(down);
                }
                n++;
                if(n<level)
                    r=-1;
                if(n==numNodes)
                    return;
            }
        }
    }