I came up with this in 9th grade, wrote a terrible Java implementation during an EPGY summer program, and then forgot about it. Which is good; I don't want that code to see the light of day ever again. So now I'm re-doing it, but with AI, proper graphics, and no abuse of multithreading (don't ask...).