Comment affecter des valeurs à une turtle netlogo ?

Résolu/Fermé
mynoe Messages postés 18 Date d'inscription dimanche 27 novembre 2016 Statut Membre Dernière intervention 8 avril 2017 - 27 nov. 2016 à 11:20
mynoe Messages postés 18 Date d'inscription dimanche 27 novembre 2016 Statut Membre Dernière intervention 8 avril 2017 - 10 déc. 2016 à 19:25
Bonjour,

J'ai comme projet la modélisation d'une forêt sur netlogo. Je dois donc affecter des valeurs à mes "turtles" arbres :
- age
- taille
- circonférence
- envergure

Comment puis-je affecter différentes valeurs à mes turtles arbres ?

Merci de votre aide

2 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
Modifié par KX le 27/11/2016 à 12:11
Bonjour,

Les variables d'un agent doivent être déclarées au début du programme, puis tu peux les modifier en appelant l'agent.

Exemple :

;;;;; DECLARATIONS

breed [ arbres arbre ]
arbres-own [ age taille ]

;;;;; INITIALISATION

to setup
  
  clear-all
  reset-ticks

  create-arbres 1
  [
    set shape "tree"
    set age 0
    set taille 0
  ]

end

;;;;; EVOLUTION

to go

  ask arbres
  [
    set age (age + 1)
    set taille (taille + 1)
  ]

  tick

end

Tu peux tester ensuite avec le Command Center :
setup
inspect arbre 0
go

Tu vas voir s'afficher une fenêtre "arbre 0" après la commande inspect, avec en bas les valeur age=0, taille=0 puis après le go, age=1 et taille=1.

Tu peux aussi créer des boutons associer aux commandes
setup
et
go
pour faire ça via l'interface graphique plutôt que la ligne de commandes.
La confiance n'exclut pas le contrôle
0
mynoe Messages postés 18 Date d'inscription dimanche 27 novembre 2016 Statut Membre Dernière intervention 8 avril 2017
27 nov. 2016 à 12:18
Un grand merci pour votre aide qui m'a permis d'y voir plus clair !

Pouvez vous svp me donner encore un petit coup de main :

Comment peut-on définir un "plot" traçant plusieurs courbes pour les différentes variables
- la moyenne de la taille de tous les arbres
- la moyenne de la circonférence de tous les arbres ...

En fonction de l'évolution du modèle, en donc de l'âge des arbres

Par avance merci
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
27 nov. 2016 à 12:37
Par exemple pour l'age moyen, tu rajoutes
globals [ age-moyen ]
dans les déclarations, puis dans le coeur du programme tu calculer sa valeur à chaque itération :

set age-moyen 0
ask arbres [ set age-moyen (age-moyen + age) ]
set age-moyen (age-moyen / (count arbres))
tick

Et enfin, tu te crées dans l'interface un élément de type plot dont tu configures un des "plot pens" avec la "pen update commands" qui vaut
plot age-moyen

Lorsque le programme arrive sur
tick
il rajoute un point dans le graphe.
0
mynoe Messages postés 18 Date d'inscription dimanche 27 novembre 2016 Statut Membre Dernière intervention 8 avril 2017
27 nov. 2016 à 17:23
Merci encore de votre aide, je vais essayer d'ajouter cela à mon modèle !

Bonne fin de journée
0
mynoe Messages postés 18 Date d'inscription dimanche 27 novembre 2016 Statut Membre Dernière intervention 8 avril 2017
10 déc. 2016 à 19:25
Bonsoir,

Je reviens vers vous pour pour une nouvelle question.

Je dois calculer pour chaque arbre un coefficient en fonction des arbres voisins (dans les 5m autour de lui). Cela correspond a la couverture angulaire entre chaque arbre
n
= ∑ arctan [ (hB - hA ) / distance arbreA arbreB ]
b =1
≠1

A : arbre étudié de hauteur hA
B : (un des) voisin de hauteur hB
n : nombre de voisins

(je ne sais pas comment joindre une photo pour illustrer désolée)

Voici mon code

breed [arbres arbre]
arbres-own [age circonference hauteur envergure]
globals [ deltaC deltaH deltaR age-moyen circonference-moy hauteur-moy envergure-moy xarbre1 yarbre1 trouve dist diff ]

to setup
clear-all
reset-ticks
set-default-shape arbres "tree"
ask patches [set pcolor brown - 3 ]

create-arbres Nb_arbres
[
set color green setxy random-xcor random-ycor
set age 10
set circonference 0.4
set hauteur 4
set envergure 2
set age-moyen 0
set hauteur-moy 0

]
end


to go
if ticks >= 50 [ stop ]
ask arbres [grow]
ask arbres [competition]
tick
do-plot
end

to competition
set xarbre1 pxcor
set yarbre1 pycor
if distancexy xarbre1 yarbre1 < 5
[
formule-a-saisir-ici??

]
end

to grow
set age ( age + 1 )
set deltaC ( 0.21787 * exp (age * 0.0849) * ( 1 - exp( -(age) * 0.0849)) ^ 1.127 )
set circonference ( circonference + deltaC )
set deltaH ( 0.0929 * deltaC )
set hauteur ( hauteur + deltaH )
set deltaR ( (0.09179 / 2 ) * deltaC )
set envergure ( envergure + deltaR )

end

to do-plot
set-current-plot "plot 2"
plot count turtles
end


Merci beaucoup pour l'aide que vous pouvez m'apporter
0