2 votes

Attribution de variables aléatoires au sein des groupes de tortues

J'ai un nombre dynamique de groupes de tortues (contrôlés par des curseurs, groupes étiquetés avec la variable group-id) qui ont une variable propre aux tortues associée (trait-1), j'essaie d'attribuer aléatoirement une valeur différente au trait-1 pour chaque groupe de tortues (group-id). Pour le moment, chaque tortue individuelle a une valeur de trait-1 attribuée de manière aléatoire qui varie à la fois au sein des groupes et entre eux, mais je veux qu'elle soit la même pour tous les individus de chaque groupe et qu'elle ne varie qu'entre les groupes. Toute aide serait la bienvenue !

Remarque : j'utilise une variable de regroupement au lieu de races car je n'ai pas trouvé comment rendre le nombre de races contrôlable dynamiquement via un curseur... pas sûr que ce soit possible ?

turtles-own [
  group-id ;grouping id, each group represents a species
  trait-1  ; a trait to be assigned a score from 1 - 10
 ]

to setup
clear-all
set-species
end

to set-species
let n_groups num_species  ;create n groups of turtles based on slider value (num_species)
foreach n-values n_groups [ ? ] [
create-turtles 3 [      ;create 3 indviduals in each group
  set group-id ?
  set color (group-id + 19) ; give each group a different color
  set  trait-1 1 + random 10 ]  ;set trait-1 ranging from 1 to 10
]
ask turtles [ set label group-id ] ; show group-id
ask turtles[  ; move turtles out of the center, not really important, just to help see the turtles. 
fd trait-1 
]
end

2voto

Alan Points 8090

Il suffit de le déplacer là où vous l'avez mis en dehors de l'initialisation de la tortue :

  foreach n-values n_groups [ ? ] [
    let group-trait 1 + random 10  ;set it here
    create-turtles 3 [      ;create 3 indviduals in each group
      set group-id ?
      set trait-1 group-trait
      set color (group-id + 19) ; give each group a different color
      ;set  trait-1 1 + random 10 ]  ;don't set it here
    ] 
  ]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X