Created using SFML, libnoise, and Visual C++ 2015, this demonstrates the fundamental use of a noise/height map to procedurally generate terrain using a tile set.
Code hosted on Github.
Approach:
Utilised one class each for generating a height-map using the Perlin noise library (NoiseGenerator2D.h) and for linking a given 2D tile-map to a given tile set texture (Tilemap.h), and a helper function in main that bucketed each value of the generated noise-map into the number of unique tiles in the loaded texture. The rest was simply to build a tilemap array given the generated height-map and desired number of tiles on screen, and render each vertex quad with the corresponding tile from the texture.