| Thanks! You can see the code here: https://repl.it/@EdwardCunningh2/Random-Roads It's not especially clever: 1. I define a set of possible moves (eg. straight ahead, left turn, junction, etc). One possible move is a dead-end, which looks a bit like a house in my interpretation. 2. Each move is assigned a relative weight (eg. continuing straight ahead 10x more likely than turning left). 3. Each iteration, for each of the roads under construction, a random move is selected. Some moves are impossible (based on other roads already drawn on the map) and so it will ensure not to select one that would result in a collision. At worst, it will terminate the road with a dead-end. 4. Repeat forever, until every road has terminated in a dead-end. Most of the script itself is dealing with the rendering logic. To avoid collisions I maintain a 2D array of all visited points. |