2010-08-25 3 views
0

Je suis en train de trouver s'il y a une tortue sur patch-ahead naide netlogo de programmation sur la simulation du trafic

dont la vitesse - accélération est < = 0. Le code que je suis venu avec est:

if any? turtles on patch-ahead n with [speed <= (speed - acceleration)] 

mais cela donne une erreur que:

patch-ahead attend un nombre, à la place obtenu l'ensemble d'agents.

Comment remédier à cela?

n est une variable numérique. Je veux accéder à la «vitesse» de la tortue, qui est une variable propre à la tortue définie par l'utilisateur, au n ième patch de la tortue appelante. La commande 'with' ne fonctionne pas ici. S'il vous plaît suggérer une alternative pour accéder à la vitesse de la tortue à, disons, le troisième patch de la tortue appelante.

Répondre

1

Si vous regardez le patch-ahead documentation, vous remarquerez qu'il ne nécessite qu'un seul argument: un nombre représentant la distance à parcourir. Vous utilisez un patch 'n' au lieu d'un nombre.

Comme pour votre commentaire, je pense que peut-être vous voulez tortues sur, et utiliser des parenthèses pour le rendre plus clair, comme tel:

if any? ((turtles-on patch-ahead n) with [speed <= (speed - aceleration)]) 

Dans ce qui précède je suppose que n est un numéro: la distance vous voulez regarder vers l'avenir.

+0

n est une variable numérique. Je veux excéder la vitesse (la vitesse est définie par l'utilisateur variable de la tortue) de la tortue au nième patch de la tortue appelante. la commande 'avec' ne fonctionne pas ici, s'il vous plaît suggérer une alternative à l'excès de la vitesse de la tortue à, disons, 3ème patch de la tortue appelante. – user399466

+0

J'ai mis à jour la réponse. Notez que c'est "tortues" et non "tortues". –

+0

merci beaucoup jmvidal vraiment apprécié. – user399466

Questions connexes