huey.callison@[EMAIL PROTECTED]
wrote:
>John Hatpin <RemoveThisjfhopkin@[EMAIL PROTECTED]
> wrote:
>> OK, I've just run a test that simply tests the whole sim, with an
>> accurate timer called "counting seconds in my head". Each 255 'row'
>> of cells takes about one second, so it would take about four minutes
>> to test the whole sim. That's a bit long for this application, not to
>> mention for me developing the damned thing, with repeated re-runs.
>
>I think you're doing it wrong.
>
>You've got this invisible thing that makes bird noises, and it loads in
>a place you control. Why not use that thing as a database cursor?
>
>Here's your algorithm. Thing loads at X,Y. Store that.
>1) Go "cheep cheep cheep"
>2) Do you own X+1,Y?
> If yes, go there.
> If no, you've found an edge. Store that. Do you own X,Y+1?
> If yes, go there
> If no, you've found an edge. Store that. Do you own X-1,Y?
> If yes, go there.
> If no, you've found an edge. Store that. Do you own X,Y-1?
> If yes, go there
> If no, you've found an edge. Store that.
>3) Are you in X,Y?
> If yes, you're done. You've mapped a rectangle you own, bounded by
> the other four locations you stored, and you can walk randomly
> within the bounds of that.
> If no, you're not done yet. Goto 1.
>
>This breaks down if the shape is irregular (like an L, or pretty much
>anything else) since it's only going to find one rectangular space
>inside that, but once you've stored that in an array, you can walk
>randomly within that space, but the initial 'finding of the borders' can
>be done by the bird itself, can't it?
Well, during the discovery stage there's no reason at all for the boid
to actually fly - it can sit at home requesting owner****p or anywhere.
And, in fact, the calculations won't be done by the flying object -
there's a controller object with buttons and displays and **** that
does the UI and acts as shepherd to its flock of birds, telling them
where to go.
But that's by the by, since the edge-walking algorithm can be equally
used from the comfort of your own X,Y. In fact, that's a lot better
too, since moving objects around takes time.
The problem is, you're doing fine at finding coordinates at the edge,
but we're looking for the largest contiguous rectangle, not the same
as the edge when the plot itself is not rectangular.
The reason I've defined a rectangle of contiguous owner****p as the
largest unit, by the way, is so that it's easy to calculate random
paths around the place once it's all up and running. Also, it's
easier to subdivide - if one drone ain't making enough noise, slot in
another and they'll each take on half your plot by default, ad
infinitum etc.
Crude maybe, but the simplicity's im****tant because there are other
complications such as not wanting to fly too close to people on the
land - nothing worse than a blackbird coming out of nowhere and
shouting right in your ear. And astute people may have noticed I've
not mentioned the Z axis and yes, SL has hills and valleys. That's
enough to do without trying to cover an irregular area evenly without
trespassing.
Besides, probably 95% of plots are indeed rectangular, and most people
with irregular plots already accept compromises. For example, my
Spanish now-ex-cyber-lover and I used to rent for our home an L-shaped
plot that was formed by two rectangular plots being conjoined. I
had to buy and fit two separate, networked intruder alert systems to
cover the land, not because of its size but because of its shape. You
shrug and you do it.
--
John Hatpin


|