LibGdx - perline noise

Hi,

If you have seen latest screens of my hills on the link in this thread you will see what my code is generating.

I only use perlin noise to get the start position of the first block on the Y-axis and then just allow the next block to be either above previous one by one bloack, same level or
below by one block, is this a good idea or should I just use the perlin noise to get a height factor and render that amount of blocks on the y-axis?

Reason I’m asking is I’d like to have big hills, and my code at the moment isn’t really doing this.


		int yOffset = 10; 
		addEntity(new GrassEntity(0, GRASS_START + yOffset));
		for (int x = 1; x < w; x++) {
			int pos = r.nextInt(3);
			if (pos == 1 && yOffset < GRASS_MAX - GRASS_START)
				yOffset += 1;
			else if (pos >= 2 && yOffset >= 0)
				yOffset -= 1;
			addEntity(new GrassEntity(x, GRASS_START + yOffset));
		}


Also, is using cellular automata technique be the way to go to generate some caves?

Thanks,
Steve