I've been in the process of making a simple acii game and worked out to make random terrain that wasn't all that bad (but has some flaws and is not very efficient). I came across midpoint displacement and the diamond square algorithms and was blown away by the results that come from using them. So I decided to try implementing one into my game but I'm having a really hard time coding it out. I have read a whole bunch on them but haven't really found any good tutorials that breaks it down into steps with sample code. I just need it stored in an array I can handle graphics and output. If some one can point me in the right way or help out I'd really appreciate it. Like I said am just having a hard time grasping the process.

ex: 5x5 array with all starting corners being 9 in height

98679
87658
76557
88789
98889

^^Something simple like that. Thanks in advance