This question has no answer... I better answer it.
A village has so-called 'reach points', these get increased every 5 seconds by 0.025 points (so a full point every 200 seconds). Also every 5 seconds, a village checks to see whether it can expand its borders. Each new tile has a buy cost, and if a village has enough reach points, it gets the tile (with a slight preference for expanding to the left - but I'm sure which that direction that actually is!). If it can't afford either tile, it just keeps accumulating reach points, so that when a bottled up village has one of it's neighbours destroyed, it can expand quickly.
More info here:
Absolutley all credit to yatima2975, I just plagarised this whole thing.
Please don't be mad at me for using your answer, I just wanted this question to have an official answer.