Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: Closed geometry: a train track problem

by abcde (Scribe)
on Jan 03, 2006 at 18:10 UTC ( #520682=note: print w/replies, xml ) Need Help??


in reply to Closed geometry: a train track problem

I just typed up a nice algorithm here (which was essentially brute force) when I thought of a much better one. Damn. This one should be better, and you can apply it in real life as well.

  1. Begin by placing 7->8 "marker" pieces of track at various points around the floor. Make sure they're spaced well apart from each other.
  2. For each marker track that you haven't already used:
    1. Find the marker track nearest to it.
    2. Lay track down in such a pattern that it joins the two marker tracks together.
  3. Put some trains on it and make "choo choo!" noises.

This seems boring, but it's much, much faster than trying a brute-force method, and it still produces interesting tracks.

One of the interesting things (that I just thought of) about this design is the pathfinding - if you're laying down a track, but there's another piece of track in the way, don't remove the bit of track, but use one of the circle pieces to divert it around that bit of track. This makes the rails run together, as rails tend to do!

If you're really looking for a challenge, try making the algorithm recursive by using it again while doing step 2.2. And well done for thinking of such an interesting puzzle!


~abseed
  • Comment on Re: Closed geometry: a train track problem

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://520682]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (4)
As of 2019-05-26 13:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you enjoy 3D movies?



    Results (153 votes). Check out past polls.

    Notices?
    • (Sep 10, 2018 at 22:53 UTC) Welcome new users!