public Map(int width, int height, int current_x, int current_y, int heading) {
		// System.out.println("Test1");
		this.width = width;
		this.heading = heading;
		this.height = height;
		mapNode = new Node[width][height];
		for (int i = 0; i < this.width; i++) {// initilize nodes
			for (int j = 0; j < this.height; j++) {
				mapNode[i][j] = new Node(i, j);
			}
		}
		for (int i = 0; i < this.width; i++) {// initilize node corridors
			for (int j = 0; j < this.height; j++) {
				int rightNode_i = i + 1;
				int leftNode_i = i - 1;
				int topNode_j = j - 1;
				int bottomNode_j = j + 1;
				if (rightNode_i < this.width) {// set node right
					mapNode[i][j].getCorridor(3).setNode(
							mapNode[rightNode_i][j]);
				} else {
					mapNode[i][j].getCorridor(3).setNode(null);
				}
				if (leftNode_i > -1) {// set node left
					mapNode[i][j].getCorridor(1)
							.setNode(mapNode[leftNode_i][j]);
				} else {
					mapNode[i][j].getCorridor(1).setNode(null);
				}
				if (topNode_j > -1) {
					mapNode[i][j].getCorridor(0).setNode(mapNode[i][topNode_j]);
				} else {
					mapNode[i][j].getCorridor(0).setNode(null);
				}
				if (bottomNode_j < this.height) {
					mapNode[i][j].getCorridor(2).setNode(
							mapNode[i][bottomNode_j]);
				} else {
					mapNode[i][j].getCorridor(2).setNode(null);
				}
			}
		}
		current = mapNode[current_x][current_y];
	}