I'm quite new to programming games and I'm currently working on a group project in university on creating one. In the game we've got a set of squares (cities, other entities) which are placed on the real plane. We'd like to start the game with a few squares in the center of the map and, as time goes, randomly place new ones around them, growing the whole network like that. I couldn't figure out how to elegantly do this and I found a lot of map generation algorithms, but they're mostly for surfaces and similar things, whereas my problem is more discrete. Any ideas?
I've added a picture in response to a comment - so our game might start off with the three red squares and as time goes we might add additional three squares (greens), after a while we can add two more squares again and so on.
[![enter image description here][1]][1]
[1]: https://i.sstatic.net/jxCte.png