Interesting bits of code! Still hard for me to understand without tweaking them myself, though.
BTW, the Warp drive description says it's the only one to use randomness, but the last one too uses rnd() to define the obstacle height.
Well spotted. This is actually because I threw together that one at the last minute specifically for the museum and I had already written the blurb for the warp drive one before hand. Will make a note to fix that when I can get around to it.