Comment affecter des valeurs à une turtle netlogo ?

Résolu
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

  1. 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
    1. Modérateur
      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
      1. 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
      2. Modérateur
        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.
      3. Merci encore de votre aide, je vais essayer d'ajouter cela à mon modèle !

        Bonne fin de journée