Most people won't want to read such a vast amount of text and code. If terminating a loop is your problem, you should trim the code down as much as possible to where you have nothing but that loop and a few print statements. Barring that (or in conjunction with it) you should add copious print statments so you can see what's happening at each step, and compare that to what you've worked out on paper should be happening.
Yes, I realize that, but my question is how do I make sure that the "tiny" variable keeps up with the "tiny meep". It seems that once the third meep enters the burrow, "tiny" is always one step behind of "tiny meep".
Da mihi sis bubulae frustum assae, solana tuberosa in modo Gallico fricta ac quassum lactatum coagulatum crassum.
I have no idea what "tiny" is supposed to be. It seems like a horribly named variable, as does Meep.
Your link to the assignment doesn't work, so I don't know what any of this is supposed to do.
But, the advice I always give is this:
Put in lots of System.out.printnl() statements. Every time tiny changes, print the new value. every time you test to see what it is, print that. You have to understand what it is doing before you can fix what is wrong.
There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors