That was really cool. Trying to predict where the alien was going to move was a challenge.
On the code end of things, I think you'll find that SUBing out will work well where ever you use a GOTO or GOSUB.
SUBs and FUNCTIONs, when well designed, will become standard library routines that you can cut and paste into other code. That way it's not necessary to "reinvent the wheel". There are times that I just load a "template" of routines, then when I'm done, I just delete the ones I didn't use.