public static Tile findPlantTile(Actor actor, Venue nursery) {
    Tile picked = null, tried ;
    float bestRating = Float.NEGATIVE_INFINITY ;
    
    for (int n = 10 ; n-- > 0 ;) {
      tried = Spacing.pickRandomTile(
        nursery, World.SECTOR_SIZE * 2, actor.world()
      ) ;
      tried = Spacing.nearestOpenTile(tried, actor) ;
      if (tried == null || tried.pathType() != Tile.PATH_CLEAR) continue ;
      
      final Flora f = new Flora(tried.habitat()) ;
      f.setPosition(tried.x, tried.y, tried.world) ;
      if (! f.canPlace()) continue ;
      
      float rating = tried.habitat().moisture / 10f ;
      rating -= Plan.rangePenalty(tried, actor) ;
      rating -= Plan.dangerPenalty(tried, actor) ;
      rating -= actor.world().ecology().biomassRating(tried) ;
      if (rating > bestRating) { bestRating = rating ; picked = tried ; }
    }
    
    return picked ;
  }