private Block[][] createCave(Block[][] map, int start){
		boolean direction = Math.random() > .5;
		int yVal = getHighestY(Block.WIDTH * start - 5, Driver.HEIGHT) / 30;
		while(yVal > 5){
			for(int i = -1; i <= 1; i++){
				if(i + start < 0 || i + start >= WIDTH) continue;
				for(int j = -1; j <= 1; j++){
					if(j + yVal < 0 || j + yVal >= HEIGHT) continue;
					map[i + start][j + yVal] = null;
				}
			}
			yVal--;
			start += (direction)? (int)(3 * Math.random()) : -(int)(3 * Math.random());
			if(Math.random() < .2) direction = !direction;
		}
		return map;
	}