Needs Pygame
Generates a 'train network' from a random selection of points which represent towns and displays the result. The aim is for the network to be somewhat representative of the UK train network, with more track connecting larger towns and for there to be effectively 'main lines' and few loops. This was mostly successful. Also creates some 'services' which represent train journeys through the network, and 'passengers' who would like to go from one town to another through the network.
Example output https://imgur.com/a/et00jF9
Commands: Enter: produce an entirely new network
i: info; after pressing this key when clicking on a town the town's name will be displayed and its population size
p: passenger; will display information about a random passenger
s: service mode; pressing the space bar after pressing s will cycle through all the services between towns
t: town; will require clicking two 'towns' and will then display the shortest route between them (direct)