velven wrote:
HI, i have a problem
using tileworld model, i'm supposed to write a rule which will cause the
agents to choose the tile in the agent's range which is closest to the
agent.
so a rough idea is
when
agent: Agent(x1:x, y1:y, r:range)
tile1: Tile(<tile's x to be between (x1+r) and (x1-r)> &&
<tile's y to be
between (y1+r and y1-r)>)
tile2: not Tile( < which is closer than the tile1 to agent> )
desperately need help,
alternatives tried::
i tried to use a query to return a list of tiles which is within the agent's
range then compared which one is closer and other similar implementation,
but this too slow for my simulation...
I need one single good rule or efficient way of implementing the above rule
then i tried to do multiple constraints too, say x (> 30 && < 40) is
ok
but
x (>
($x-$r) && < ($x+$r)) gives errors ,due to extra parenthesis? i dunno.. any
workarounds?
if you need to do maths to manipulate fields you'll need to use a
returnRevalue field constraint or an inlineEval field constraint. The
first is if you only need to apply a function to the field/value on the
right of the operator, the eval is if you need to apply a function to
both sides.
Thanks!