working algorithm

Basically the algorithm works like this:
1. learn() using dfs
2. run()
  a) compute shortest path to a known flower
  b) fly that path. in each step, keep triangulating to find      locations of unknown flowers. If we come to know the exact location of an unknown flower, go back to (a).
  c) collect the flower.
  d) go back to (a).

Positive:
- unless we can solve the traveling salesman "flower-collecting butterfly" problem for up to 45 nodes, this should provide one of the least number of "turns"

Negatives:
- run() time is prob too slow. regressing 50 simulations, approx function of runtime = 0.0067(no. of flowers) + 0.0475.