Ce qui suit n'est qu'un regroupement approximatif. Souvenez-vous qu'une primitive dédiée à la tortue peut parfois aussi être utilisée par les patches et l'observateur et vice-versa. Pour savoir quel agent (tortues, patches, liens, observateur) peut réellement exécuter une primitive, consultez son entrée dans le dictionnaire.
back (bk) <breeds>-at <breeds>-here <breeds>-on can-move? clear-turtles (ct) create-<breeds> create-ordered-<breeds> create-ordered-turtles (cro) create-turtles (crt) die distance distancexy downhill downhill4 dx dy face facexy forward (fd) hatch hatch-<breeds> hide-turtle (ht) home inspect is-<breed>? is-turtle? jump left (lt) move-to myself nobody no-turtles of other patch-ahead patch-at patch-at-heading-and-distance patch-here patch-left-and-ahead patch-right-and-ahead pen-down (pd) pen-erase (pe) pen-up (pu) random-xcor random-ycor right (rt) self set-default-shape __set-line-thickness setxy shapes show-turtle (st) sprout sprout-<breeds> stamp stamp-erase subject subtract-headings tie towards towardsxy turtle turtle-set turtles turtles-at turtles-here turtles-on turtles-own untie uphill uphill4
clear-patches (cp) diffuse diffuse4 distance distancexy import-pcolors import-pcolors-rgb inspect is-patch? myself neighbors neighbors4 nobody no-patches of other patch patch-at patch-ahead patch-at-heading-and-distance patch-here patch-left-and-ahead patch-right-and-ahead patch-set patches patches-own random-pxcor random-pycor self sprout sprout-<breeds> subject
all? any? ask ask-concurrent at-points <breeds>-at <breeds>-here <breeds>-on count in-cone in-radius is-agent? is-agentset? is-patch-set? is-turtle-set? link-heading link-length link-set link-shapes max-n-of max-one-of min-n-of min-one-of n-of neighbors neighbors4 no-patches no-turtles of one-of other patch-set patches sort sort-by turtle-set turtles with with-max with-min turtles-at turtles-here turtles-on
approximate-hsb approximate-rgb base-colors color extract-hsb extract-rgb hsb import-pcolors import-pcolors-rgb pcolor rgb scale-color shade-of? wrap-color
and ask ask-concurrent carefully end error-message every foreach if ifelse ifelse-value let loop map not or repeat report run runresult ; (semicolon) set stop startup to to-report wait while with-local-randomness without-interruption xor
clear-all (ca) clear-drawing (cd) clear-patches (cp) clear-turtles (ct) display import-drawing import-pcolors import-pcolors-rgb no-display max-pxcor max-pycor min-pxcor min-pycor reset-ticks tick tick-advance ticks world-width world-height
follow follow-me reset-perspective (rp) ride ride-me subject watch watch-me
hubnet-broadcast hubnet-broadcast-view hubnet-enter-message? hubnet-exit-message? hubnet-fetch-message hubnet-message hubnet-message-source hubnet-message-tag hubnet-message-waiting? hubnet-reset hubnet-send hubnet-send-view hubnet-set-client-interface
beep clear-output date-and-time export-view export-interface export-output export-plot export-all-plots export-world import-drawing import-pcolors import-pcolors-rgb import-world mouse-down? mouse-inside? mouse-patch mouse-xcor mouse-ycor output-print output-show output-type output-write print read-from-string reset-timer set-current-directory show timer type user-directory user-file user-new-file user-input user-message user-one-of user-yes-or-no? write
file-at-end? file-close file-close-all file-delete file-exists? file-flush file-open file-print file-read file-read-characters file-read-line file-show file-type file-write user-directory user-file user-new-file
but-first but-last empty? filter first foreach fput histogram is-list? item last length list lput map member? modes n-of n-values of position one-of reduce remove remove-duplicates remove-item replace-item reverse sentence shuffle sort sort-by sublist
Operators (<, >, =, !=, <=, >=) but-first but-last empty? first is-string? item last length member? position remove remove-item read-from-string replace-item reverse substring word
Arithmetic Operators (+, *, -, /, ^, <, >, =, !=, <=, >=) abs acos asin atan ceiling cos e exp floor int is-number? ln log max mean median min mod modes new-seed pi precision random random-exponential random-float random-gamma random-normal random-poisson random-seed remainder round sin sqrt standard-deviation subtract-headings sum tan variance
autoplot? auto-plot-off auto-plot-on clear-all-plots clear-plot create-temporary-plot-pen export-plot export-all-plots histogram plot plot-name plot-pen-exists? plot-pen-down plot-pen-reset plot-pen-up plot-x-max plot-x-min plot-y-max plot-y-min plotxy set-current-plot set-current-plot-pen set-histogram-num-bars set-plot-pen-color set-plot-pen-interval set-plot-pen-mode set-plot-x-range set-plot-y-range
both-ends clear-links create-<breed>-from create-<breeds>-from create-<breed>-to create-<breeds>-to create-<breed>-with create-<breeds>-with create-link-from create-links-from create-link-to create-links-to create-link-with create-links-with die hide-link in-<breed>-neighbor? in-<breed>-neighbors in-<breed>-from in-link-neighbor? in-link-neighbors in-link-from is-directed-link? is-link? is-link-set? is-undirected-link? layout-circle __layout-magspring layout-radial layout-spring layout-tutte <breed>-neighbor? <breed>-neighbors <breed>-with link-heading link-length link-neighbor? link "#links">links links-own <link-breeds>-own link-neighbors link-with my-<breeds> my-in-<breeds> my-in-links my-links my-out-<breeds> my-out-links no-links other-end out-<breed>-neighbor? out-<breed>-neighbors out-<breed>-to out-link-neighbor? out-link-neighbors out-link-to show-link tie untie
movie-cancel movie-close movie-grab-view movie-grab-interface movie-set-frame-rate movie-start movie-status
netlogo-applet? netlogo-version
breed color heading hidden? label label-color pen-mode pen-size shape size who xcor ycor
pcolor plabel plabel-color pxcor pycor
breed color end1 end2 hidden? label label-color shape thickness tie-mode
breed directed-link-breed end extensions globals __includes patches-own to to-report turtles-own undirected-link-breed
black = 0
gray = 5
white = 9.9
red = 15
orange = 25
brown = 35
yellow = 45
green = 55
lime = 65
turquoise =
75
cyan = 85
sky = 95
blue = 105
violet = 115
magenta = 125
pink = 135
Voir la section Couleurs du Guide de programmation pour de plus amples détails.
Retourne l'arc cosinus (l'inverse du cosinus) du nombre number donné. L'entrée doit appartenir à l'intervalle -1 à 1. Le résultat est en degrés et se trouve dans l'intervalle 0 à 180.
Retourne true (vrai) si tous les agents de l'ensemble agentset retournent true pour le reporter donné. Autrement, retourne false (faux) si un contre-exemple est trouvé.
Le reporter doit retourner une valeur booléenne (soit true, soit false) pour chaque agent, sinon un erreur d'exécution est générée.
if all? turtles [color = red] [ show "every turtle is red!" ]
Voir aussi any?
Retourne true (vrai) si condition1 ET condition2 sont toutes deux vraies.
Notez que si condition1 est false, alors condition2 ne sera même pas testée (puisqu'elle ne peut pas influencer le résultat).
if (pxcor > 0) and (pycor > 0) [ set pcolor blue ] ;; le quadrant supérieur droit des ;; patches est coloré en bleu
Retourne true (vrai) si l'ensemble d'agents agentset n'est pas vide, sinon retourne false (faux).
Équivalent à count ensemble-agents > 0, mais plus efficace (et, c'est discutable, plus lisible).
if any? turtles with [color = red] [ show "au moins une tortue est rouge!" ]
Note : nobody n'est pas un ensemble d'agents. Vous ne recevez nobody que dans les situations où vous n'attendez qu'un agent unique, pas un ensemble d'agents. Si any? reçoit nobody comme entrée, une erreur est générée.
Retourne un nombre, appartenant à l'intervalle 0 à 140 (140 exclu) de l'espace de couleurs de NetLogo, représentant la couleur donnée dans le système HSB.
Les trois paramètres hue saturation brightness dont les valeurs peuvent aller de 0 à 255, décrivent la couleur dans le système HSB.
La couleur retournée peut n'être qu'une approximation de la couleur spécifiée en entrée puisque l'espace de couleurs de NetLogo ne comprend pas toutes les couleurs possibles. (Il ne contient qu'un certains nombre de teintes discrètes et, pour chacune de ces teintes, soit la saturation, soit la brillance peut varier, mais pas les deux, autrement dit, l'une des deux vaut toujours 255.)
show approximate-hsb 0 0 0 => 0 ;; black (noir) show approximate-hsb 127.5 255 255 => 85.2 ;; cyan
Voir aussi extract-hsb, approximate-rgb et extract-rgb
Retourne un nombre, appartenant à l'intervalle 0 à 140 (140 exclu) de l'espace de couleurs de NetLogo, représentant la couleur donnée dans le système RGB.
Les trois paramètres red green blue dont les valeurs peuvent aller de 0 à 255, décrivent la couleur dans le système RGB.
La couleur retournée peut n'être qu'une approximation de la couleur spécifiée en entrée puisque l'espace de couleurs de NetLogo ne comprend pas toutes les couleurs possibles. (Voir approximate-hsb pour une description de la partie de l'espace de couleurs HSB que NetLogo peut couvrir car c'est difficile de le faire en termes RGB.)
show approximate-rgb 0 0 0 => 0 ;; black (noir) show approximate-rgb 0 255 255 => 85.2 ;; cyan
Voir aussi extract-rgb, approximate-hsb et extract-hsb
Tous ces opérateurs demandent deux entrées, et tous fonctionnent comme des opérateurs « infixés » (c'est-à-dire qu'ils doivent être placés entre les deux entrées, comme c'est l'usage en notation mathématique traditionnelle). NetLogo gère correctement la priorité des opérations avec les opérateurs infixés.
Les opérateurs fonctionnent de la manière suivante : + pour l'addition, * pour la multiplication, - pour la soustraction, / pour la division, ^ pour l'exponentiation, < est plus petit que, > est plus grand que, = est égal à, != n'est pas égal à, <= est plus petit ou égal à, >= est plus grand ou égal à.
Notez que l'opérateur de soustraction ( - ) demande toujours deux entrées à moins que vous n'utilisiez des parenthèses, dans ce cas, il ne demande qu'une entrée. Par exemple, pour prendre l'inverse de x, écrivez (-x) avec les parenthèses.
Tous les opérateurs de comparaison fonctionnent aussi avec les chaînes.
Tous les opérateurs de comparaison fonctionnent avec les agents. Les tortues sont comparées par numéro d'identification. Les patches sont comparés de haut en bas, de gauche à droite, ainsi, le patch 0 10 est plus petit que le patch 0 9 et le patch 9 0 est plus petit que le patch 10 0. Les liens sont ordonnés en fonction du noeud terminal et en cas d'attache, par race. Ainsi, le lien 0 9 est avant le lien 1 10 car l'extrémité 1 est plus petite, et le lien 0 8 est inférieur au lien 0 9. S'il y a plusieurs races de liens, les liens sans races viennent avant les liens appartenant à des races ayant les mêmes points terminaux et les liens avec races seront rangés dans l'ordre où ils ont été déclarés dans le panneau "Procedures".
On peut tester l'égalité ou l'inégalité des ensembles d'agents. Deux ensembles d'agents sont égaux s'ils sont de même type (tortue ou patch) et contiennent les mêmes agents.
Si vous n'êtes pas sûr de la manière dont NetLogo interprétera votre code, ajoutez des parenthèses.
show 5 * 6 + 6 / 3 => 32 show 5 * (6 + 6) / 3 => 20
Retourne l'arc sinus (l'inverse du sinus) du nombre number donné. L'entrée doit appartenir à l'intervalle -1 à 1. Le résultat est en degrés et appartient à l'intervalle -90 à 90.
L'agent agent ou les agents de l'ensemble d'agents agenset exécutent les commandes commands données.
ask turtles [ fd 1 ] ;; toutes les tortues avancent d'un pas ask patches [ set pcolor red ] ;; tous les patches se colorent en rouge ask turtle 4 [ rt 90 ] ;; seule la tortue numéro 4 tourne à droite
Note 1 : seul l'observateur (observer) peut s'adresser à toutes les tortues ou à tous les patches. Ceci afin d'empêcher d'avoir par inadvertance toutes les tortues commander à toutes les tortues ou tous les patches commander à tous les patches, ce qui est une erreur courante si vous ne faites pas attention au type d'agents qui devra exécuter le code que vous écrivez.
Note 2 : Seuls les agents qui appartiennent à l'ensemble au moment où la demande est faite exécutent les commandes.
Les agents de l'ensemble d'agents agenset exécutent les commandes commands données en utilisant le mécanisme du « chacun son tour » pour simuler un comportement concurrentiel. Voir la section Ask-Concurrent du Guide de programmation pour les détails de fonctionnement.
Note : seuls les agents qui appartiennent à l'ensemble au moment où la demande est faite exécutent les commandes
Voir aussi without-interruption
Retourne un sous-ensemble de l'ensemble d'agents agenset spécifié ne comprenant que les agents se trouvant sur les patches situés aux distances données, distances mesurées selon les axes x et y par rapport à l'agent appelant. Les distances sont spécifiées dans des listes de deux éléments, où les deux éléments sont les décalages (les distances horizontale et verticale) x et y.
Si la commande vient de l'observateur, les distances sont mesurées par rapport à l'origine, en d'autres mots, les points correspondent aux coordonnées absolues des patches
Si la commande vient d'une tortue, les distances sont mesurées relativement à la position exacte de la tortue et non à partir du centre du patch sur lequel se trouve la tortue.
ask turtles at-points [[2 4] [1 2] [10 15]] [ fd 1 ] ;; seules les tortues situées sur les patches ;; aux distances (2,4), (1,2) et (10,15) ;; relatives à l'appelant se déplacent
Retourne l'arc tangente en degrés (de 0 à 360), de x divisé par y.
Quand y vaut 0 et si x est positif, la primitive retourne 90; si x est négatif, elle retourne 270; si x vaut zéro, vous obtenez une erreur.
Notez que cette version de la fonction atan a été développée pour se conformer à la géométrie du monde NetLogo où une orientation ou un cap (heading) 0 pointe vers le haut (le Nord), 90 vers la droite (l'Est), 180 vers le bas (le Sud) et 270 vers la gauche (l'Ouest). (En géométrie « normale », un angle de 0 pointe à droite, de 90 vers le haut, et ainsi de suite, dans le sens inverse des aiguilles d'une montre tout autour du cercle, et atan est alors défini en conséquence.)
show atan 1 -1 => 135 show atan -1 1 => 315
Retourne true (vrai) si l'auto-plotting (ajustement des axes du traceur de courbes pour tenir compte de la taille croissante du graphique en train de se dessiner) est activé pour le traceur courant, sinon retourne false (faux).
Cette paire de commandes est utilisée pour contrôler la fonctionnalité NetLogo d'auto-plotting dans le traceur courant. Quand elle est active (auto-plot-on), cette fonctionnalité ajuste automatiquement les axes x et y du traceur de courbes chaque fois que le crayon courant dépasse les limites de la zone de dessin du graphique. Elle est utile quand on veut dessiner toutes les valeurs dans le traceur courant quelles que soient les dimensions du graphiques.
La tortue recule du nombre de pas number. (Si number est négatif, la tortue avance.)
Les tortues qui utilisent cette primitive ne peuvent avancer au maximum que d'une unité par incrément de temps. Ainsi, les commandes bk 0.5 et bk 1 nécessitent chacune une unité de temps, mais bk 3 en demande trois.
Si la tortue ne peut avancer du nombre de pas demandés parce que la topologie courante du monde NetLogo ne le permet pas, la tortue fait autant de pas de une unité que possible puis s'arrête.
Retourne une liste contenant les 14 teintes de base de NetLogo.
print base-colors => [5 15 25 35 45 55 65 75 85 95 105 115 125 135] ask turtles [ set color one-of base-colors ] ;; chaque tortue est colorée avec l'une des teintes de ;; base choisie au hasard ask turtles [ set color one-of remove gray base-colors ] ;; chaque tortue est colorée avec l'une des teintes de ;; base choisie au hasard sauf avec le gris
Émet un bip sonore. Notez que le bip retentit immédiatement, ainsi, plusieurs commandes beep successives peuvent produire un son paraissant continu.
Exemple :
beep ;; émet un seul bip repeat 3 [ beep ] ;; émet 3 bips successifs, ;; vous n'entendez donc qu'un seul signal sonore repeat 3 [ beep wait 0.1 ] ;; produit 3 bips successifs, mais ;; séparés par 1/10 de seconde
Retourne un ensemble d'agents formé des deux noeuds connectés par le lien courant.
crt 2 ;; créer 2 tortues ask turtle 0 [ create-link-with turtle 1 ] ;; demander à la tortue 0 de se lier à la tortue 1 ask link 0 1 [ ask both-ends [ set color red ] ] ;; demander aux deux extrémités de se colorer en rouge
C'est une variable tortue et lien préprogrammée. Elle contient l'ensemble d'agents formé de toutes les tortues ou de tous les liens de même race que cette tortue ou ce lien. (Pour les tortues ou les liens n'appartenant pas à race particulière, il s'agit de l'ensemble d'agents turtles contenant toutes les tortues et de l'ensemble d'agents links contenant tous les liens.) Vous pouvez donner une autre valeur à cette variable pour modifier une race de tortues ou une race de liens.
Voir aussi breed, directed-link-breed et undirected-link-breed
Exemple :
breed [cats cat] breed [dogs dog] ;; code pour la tortue : if breed = cats [ show "miaou!" ] set breed dogs show "whaff!"
directed-link-breed [ roads road ] ;; code pour le lien if breed = roads [ set color gray ]
Ce mot-clé, tout comme les mots-clés globals, turtles-own et patches-own, ne peut être utilisé qu'au début du panneau "Procedures", avant les définitions des procédures. Il permet de définir une race de tortue. La première entrée définit le nom de l'ensemble d'agents associé à la race (en général, un nom au pluriel). La seconde entrée définit le nom d'un membre quelconque de cette race (en général, au singulier).
Toute tortue d'une race donnée :
Le plus souvent, l'ensemble d'agents est utilisé avec la commande ask pour ne donner des commandes qu'aux tortues appartenant à une race particulière.
breed [mice mouse] ;; définit la race souris breed [frogs frog] ;; définit la race grenouilles
to setup clear-all create-mice 50 ;; créer 50 tortues de race souris ask mice [ set color white ] ;; en faire des souris blanches create-frogs 50 ;; créer 50 tortues de race grenouilles ask frogs [ set color green ] ;; en faire des grenouilles vertes show [breed] of one-of mice ;; afficher mice (dans le Centre de commande) show [breed] of one-of frogs ;; afficher frogs (dans le Centre de commande) end
show mouse 1 ;; écrire (mouse 1) show frog 51 ;; écrire (frog 51) show turtle 51 ;; écrire (frog 51)
Voir aussi globals, patches-own, turtles-own, <breeds>-own, create-<breeds>, <breeds>-at, <breeds>-here
Utilisé avec une liste, but-first retourne tous les éléments de la liste list sauf le premier, et but-last retourne tous les éléments de la liste list sauf le dernier.
Utilisés avec une chaîne string, but-first et but-last retournent cette chaîne raccourcie en omettant le premier, respectivement le dernier caractère de la chaîne originale.
;; ma-liste contient [2 4 6 5 8 12] set ma-liste but-first ma-liste ;; ma-liste contient maintenant [4 6 5 8 12] set ma-liste but-last ma-liste ma-liste contient maintenant [4 6 5 8] show but-first "string" ;; écrit "tring" show but-last "string" ;; écrit "strin"
Retourne true (vrai) si la tortue appelée peut se déplacer de la distance distance en suivant son cap actuel sans violer la topologie, sinon retourne false (faux).
Cette primitive est l'équivalent de la commande :
patch-ahead distance != nobody
Exécute les commandes commands1. Si une erreur d'exécution se produit avec commands1, NetLogo ne s'arrête pas et n'informe pas l'utilisateur de la survenue de l'erreur. Il supprime l'erreur et exécute les commandes commands2 à la place.
Le reporter error-message peut être utilisé dans l'entrée commands2 pour savoir quelle erreur a été supprimée dans commands1. Voir error-message.
Note : les deux listes de commandes commands1 et commands2 sont exécutées sans interruption (comme avec la commande without-interruption).
carefully [ show 1 / 1 ] [ print error-message ] => 1 carefully [ show 1 / 0 ] [ print error-message ] => division by zero ;; division par zéro
Retourne le plus petit nombre entier plus grand ou égal au nombre number.
show ceiling 4.5 => 5 show ceiling -4.5 => -4
Réinitialise toutes les variables globales à zéro et appelle les primitives reset-ticks, clear-turtles, clear-patches, clear-drawing, clear-all-plots et clear-output.
Efface le contenu de tous les traceurs de graphiques du modèle. Voir clear-plot pour plus d'informations.
Efface toutes les lignes et tous les tampons dessinés par les tortues sur la couche de dessin.
Efface tous les textes affichés dans la zone de sortie du modèle, s'il y en a une. Sinon, ne fait rien.
Efface tous les patches et remet toutes les variables patch à leur valeur initiale par défaut, y compris en redessinant tous les patches en noir.
Dans le traceur de graphiques courant seulement, clear-plot efface tous les graphiques (les courbes), supprime tous les crayons temporaires, redonne au traceur ses valeurs par défaut (dimension en x, dimension en y, etc.) et réinitialise tous les crayons permanents à leurs valeurs par défaut. Les valeurs par défaut pour le traceur et ses crayons permanents sont spécifiées dans la fenêtre d'édition des traceurs "Plot", fenêtre qui est affichée quand vous éditez le traceur. S'il n'y a plus de crayons une fois tous les crayons temporaires supprimés, autrement dit s'il n'y avait pas de crayon permanent, un crayon permanent par défaut est créé. Ce nouveau crayon reçoit les réglages initiaux suivants :
Voir aussi clear-all-plots
Supprime toutes les tortues.
Cette commande réinitialise aussi le numéro d'identification (who number), de manière à ce que la prochaine tortue créée porte le numéro 0.
Voir aussi die
C'est une variable tortue ou une variable lien préprogrammée. Elle contient la couleur de la tortue ou du lien. Vous pouvez modifier la valeur de cette variable pour changer la couleur de la tortue ou du lien. La couleur peut être représentée soit par une couleur NetLogo (un seul nombre), soit par une couleur RGB (une liste de trois nombres). Pour une explication détaillée, voir la section Couleurs du Guide de programmation.
Voir aussi pcolor
Retourne le cosinus de l'angle number donné. S'attend à recevoir un angle exprimé en degrés.
show cos 180 => -1
Retourne le nombre d'agents appartenant à l'ensemble d'agents agentset donné.
show count turtles ;; affiche le nombre total des tortues show count patches with [pcolor = red] ;; affiche le nombre total des patches rouges
Crée number nouvelles tortues. Toutes les tortues sont créées à la position (0, 0), reçoivent l'une des 14 couleurs primaires NetLogo et ont des orientations (des caps) régulièrement espacés de 0 à 360 (l'angle entre les caps de deux tortues successives dépend du nombre de tortues number à créer).
Si la forme create-ordered-<breeds> est utilisée, les nouvelles tortues appartiennent à la race <breeds> spécifiée dans la commande.
Si une liste commands est fournie, les nouvelles tortues exécutent immédiatement les commandes placées entre les crochets (les commandes de la liste). Cette forme est très utile pour donner aux nouvelles tortues une même couleur, un même cap ou quoi que ce soit d'autre. (Les nouvelles tortues sont créées toutes d'un seul coup, puis elles exécutent chacune, les unes après les autres et dans un ordre aléatoire, les commandes transmises.)
cro 100 [ fd 10 ] ;; crée un cercle de tortues régulièrement espacées
Note : Pendant que ces commandes sont exécutées, aucun autre agent n'a l'autorisation d'exécuter quelque code que ce soit (comme avec la commande without-interruption). Cette précaution garantit que si ask-concurrent est utilisé, les nouvelles tortues ne puissent pas interagir avec n'importe quel autre agent avant qu'elles n'aient toutes été complètement initialisées.
Ces primitives permettent de créer des liens entre les tortues d'une race ou entre les tortues sans races.
create-link-with crée un lien non orienté entre l'appelant et l'agent.
create-link-to crée un lien orienté de l'appelant vers l'agent.
create-link-from crée un lien orienté de l'agent vers l'appelant.
Quand la forme plurielle du nom de la race (<breeds>) est utilisée, la primitive doit recevoir en entrée un ensemble d'agents turtleset à la place d'un agent et des liens sont créés entre l'appelant et tous les agents de l'ensemble d'agents.
Le bloc de commandes optionnel [ commands ] est l'ensemble des commandes que chaque nouveau lien formé doit exécuter. (D'abord tous les liens sont créés, puis ils exécutent les uns après les autres et dans un ordre aléatoire les commandes qui leur ont été passées.)
Un noeud ne peut être lié à lui-même. De plus, vous ne pouvez pas avoir plus d'un lien non orienté de la même race entre deux noeuds, tout comme vous ne pouvez pas avoir plus d'un seul lien orienté de même race allant dans la même direction entre deux noeuds.
Si vous essayez de créer un lien là où un lien (de même race) existe déjà, rien ne se passe. Si vous tentez de créer un lien d'une tortue vers elle-même, vous obtenez une erreur d'exécution.
to setup crt 5 ;; la tortue 1 crée des liens avec toutes les autres tortues ;; le lien entre la tortue et elle-même est ignoré ask turtle 0 [ create-links-with other turtles ] show count links ;; affiche 4 ;; ne fait rien puisque le lien existe déjà ask turtle 0 [ create-link-with turtle 1 ] show count links ;; affiche 4 puisque le lien à créer existe déjà ask turtle 2 [ create-link-with turtle 1 ] show count links ;; affiche 5 end
;; définir les races de liens directed-link-breed [red-links red-link] undirected-link-breed [blue-links blue-link]
to setup crt 5 ;; créer des liens dans les deux directions entre la tortue 0 ;; et toutes les autres tortues ask turtle 0 [ create-red-links-to turtles ] ask turtle 0 [ create-red-links-from turtles ] show count links ;; affiche 8 ;; créer maintenant des liens non orientés entre la tortue 0 ;; et les autres tortues ask turtle 0 [ create-blue-links-with turtles ] show count links ;; affiche 12 end
Crée number nouvelles tortues. Les nouvelles tortues sont placées au centre du monde (coordonnées 0 0), ont une orientation aléatoire (nombre entier de 0 à 360) et une couleur choisie au hasard parmi les 14 couleurs primaires de NetLogo.
Si la forme create-<breeds> est utilisée, toutes les nouvelles tortues appartiennent à la race spécifiée.
Si une liste de commandes [ commands ] est fournie, les nouvelles tortues exécutent immédiatement les commandes données entre crochets. Cette forme est très utile pour donner aux nouvelles tortues une même couleur, un même cap, ou quoi que ce soit d'autre. (Les nouvelles tortues sont toutes créées d'un coup, puis exécutent chacune, les unes après les autres et dans un ordre aléatoire, les commandes transmises.)
crt 100 [ fd 10 ] ;;crée un ensemble de tortues réparties aléatoirement
breed [canaries canary] breed [snakes snake]
to setup clear-all create-canaries 50 [ set color yellow ] create-snakes 50 [ set color green ] end
Note : pendant que les commandes sont exécutées, aucun autre agent n'a l'autorisation d'exécuter quelque code que ce soit (comme avec la commande without-interruption). Cette précaution garantit que si ask-concurrent est utilisé, les nouvelles tortues ne puissent pas interagir avec n'importe quel autre agent avant qu'elles n'aient toutes été complètement initialisées.
Un nouveau crayon de traceur de courbes temporaire portant le nom spécifié par string est créé dans le traceur courant et désigné comme crayon courant.
Peu de modèles devront utiliser cette primitive car tous les crayons temporaires disparaissent quand les primitives clear-plot ou clear-all-plots sont appelées. La méthode normale pour créer un crayon est de faire un crayon permanent dans le fenêtre d'édition du traceur "Plot".
Si un crayon temporaire portant le même nom existe déjà dans le traceur courant, aucun nouveau crayon n'est créé et le crayon existant devient le crayon par défaut. Si un crayon permanent portant le même nom existe déjà dans le traceur courant, vous obtenez une erreur d'exécution.
Le nouveau crayon temporaire est créé avec les réglages initiaux suivants :
Voir aussi : clear-plot, clear-all-plots et set-current-plot-pen
Retourne une chaîne contenant la date et l'heure du système. Le format est montré ci-dessous. Tous les champs ont une largeur fixe, ce qui fait qu'ils occupent toujours la même place dans la chaîne. La précision potentielle de l'horloge est la milliseconde. (En pratique, l'obtention de cette précision peut varier d'un système à l'autre, dépendant notamment des performances de la Machine Java Virtuelle sous-jacente.)
show date-and-time => "01:19:36.685 PM 19-Sep-2002"
Fait mourir la tortue ou le lien. Ils ne font dès lors plus partie de la simulation.
if xcor > 20 [ die ] ;; toutes les tortues avec xcor > 20 meurent ask links with [color = blue] [ die ] ;; tous les liens de couleur bleue meurent
Voir aussi clear-turtles et clear-links
Demande à chaque patch de distribuer à part égale la valeur (number * 100) pourcent de la valeur de la variable patch-variable à ses huit patches voisins. number peut prendre toute valeur de 0 à 1. Quelle que soit la topologie utilisée, la somme de patch-variable sera conservée de par le monde. (Si un patch a moins de huit voisins, chaque voisin reçoit un huitième de la somme à partager et le patch « distributeur » garde ce qu'il n'a pas pu donner.)
Notez que c'est une commande réservée à l'observateur, même si vous aimeriez que ce soit une commande patch. (La raison est que cette commande doit agir sur tous les patches d'un coup alors que les commandes patch agissent sur les patches individuels.)
diffuse chemical 0.5 ;; chaque patch diffuse 50% de sa variable chemical ;; à ses 8 patches voisins. Donc, chaque patch ;; reçoit 1/8 de 50% de la variable chemical ;; de chaque patch voisin.
Fonctionne comme la primitive diffuse, mais ne transmet qu'à ses quatre patches voisins (au nord, au sud, à l'est et à l'ouest), pas aux patches voisins situés sur les diagonales.
diffuse4 chemical 0.5 ;; chaque patch diffuse 50% de sa variable chemical ;; à ses 4 patches voisins. Donc, chaque patch ;; reçoit 1/4 de 50% de la variable chemical ;; de chaque patch voisin.
Ce mot-clé, tout comme les mots-clés globals et breeds, ne peut être utilisé qu'au début du panneau "Procedures", avant toute définition de procédures. Il définit une race de liens orientés. Les liens d'une race particulière doivent être soit tous orientés, soit tous non orientés. Le premier membre de la liste, <link-breeds>, spécifie le nom de l'ensemble d'agents associé avec le lien de race. Le second membre, <link-breed> définit le nom d'un seul individu de cette race. Les liens orientés peuvent être créés en utilisant les primitives create-link(s)-to et create-link(s)-from, mais pas la primitive create-link(s)-with.
Tout lien de la race de liens donnée :
Le plus souvent, l'ensemble d'agents est utilisé avec la commande ask pour ne donner des commandes qu'aux liens d'une race particulière.
directed-link-breed [streets street] directed-link-breed [highways highway]
to setup clear-all crt 2 ;; créer un lien de la tortue 0 à la tortue 1 ask turtle 0 [ create-street-to turtle 1 ] ;; créer un lien de la tortue 1 à la tortue 0 ask turtle 0 [ create-highway-from turtle 1 ] end
ask turtle 0 [ show one-of in-links ] ;; affiche (street 0 1) ask turtle 0 [ show one-of out-links ] ;; affiche (highway 1 0)
Voir aussi breed et undirected-link-breed
Provoque une mise à jour immédiate de la Vue. (Exception : si l'utilisateur utilise le curseur de vitesse "speed" pour accélérer la simulation, la mise à jour peut être sautée.)
Cette primitive annule aussi l'effet de la commande no-display de manière à ce que si les mises à jour de la Vue avaient été désactivées, elles soient à nouveau activées.
no-display ask turtles [ jump 10 set color blue set size 5 ] display ;; les tortues se déplacent, changent de couleurs et grandissent ;; sans qu'aucun de ces états intermédiaires ne soit visible ;; par l'utilisateur, seul l'état final sera affiché une fois ;; toutes les modifications effectuées
Même si no-display n'a pas été utilisé, display peut quand même être utile car, normalement, NetLogo est libre de sauter certaines mises à jours de la Vue, parce que moins il y a de mises à jours, plus la simulation tourne rapidement. Cette commande permet de forcer une mise à jour de manière à ce que quel que soit le changement intervenu dans le monde, il puisse être montré à l'utilisateur.
ask turtles [ set color red ] display ask turtles [ set color blue] ;; les tortues deviennent rouges, puis bleues; l'utilisation de ;; "display" force les tortues rouges à apparaître brièvement
Notez que les commandes display et no-display opèrent indépendamment de l'état de la case à cocher "view updates" de la barre d'outils du panneau "Interface" qui permet de « geler » la vue.
Voir aussi no-display
Retourne la distance qu'il y a entre l'agent appelant et la tortue ou au patch spécifié par agent.
La distance jusqu'à un patch ou à partir d'un patch est toujours mesurée à partir du centre du patch. Les tortues et les patches utilisent la distance « enroulée » (autour des bords du monde) si l'enroulement est autorisé par la topologie et si la distance « enroulée » est plus courte.
ask turtles [ show max-one-of turtles [distance myself] ] ;; chaque tortue affiche la tortue qui est le plus loin d'elle
Retourne la distance entre l'agent courant et le point de coordonnées ( xcor, ycor ).
La distance à partir d'un patch est toujours mesurée à partir du centre du patch. Les tortues et les patches utilisent la distance « enroulée » (autour des bords du monde) si l'enroulement est autorisé par la topologie et si la distance « enroulée » est plus courte.
if (distancexy 0 0) > 10 [ set color green ] ;; toutes les tortues situées à plus de 10 unités ;; du centre du monde deviennent vertes
Déplace la tortue sur le patch voisin dont la variable variable-patch a la plus petite valeur. Si aucun patch voisin n'a sa variable-patch plus petite que celle du patch courant, la tortue reste où elle est. Si plusieurs patches voisins ont la même plus petite valeur, la tortue en choisit un au hasard. Les valeurs non numériques sont ignorées.
Pour la comparaison des valeurs, la primitive downhill prend en compte les huit patches voisins alors que la primitive downhill4 ne prend en compte que les quatre voisins ayant un côté adjacent à l'un des siens.
Cette primitive est équivalente au code suivant (partant du principe que les variables ont des valeurs numériques) :
move-to patch-here ;; va au centre du patch let p min-one-of neighbors [patch-variable] ;; ou neighbors4 if [patch-variable] of p < patch-variable [ face p move-to p ]
Notez que la tortue se retrouve toujours au centre du patch et que son orientation (cap) est un multiple de 45 (avec downhill) ou de 90 (avec downhill4).
Retourne l'incrément en x (reporter dx) ou l'incrément en y (reporter dy). Cet incrément est la valeur dont la coordonnée xcor ou ycor de la tortue changera si la tortue doit avancer d'un pas en suivant son cap actuel.
Note : dx est simplement le sinus du cap de la tortue et dy en est simplement le cosinus. (Si vous vous attendiez au contraire, c'est parce qu'en NetLogo, une orientation de 0 correspond au Nord et une orientation de 90 à l'Est, ce qui est l'inverse de la manière dont les angles sont habituellement définis en géométrie.)
Note : dans les versions précédentes de NetLogo, ces primitives étaient utilisées dans bien des situations pour lesquelles la nouvelle primitive patch-ahead est nettement plus appropriée.
Retourne true (vrai) si la liste list ou la chaîne de caractères string est vide, sinon retourne false (faux).
Note : la liste vide est notée []. La chaîne vide est notée "".
Ce mot-clé doit être utilisé pour terminer la définition d'une procédure. De plus, il doit être seul sur sa ligne de code.
end1 est une variable de lien préprogrammée. Elle désigne la première extrémité (le premier noeud ou la première tortue) d'un lien. Pour les liens orientés, il s'agit toujours de la source, pour les liens non-orientés, il s'agit toujours de la tortue qui a le plus petit numéro d'identification (who-number). Vous ne pouvez ni spécifier ni modifier la valeur de end1.
crt 2 ask turtle 0 [ create-link-to turtle 1 ] ask links [ show end1 ] ;; affiche turtle 0
end2 est une variable de lien préprogrammée. Elle désigne la seconde extrémité (le second noeud ou la seconde tortue) d'un lien. Pour les liens orientés, il s'agit toujours de la destination, pour les liens non-orientés, il s'agit toujours de la tortue qui a le plus grand numéro d'identification (who-number). Vous ne pouvez ni spécifier ni modifier la valeur de end2.
crt 2 ask turtle 1 [ create-link-with turtle 0 ] ask links [ show end2 ] ;; affiche turtle 1
Retourne une chaîne de caractères décrivant l'erreur qui a été supprimée par la primitive carefully.
Le reporter error-message ne peut être utilisé que dans le second bloc de la commande carefully.
Voir aussi carefully
Exécute la liste des commandes [commands] données seulement s'il s'est écoulé plus de number secondes depuis la dernière fois que cet agent les a exécutées dans ce contexte. Sinon, les commandes de la liste sont ignorées.
La primitive every n'exécute pas d'elle-même les commandes de la liste de manière répétée. Vous devez placer every dans une boucle ou dans un bouton "forever" (pour-toujours) si vous voulez que les commands soient exécutées plusieurs fois de suite. Donc, every ne contrôle que la fréquence d'exécution de ses commandes.
L'expression « dans ce contexte » utilisée ci-dessus signifie « au cours de la même demande ask » (ou de la pression sur un bouton ou pour la commande entrée dans le Centre de commande). Il ne sert donc à rien d'écrire ask turtles [ every 0.5 [ ... ] ], parce que quand l'exécution de la commande ask se termine, toutes les tortues suppriment leur compteur pour every. L'utilisation correcte de cette commande est montrée ci-dessous :
every 0.5 [ ask turtles [ fd 1 ] ] ;; les tortues avancent d'un pas deux fois par seconde every 2 [ set index index + 1 ] ;; toutes les deux secondes, index est incrémenté
Voir aussi wait
Retourne la valeur de e élevé à la puissance number.
Note : cette primitive fait la même chose que le code e ^ nombre.
export-view sauvegarde l'image affichée dans la Vue courante dans un fichier image externe (sur le disque) dont le nom est spécifié par la chaîne filename. Le fichier image sauvegardé étant au format PNG (Portable Network Graphics), il est recommandé de fournir un nom de fichier se terminant par .png.
export-interface fonctionne de la même manière, mais ici c'est l'image de tout le panneau "Interface" qui est sauvegardée.
export-output sauvegarde le contenu de la zone de sortie du modèle dans un fichier externe dont le nom est spécifié par la chaîne filename. (Si le modèle n'a pas de zone de sortie séparée, c'est le contenu de la zone sortie du Centre de commande qui est sauvegardé.)
export-plot sauvegarde les valeurs x et y (les coordonnées) de tous les points dessinés par tous les crayons du traceur désigné par la chaîne plotname dans le fichier externe spécifié par la chaîne filename. Si un crayon est en mode barre (mode 0) et que la valeur y du point est plus grande que 0, ce sont les coordonnées du coin supérieur gauche de la barre qui sont exportées. Si la valeur y est inférieure à 0, ce sont les coordonnées du coin inférieur gauche de la barre qui sont exportées.
export-all-plots sauvegarde le contenu de tous les traceurs du modèle dans un fichier externe spécifié par la chaîne filename. Le format de chaque traceur est identique à celui généré par la commande export-plot.
export-world sauvegarde les valeurs de toutes les variables, c'est-à-dire les valeurs des variables préprogrammées, celles des variables définies dans le code du modèle (par le programmeur), celles des variables de l'observateur, celles des variables de toutes les tortues et celles des variables de tous les patches, l'image laissée par les tortues (ou chargée) dans la couche de dessin, le contenu de la zone de sortie (si elle existe), le contenu de tous les traceurs de courbes et l'état du générateur de nombres aléatoires dans un fichier externe dont la nom est spécifié par la chaîne filename. (Le fichier résultant peut être chargé dans NetLogo au moyen de la primitive import-world.) Par contre, export-world ne sauvegarde pas l'état des fichiers ouverts.
Les fichiers créés par export-plot, export-all-plots et export-world sont des fichiers au format texte à « valeurs séparées par des virgules », format appelé CSV (Commas Separated Values), et d'extension de nom .csv. Les fichiers CSV peuvent être lus par la plupart des tableurs et des bases de données ainsi que par tout éditeur de texte.
Si un ficher de même nom existe déjà, son contenu est écrasé et remplacé par le nouveau.
Si vous voulez exporter dans un fichier se trouvant à un autre endroit que le fichier du modèle, vous devez mettre dans filename la totalité du chemin du fichier que vous voulez exporter. (Utilisez la barre oblique, /, comme séparateur de dossiers.)
Notez que les fonctionnalités de ces primitives sont aussi directement accessibles dans le menu "File" de NetLogo.
export-world "fire.csv" ;; exporte l'état du modèle dans le fichier fire.csv ;; situé dans le dossier NetLogo export-plot "Temperature" "c:/My Documents/plot.csv" ;; exporte le contenu du traceur nommé ;; "Temperature" dans le fichier plot.csv situé ;; dans le dossier C:\My Documents export-all-plots "c:/My Documents/plots.csv" ;; exporte tous les traceurs dans le fichier plots.csv ;; situé dans le dossier C:\My Documents
Permet au modèle d'utiliser les primitives définies dans les extensions spécifiées dans la liste [name ...] donnée en entrée.
Voir le Guide des extensions pour des informations supplémentaires concernant ce sujet.
Retourne une liste de trois valeurs, prises dans l'intervalle 0 à 255, représentant la teinte (hue), la saturation et la brillance de la couleur NetLogo désignée par son numéro de couleur color (de 0 à 140, 140 non compris) ou par son nom (pour les 16 teintes de base).
show extract-hsb red => [2.198 206.372 215] show extract-hsb cyan => [127.5 145.714 196]
Voir aussi approximate-hsb, approximate-rgb et extract-rgb
Retourne une liste de trois valeurs, prises dans l'intervalle 0 à 255, représentant les niveau de rouge, de vert (green) et de bleu de la couleur NetLogo désignée par son numéro de couleur color (de 0 à 140, 140 non compris) ou par son nom (pour les 16 teintes de base).
show extract-rgb red => [215 50 41] show extract-rgb cyan => [84 196 196]
Voir aussi approximate-rgb, approximate-hsb et extract-hsb
Fait pivoter l'appelant (donc modifie son cap) de manière à ce qu'il soit face à (que son cap pointe vers) la cible spécifiée par l'entrée agent.
Si l'enroulement (wrapping) est autorisé par la topologie et que la distance « enroulée » (autour des bords du monde) est plus courte, face utilisera le cap suivant le chemin « enroulé ».
Si l'appelant et l'agent ont exactement les mêmes coordonnées (sont sur le même point), le cap de l'appelant n'est pas modifé.
Fait pivoter l'appelant (donc modifie son cap) de manière à ce qu'il soit face à (que son cap pointe vers) la cible spécifiée par ses coordonnées (number-x, number-y).
Si l'enroulement (wrapping) est autorisé par la topologie et que la distance « enroulée » (autour des bords du monde) est plus courte, facexy utilisera le cap suivant le chemin « enroulé ».
Si l'appelant est au point de coordonnées (number-x, number-y), le cap de l'appelant n'est pas modifié.
Retourne true (vrai) quand il n'y a plus de caractères à lire dans le fichier courant (qui a été préalablement ouvert par la primitive file-open). Sinon retourne false (faux).
file-open "mon-fichier.txt" print file-at-end? => false ;; il y a encore des caractères à lire print file-read-line => This is the last line in file print file-at-end => true ;; il n'y a plus de caractères à lire, ;; nous avons atteint la fin du fichier
Voir aussi file-open, file-close-all
Ferme un fichier préalablement ouvert avec file-open.
Notez que cette commande et la commande file-close-all sont les deux seuls moyens de revenir au début d'un fichier ouvert et de changer le mode d'utilisation de ce fichier.
Si aucun fichier n'est ouvert, cette primitive ne fait rien.
Voir aussi file-close-all, file-open
Ferme tous les fichiers (s'il y en a) préalablement ouverts avec file-open.
Notez que cette commande et la commande file-close sont les deux seuls moyens de revenir au début d'un fichier ouvert et de changer le mode d'utilisation de ce fichier.
Voir aussi file-close, file-open
Supprime le fichier dont le nom est spécifié par la chaîne de caractères string.
L'entrée string doit désigner un fichier existant avec autorisation d'écriture pour l'utilisateur. De plus, ce fichier ne doit pas être ouvert. Utilisez la commande file-close pour fermer un fichier ouvert avant de pouvoir le supprimer.
Notez que la chaîne de caractères string peut être soit un simple nom de fichier, soit un nom de chemin de fichier absolu. Si c'est un nom de fichier, la commande recherche ce fichier dans le répertoire courant. Le répertoire courant peut être changé avec la commande set-current-directory. Par défaut, le répertoire courant est le répertoire dans lequel se trouve le modèle courant.
Retourne true (vrai) si l'entrée string est le nom d'un fichier existant dans le système. Sinon, retourne false (faux).
Notez que la chaîne de caractères string peut être soit un simple nom de fichier, soit un nom de chemin de fichier absolu. Si c'est un nom de fichier, la commande recherche ce fichier dans le répertoire courant. Le répertoire courant peut être changé avec la commande set-current-directory. Par défaut, le répertoire courant est le répertoire dans lequel se trouve le modèle courant.
Force NetLogo d'écrire sur le disque toutes les modifications de données faites en mémoire. Quand vous utilisez file-write ou d'autres commandes de sortie, les valeurs en mémoire peuvent ne pas être immédiatement enregistrées sur le disque. Cette commande améliore les performances des commandes de sortie de fichiers. La fermeture d'un fichier garantit que toutes les modifications sont écrites sur le disque.
Vous avez parfois besoin d'écrire des données sur le disque sans fermer le fichier. Par exemple, vous pourriez utiliser un fichier pour communiquer avec un autre programme se trouvant sur votre machine et voulez que cet autre programme puisse immédiatement lire les sorties de NetLogo.
Cette commande interprète la chaîne string comme étant le nom de chemin d'un fichier et ouvre ce fichier. Vous pouvez ensuite utiliser les reporters file-read, file-read-line et file-read-characters pour lire dans ce fichier, ou file-write, file-print, file-type ou file-show pour écrire dans ce fichier.
Notez que vous ne pouvez ouvrir un fichier qu'en lecture ou qu'en écriture, jamais pour les deux opérations à la fois. La prochaine primitive d'entrée/sortie de fichier que vous utiliserez après cette commande dictera le mode dans lequel le fichier sera ouvert. Pour changer de mode, vous devez d'abord fermer le fichier avec la commande file-close.
De plus, il faut que le fichier existe déjà pour pouvoir être ouvert en mode lecture.
Quand un fichier est ouvert en mode écriture, toutes les nouvelles données sont ajoutées à la fin du fichier original. S'il n'y a pas de fichier original, NetLogo crée un nouveau fichier correspondant à l'entrée string. (Vous devez avoir l'autorisation d'écriture dans le dossier de destination.) Si vous ne voulez pas ajouter les données à la suite des données existantes mais les utiliser pour remplacer (écraser) le contenu actuel du fichier, utilisez d'abord file-delete pour supprimer le fichier, peut-être à l'intérieur d'une commande carefully si vous n'êtes pas certain de son existence.
Notez que la chaîne de caractères string peut être soit un simple nom de fichier, soit un nom de chemin de fichier absolu. Si c'est un nom de fichier, la commande recherche ce fichier dans le répertoire courant. Le répertoire courant peut être changé avec la commande set-current-directory. Par défaut, le répertoire courant est le répertoire dans lequel se trouve le modèle courant.
file-open "my-file-in.txt" print file-read-line => First line in file ;; le fichier est en mode lecture file-open "C:\\NetLogo\\my-file-out.txt" ;; sous Windows file-print "Hello World" ;; le fichier est en mode écriture
Voir aussi file-close
Écrit, dans un fichier ouvert, les données value suivies d'un retour de chariot.
Le nom de l'agent appelant n'est pas écrit dans le fichier avant value, contrairement à ce qui se passe avec la primitive file-show.
Notez que cette commande est l'équivalent, pour les entrées/sorties de fichiers, de la primitive print, et que la commande file-open doit être appelée avant que file-print puisse être utilisée.
Voir aussi file-show, file-type et file-write
Ce reporter lit la constante suivante dans le fichier ouvert et l'interprète comme si elle avait été écrite dans le Centre de commande. Elle retourne la valeur résultante. Ce résultat peut être un nombre, une liste, une chaîne, un booléen ou la valeur spéciale nobody.
Le caractère "espace" sépare les constantes. Chaque appel de file-read saute aussi bien les espaces avant et après.
Notez que les chaînes doivent être entourées de guillemets doubles. Utilisez la commande file-write pour avoir une écriture automatique de ces guillemets.
Notez aussi qu'il faut d'abord ouvrir le fichier avec la commande file-open avant de pouvoir lire dans ce fichier, et qu'il doit encore rester des données à lire dans le fichier. Utilisez le reporter file-at-end? pour savoir si la fin du fichier a été atteinte.
file-open "mon-fichier.data" print file-read + 5 ;; Si la valeur suivante est le nombre 1 => 6 print length file-read ;; Si la valeur suivante est la liste [1 2 3 4] => 4
Voir aussi file-open et file-write
Lit dans le fichier ouvert le nombre de caractères spécifié par number et les retourne sous forme de chaîne de caractères. S'il reste moins de caractères à lire que le nombre spécifié dans number, la chaîne retournée contient les caractères restants.
Notez que cette commande retourne tous les caractères, y compris les caractères "nouvelle ligne" et "espace".
Notez aussi qu'il faut d'abord ouvrir le fichier avec la commande file-open avant de pouvoir lire dans ce fichier, et qu'il doit encore rester des données à lire dans le fichier. Utilisez le reporter file-at-end? pour savoir si la fin du fichier a été atteinte.
file-open "mon-fichier.txt" print file-read-characters 5 ;; Si la ligne courante du fichier est "Hello World" => Hello
Voir aussi file-open
Lit la ligne suivante dans le fichier ouvert et la retourne sous forme de chaîne. Elle reconnaît la fin de la ligne grâce au caractère "retour de chariot", au caractère "fin de fichier" ou à ces deux caractères dans une même ligne. Elle ne retourne pas ces caractères de fin de ligne.
Notez aussi qu'il faut d'abord ouvrir le fichier avec la commande file-open avant de pouvoir lire dans ce fichier, et qu'il doit encore rester des données à lire dans le fichier. Utilisez le reporter file-at-end? pour savoir si la fin du fichier a été atteinte.
file-open "my-file.txt" print file-read-line > Hello World
Voir aussi file-open
Écrit les données contenues dans l'entrée value dans un fichier ouvert en les faisant précéder du nom de l'agent appelant et en les faisant suivre du caractère "retour de chariot". (L'agent appelant est inclus afin de vous aider à savoir quel agent a produit quelle ligne du fichier.) De plus, toutes les chaînes sont automatiquement entourées de guillemets, comme avec la primitive file-write.
Cette commande est l'équivalent pour les entrées/sorties de fichiers de la commande show et qu'il faut d'abord ouvrir le fichier avec la commande file-open avant de pouvoir écrire dans ce fichier.
Voir aussi file-print, file-type et file-write
Écrit les données contenues dans l'entrée value dans un fichier ouvert, sans les faire suivre du caractère "retour de chariot" (contrairement à ce qui se passe avec les primitives file-print et file-show). L'absence du "retour de chariot" permet d'écrire plusieurs valeurs sur la même ligne du ficher.
Le nom de l'agent appelant n'est pas écrit avant les données de value, contrairement à ce qui se passe avec la primitive file-show.
Cette commande est l'équivalent, pour les entrées/sorties de fichiers, de type et la commande file-open doit être appelée avant que file-type puisse être utilisée.
Voir aussi file-print, file-show et file-write
Cette commande écrit les données contenues dans l'entrée value, qui peuvent être un nombre, une chaîne de caractères, une liste, un booléen ou la valeur spéciale nobody dans un fichier ouvert, sans les faire suivre d'un "retour de chariot" (contrairement à ce qui se passe avec les primitives file-print et file-show).
Le nom de l'agent appelant n'est pas écrit avant les données de value, contrairement à ce qui se passe avec la primitive file-show. Les données écrites dans le fichier contiennent aussi les guillemets autour des chaînes de caractères et sont précédées d'un caractère "espace". Ces données sont écrites de manière à ce que la primitive file-read puisse les interpréter.
Cette commande est l'équivalent pour les entrées/sorties de fichiers de write et la primitive file-open doit être appelé avant que file-write puisse être utilisée.
file-open "locations.txt" ask turtles [ file-write xcor file-write ycor ]
Voir aussi file-print, file-show et file-type
Retourne une liste ne contenant que les éléments de la liste en entrée list pour lesquels le reporter booléen vaut true (vrai) — en d'autres mots, les éléments de la liste list qui satisfont à la condition donnée.
Dans reporter, il faut utilisez ? pour faire référence à l'élément courant de la liste list.
show filter [? < 3] [1 3 2] => [1 2] show filter [first ? != "t"] ["hi" "there" "everyone"] => ["hi" "everyone"]
Utilisée avec une liste, cette primitive retourne le premier élément (de rang 0) de la liste list donnée en entrée.
Utilisée avec une chaîne de caractères, cette primitive retourne une chaîne mono-caractère ne contenant que le premier caractère de la chaîne string donnée en entrée.
Retourne le plus grand nombre entier plus petit ou égal à l'entrée number.
show floor 4.5 => 4 show floor -4.5 => -5
Semblable à la primitive ride, mais dans la "Vue 3D" le point de vue de l'observateur se trouve derrière et au-dessus de la tortue désignée par son identificateur turtle. Il la suit.
Voir aussi follow-me, ride, reset-perspective, watch et subject
Quand elle ne reçoit qu'une seule liste, cette primitive exécute les commands placées dans la liste de la deuxième entrée pour chaque élément de la première entrée list. Dans les commands, il faut utiliser ? pour faire référence à l'élément courant de la liste list.
foreach [1.1 2.2 2.6] [ show (word ? " -> " round ?) ] => 1.1 -> 1 => 2.2 -> 2 => 2.6 -> 3
Quand elle reçoit plusieurs listes, la primitive foreach exécute les commands reçues pour chaque groupe d'éléments de chaque liste list1, list2, etc., passée en entrée avant la liste des commandes. Ces commandes sont donc exécutées une première fois pour le premier élément de chaque liste, une seconde fois pour le deuxième élément de chaque liste, et ainsi de suite. Toutes les listes doivent avoir la même longueur. Dans les commands, il faut utilise les primitives ?1 à ?n (où n est le numéro d'ordre du dernier élément de chaque liste) pour faire référence à l'élément courant de chaque list.
Voici quelques exemples pour illustrer cette commande :
(foreach [1 2 3] [2 4 6] [ show word "la somme est: " (?1 + ?2) ]) => "la somme est: 3" => "la somme est: 6" => "la somme est: 9" (foreach list (turtle 1) (turtle 2) [3 4] [ ask ?1 [ fd ?2 ] ]) ;; la tortue 1 avance de 3 patches ;; la tortue 2 avance de 4 patches
La tortue avance du nombre de pas spécifié dans l'entrée number, un pas à la fois. (Si number est négatif, la tortue recule.)
La commande fd 10 est équivalente à repeat 10 [ jump 1 ] et la commande fd 10.5 est équivalente à repeat 10 [ jump 1 ] jump 0.5.
Si la tortue ne peut avancer du nombre de pas demandé parce que la topologie du monde NetLogo ne le permet pas, la tortue fait autant de pas de 1 unité qu'elle peut puis s'arrête.
Ajoute l'élément item au début de la liste list et retourne la nouvelle liste résultant de cette manipulation.
;; admettons que ma-liste soit [5 7 10] set ma-liste fput 2 ma-liste ;; ma-liste est maintenant [2 5 7 10]
Ce mot-clé, tout comme les mots-clés breed, <races>-own, patches-own et turtles-own, ne peut être utilisé qu'au début du code d'un programme, avant les définitions des procédures. Il définit une nouvelle variable globale. Les variables globales sont « globales » parce qu'elles sont accessibles par tous les agents et peuvent être utilisées n'importe où dans le modèle.
Le plus souvent, globals est utilisé pour définir des variables ou des constantes qui doivent pouvoir être utilisées dans plusieurs parties du programme. Il demande une entrée sous forme de liste dont les éléments sont les variables ou les constantes à définir.
La tortue concernée crée le nombre de nouvelles tortues spécifié dans number. Chaque nouvelle tortue est identique et se trouve au même endroit que son parent. Les nouvelles tortues exécutent ensuite les commandes de la liste commands. Vous pouvez utiliser ces commandes pour donner aux nouvelles tortues des couleurs, des orientations, des emplacements différents ou quoi que ce soit d'autre. Les nouvelles tortues sont d'abord toutes créées puis elles exécutent, chacune à leur tour (choisi au hasard) les commandes qui leur sont passées.
Si la variante hatch-<breeds> est utilisée, les nouvelles tortues qui sont créées appartiennent à la race breeds spécifiée. Sinon, les nouvelles tortues sont de la même race que leur parent.
Note : pendant que les commandes spécifiées dans la liste sont exécutées, aucun autre agent n'a l'autorisation d'exécuter quelque code que ce soit (à l'image de ce qui se passe avec la commande without-interruption). Cette précaution garantit que si la primitive ask-concurrent est utilisée, les nouvelles tortues ne puissent pas interagir avec n'importe quel autre agent avant qu'elles n'aient toutes été complètement initialisées.
hatch 1 [ lt 45 fd 1 ] ;; cette tortue crée une nouvelle tortue ;; qui tourne à gauche de 45° et avance d'un pas hatch-sheep 1 [ set color black ] ;; cette tortue crée une nouvelle tortue de race ;; sheep et de couleur noire
Voir aussi create-turtles et sprout
heading est une variable tortue préprogrammée. Elle spécifie la direction (le cap) de la tortue. Sa valeur est toujours un nombre plus grand ou égal à zéro et plus petit que 360. 0 indique le nord, 90 l'est, etc, comme en géographie. Vous pouvez modifier cette variable pour faire tourner (pivoter) la tortue sur elle-même.
Voir aussi right, left, dx et dy
Exemple:
set heading 45 ;; la tortue fait maintenant face au nord-est set heading heading + 10 ;; a le même effet que "rt 10"
hidden? est une variable tortue ou une variable lien préprogrammée. Elle contient une valeur booléenne, true (vrai) ou false (faux), indiquant si la tortue ou le lien est actuellement caché (c'est-à-dire invisible). Vous pouvez modifier la valeur de cette variable pour faire disparaître ou apparaître la tortue ou le lien.
Voir aussi hide-turtle, show-turtle, hide-link et show-link
Exemple :
set hidden? not hidden? ;; si la tortue est visible, elle se cache, ;; et si la tortue était cachée, elle réapparaît
Rend le lien invisible.
Note : cette commande a le même effet que de donner la valeur true (vrai) à la variable lien hidden?.
Voir aussi show-link.
La tortue devient invisible.
Note: cette commande a le même effet que de donner la valeur true (vrai) à la variable tortue hidden?.
Voir aussi show-turtle.
Construit un histogramme à partir des valeurs contenues dans la liste de données list.
L'histogramme montre la distribution (la fréquence) des valeurs de la liste passée en paramètre. Les hauteurs des barres de l'histogramme représentent le nombre de valeurs pour chaque sous-ensemble de valeurs.
Toute valeur non-numérique de la liste est ignorée.
L'histogramme est dessiné dans le traceur de courbes courant en utilisant le crayon et la couleur courants. Utilisez la commande set-plot-x-range pour contrôler la plage des valeurs à prendre en compte pour le dessin de l'histogramme et spécifiez l'intervalle, soit directement avec set-plot-pen-interval, soit indirectement avec set-histogram-num-bars, pour déterminer combien de barres doivent être dessinées pour représenter les valeurs.
Avant de commencer le dessin de l'histogramme, le traceur efface tout point préalablement dessiné par le crayon courant.
Assurez-vous que le crayon courant soit bien en mode barre (mode 1) si vous voulez que l'histogramme soit dessiné avec des barres.
Pour des raisons de représentation graphique de l'histogramme, la plage des valeurs X du traceur ne contient pas la plus grande valeur X. Les valeurs égales au plus grand X tombent hors de la plage des valeurs de l'histogramme.
histogram [color] of turtles ;; dessine un histogramme montrant le nombre ;; de tortues de chaque couleur
Ce reporter retourne une liste formée de trois nombres spécifiant les valeurs RGB de la couleur qui lui a été donnée dans le format HSB. Les valeurs données en entrée hue (teinte), saturation, brightness (brillance) sont des nombres entiers dans la plage 0-255. La liste RGB retournée contient aussi trois entiers appartenant à la même plage.
Voir aussi rgb
Cette primitive envoie les données de value du NetLogo fonctionnant en tant que serveur à la variable tag-name (dans le cas de "Calculator HubNet") ou à l'élément d'interface portant le nom tag-name (dans le cas de "Computer HubNet") de tous les clients.
Voir le Guide de programmation HubNet pour les détails.
Cette primitive envoie l'état courant de la vue 2D du modèle NetLogo tournant sur le serveur à tous les clients "Computer HubNet". Ne fait rien avec "Calculator HubNet".
Note : c'est une primitive expérimentale dont le comportement pourrait changer dans une version future.
Voir le Guide de programmation HubNet pour les détails.
Retourne true (vrai) si un nouveau client "Computer HubNet" vient d'entrer dans la simulation. Sinon retourne false (faux). La primitive hubnet-message-source fournit le nom d'utilisateur du client qui vient de se connecter.
Voir le Guide de programmation HubNet pour les détails.
Retourne true (vrai) si un client "Computer HubNet" vient de quitter la simulation, sinon retourne false (faux). La primitive hubnet-message-source fournit le nom du client qui vient de se déconnecter.
Voir le Guide de programmation HubNet pour les détails.
S'il y a (encore) de nouvelles données qui ont été envoyées par les clients, cette primitive récupère le prochain paquet de données de manière à ce que ces données puissent être utilisées par hubnet-message, hubnet-message-source et hubnet-message-tag. Une erreur est générée s'il n'y a plus de nouvelles données venant des clients.
Voir le Guide de programmation HubNet pour les détails.
Retourne le message récupéré par le reporter hubnet-fetch-message.
Voir le Guide de programmation HubNet pour les détails.
Retourne le nom du client qui a envoyé le message, message récupéré par la primitive hubnet-fetch-message.
Voir le Guide de programmation HubNet pour les détails.
Retourne le tag (marqueur, identificateur) associé aux données récupérées par la primitive hubnet-fetch-message. Avec "Calculator HubNet", ce reporter retourne un des noms de variables spécifiés par la primitive hubnet-set-client-interface. Avec "Computer HubNet", ce reporter retourne le nom d'affichage de l'un des éléments de l'interface du client.
Voir le Guide de programmation HubNet pour les détails.
Cette primitive regarde s'il y a un nouveau message envoyé par un client. Retourne true (vrai) s'il y en a un et false (faux) s'il n'y en a pas.
Voir le Guide de programmation HubNet pour les détails.
Met en route le système "HubNet". "HubNet" doit être en fonction pour pouvoir utiliser l'une des autres primitives "HubNet", à l'exception de hubnet-set-client-interface.
Voir le Guide de programmation HubNet pour les détails.
Pour "Calculator HubNet", cette primitive fonctionne exactement de la même manière que la primitive hubnet-broadcast. (Nous prévoyons de changer ce comportement dans une version future de NetLogo.)
Pour "Computer HubNet", elle fonctionne de la manière suivante :
Avec une chaîne de caractères comme première entrée, elle envoie les données value du serveur NetLogo à l'élément nommé tag-name placé sur l'interface du client dont le nom d'utilisateur est spécifié par string.
Avec une liste de chaînes comme première entrée, cette primitive envoie les données value du serveur NetLogo à l'élément nommé tag-name placé sur l'interface de tous les clients dont les noms d'utilisateur se trouvent dans l'entrée list-of-strings.
L'envoi d'un message avec hubnet-send à un client qui n'existe pas génère un message hubnet-exit-message.
Voir le Guide de programmation HubNet pour les détails.
Cette primitive ne fait rien avec "Calculator HubNet".
Avec "Computer HubNet", elle fonctionne de la manière suivante :
Avec une chaîne de caractères comme première entrée, elle envoie l'état courant (l'image) de la Vue 2D du serveur NetLogo au client "Computer HubNet" dont le nom d'utilisateur est spécifié par string. Cette action permet d'actualiser la Vue 2D du client afin que l'image qu'elle affiche soit identique à celle du serveur.
Avec une liste de chaînes comme première entrée, elle envoie l'état courant (l'image) de la Vue 2D du serveur NetLogo à tous les clients "Computer HubNet" dont les noms d'utilisateur se trouvent dans l'entrée list-of-strings. Cette action permet d'actualiser les Vues 2D des clients afin que l'image qu'elles affichent soit identiques à celle du serveur.
L'envoi de la vue 2D avec hubnet-send-view à un client qui n'existe pas génère un message hubnet-exit-message.
Note: c'est une primitive expérimentale dont le comportement pourrait changer dans une version future.
Voir le Guide de programmation HubNet pour les détails.
Si l'entrée client-type est "COMPUTER", client-info doit être une liste vide avec "Computer HubNet".
hubnet-set-client-interface "COMPUTER"[]
Des versions futures de "HubNet" supporteront d'autres types de clients. Même pour "Computer HubNet", la signification du second paramètre de cette commande pourrait changer par la suite.
Voir le Guide de programmation HubNet pour les détails.
Cette primitive fait exécuter les commandes placées dans la liste [commands] si la condition testée est vraie. Le reporter condition doit retourner une valeur booléenne true ou false (vrai ou faux).
Le reporter peut retourner une valeur différente pour des agents différents, ce qui fait que certains agents exécutent les commandes et d'autres non.
if xcor > 0[ set color blue ] ;; les tortues placées dans la moitié gauche ;; du monde sont colorées en bleu
Voir aussi ifelse et ifelse-value
La primitive ifelse fait exécuter les commandes listées dans [commands1] et ignore les commandes listées dans [commands2] si la condition reporter retourne true (vrai) et ignore les commandes listées dans [commands1] mais fait exécuter les commandes listées dans [commands2] si la condition reporter retourne false (faux).
Le reporter condition doit retourner une valeur booléenne true ou false (vrai ou faux).
Le reporter peut retourner une valeur différente pour des agents différents, ce qui fait que certains agents exécutent les commandes de la liste [commands1] alors que d'autres exécutent celles de la liste [commands2].
ask patches [ ifelse pxcor > 0 [ set pcolor blue ] [ set pcolor red ] ] ;; la moitié droite du monde devient bleue et ;; la moitié gauche devient rouge
Voir aussi if et ifelse-value
La primitive ifelse-value retourne la valeur fournie par reporter1 et ignore celle fournie par reporter2 si la condition reporter est vraie (true), mais retourne la valeur fournie par reporter2 et ignore celle fournie par reporter1 si la condition reporter est fausse (false).
La condition reporter doit retourner une valeur booléenne true ou false (vrai ou faux).
Cette primitive peut être utilisée quand une expression conditionnelle est nécessaire dans un contexte de reporter où des commandes (telles que ifelse) ne sont pas autorisées.
ask patches [ set pcolor ifelse-value (pxcor > 0) [blue] [red] ] ;; la moitié gauche du monde devient rouge et ;; la moitié droite bleue show n-values 10 [ifelse-value (? < 5) [0] [1]] => [0 0 0 0 0 1 1 1 1 1] show reduce [ifelse-value (?1 > ?2) [?1] [?2]] [1 3 2 5 3 8 3 2 1] => 8
Cette primitive lit un fichier image filename et l'affiche dans la couche dessin de la Vue (celle sur laquelle les tortues peuvent dessiner) en ajustant sa taille à celle du monde NetLogo tout en conservant les proportions (largeur/hauteur) de l'image originale. L'image est centrée dans la Vue. L'ancien dessin n'est pas effacé en premier.
Les agents ne peuvent « ausculter » l'image, ce qui fait qu'ils ne peuvent interagir avec ou manipuler les images importées par import-drawing. Si des agents doivent pouvoir « ausculter » une image, il faut utiliser import-pcolors ou import-pcolors-rgb.
Les formats de fichiers image supportés sont les suivants : BMP, JPG, GIF et PNG. Si le format de l'image supporte la transparence (alpha), cette information est aussi importée.
La primitive import-pcolors lit le fichier image nommé filename, ajuste sa taille à celle de la grille de patches tout en conservant les proportions (largeur/hauteur) de l'image originale et transfère les couleurs résultantes aux pixels des patches. L'image est centrée sur la grille des patches. Les nouvelles couleurs des patches peuvent être faussées puisque l'espace des couleurs NetLogo ne contient pas toutes les couleurs possibles. (Voir le chapitre concernant les couleurs du Guide de la programmation.) Le travail de cette primitive peut prendre du temps pour certaines images, en particulier quand le nombre de patches est élevé, que l'image importée est grande et qu'elle comporte de nombreuses couleurs.
Puisque la primitive import-pcolors modifie la valeur de la variable pcolor des patches, les agents peuvent « ausculter » l'image, autrement dit, lire la valeur de cette variable et réagir en conséquence. Ce qui est utile si des agents doivent analyser, manipuler ou interagir d'une quelconque manière avec l'image. Si l'affichage d'un arrière-plan statique et sans distorsions de couleurs suffit, utilisez plutôt la primitive import-drawing.
Les formats de fichiers image supportés sont les suivants : BMP, JPG, GIF, and PNG. Si le format de l'image supporte la transparence (alpha), tous les pixels totalement transparents sont ignorés. (Les pixels partiellement transparents sont considérés comme opaques.)
Cette primitive lit le fichier image nommé filename, ajuste la taille de l'image à celle de la grille de patches tout en conservant les proportions (largeur/hauteur) de l'image originale et transfère les couleurs résultantes aux pixels des patches. L'image est centrée sur la grille des patches. Contrairement à ce qui se passe avec la primitive import-pcolors, ce sont les couleurs exactes de l'image originale qui sont retenues. La variable pcolor de tous les patches contiendra alors une liste de valeurs RGB plutôt qu'un nombre désignant une couleur NetLogo (approximative).
Les formats de fichiers image supportés sont les suivants : BMP, JPG, GIF, and PNG. Si le format de l'image supporte la transparence (alpha), tous les pixels totalement transparents sont ignorés. (Les pixels partiellement transparents sont considérés comme opaques.)
import-world lit les valeurs de toutes les variables d'un modèle, aussi bien celles des variables préprogrammées que celles définies par l'utilisateur, y compris toutes les variables de type observateur, tortue et patch dans le fichier externe désigné par filename. Ce fichier doit être au format utilisé par la primitive export-world.
Notez que la fonctionnalité de cette primitive peut aussi être obtenue directement dans le menu "File" de NetLogo.
Pour éviter des erreurs lors d'une importation de données avec import-world, exécutez les opérations suivantes dans l'ordre indiqué :
Si vous voulez importer un fichier résidant dans un autre dossier que celui dans lequel se trouve le modèle, vous devez transmettre à la commande tout le chemin du fichier (chemin absolu) que vous voulez importer. Voir export-world pour un exemple.
Ce reporter permet de doter une tortue d'un « cône de vision » vers l'avant. Le cône est défini par les deux entrées distance de vision (rayon) et angle de vision, cette dernière valeur représentant l'ouverture du cône. L'angle de vision peut prendre des valeurs de 0 à 360 et est centré sur le cap courant de la tortue. (Si l'angle est de 360, alors in-cone est équivalent à in-radius.)
Le reporter in-cone retourne un ensemble d'agents agentset ne contenant que les agents se trouvant dans le cône et appartenant au même ensemble d'agents que l'agent appelant. (L'agent appelant peut aussi en faire partie.)
La distance à un patch est mesurée à partir du centre de patch.
ask turtles [ ask patches in-cone 3 60 [ set pcolor red ] ] ;; chaque tortue fait une «tache» de patches rouges dans ;; un cône de 60 degrés et jusqu'à 3 unités devant elle
Retourne true (vrai) s'il y a un lien orienté partant de la tortue spécifiée turtle et allant à l'agent appelant.
crt 2 ask turtle 0 [ create-link-to turtle 1 show in-link-neighbor? turtle 1 ;; affiche false show out-link-neighbor? turtle 1 ;; affiche true ] ask turtle 1 [ show in-link-neighbor? turtle 0 ;; affiche true show out-link-neighbor? turtle 0 ;; affiche false ]
Retourne l'ensemble d'agents formé de toutes les tortues qui ont des liens orientés venant l'appelant.
crt 4 ask turtle 0 [ create-links-to other turtles ] ask turtle 1 [ ask in-link-neighbors [ set color blue ] ] ;; la tortue 0 devient bleue
Retourne le lien partant de la tortue pour aller à l'agent appelant. Retourne nobody s'il n'y a pas un tel lien.
crt 2 ask turtle 0 [ create-link-to turtle 1 ] ask turtle 1 [ show in-link-from turtle 0 ] ;; affiche link 0 1 ask turtle 0 [ show in-link-from turtle 1 ] ;; affiche nobody
Cette primitive (expérimentale) provoque l'inclusion dans le modèle courant des fichiers source NetLogo externes (portant le suffixe .nls) listés dans l'entrée [filename...]. Les fichiers d'inclusions peuvent contenir des races, des variables et des définitions de procédures. __includes ne peut être utilisé qu'une seule fois par fichier.
Retourne un ensemble d'agents formé des agents, appartenant au même ensemble d'agents que l'agent appelant, dont la distance à l'appelant est inférieure ou égale à number. (L'agent appelant peut aussi en faire partie.)
La distance jusqu'à un patch ou la distance à partir d'un patch est mesurée à partir du centre du patch.
ask turtles [ ask patches in-radius 3 [ set pcolor red ] ] ;; chaque tortue fait une tache rouge autour d'elle.
Ouvre un moniteur d'agent pour l'agent donné (une tortue ou un patch).
inspect patch 2 4 ;; un moniteur d'agent s'ouvre pour ce patch inspect one-of moutons ;; un moniteur d'agent s'ouvre pour une tortue ;; choisie au hasard dans la race des "moutons"
Retourne la partie entière de nombre, la partie fractionnaire étant simplement supprimée.
show int 4.7 => 4 show int -3.5 => -3
Ces reporters retournent true (vrai) si les données de l'entrée value sont du type indiqué par le nom du reporter, sinon retourne false (false).
Appelé avec une liste, ce reporter retourne la valeur de l'élément de numéro index appartenant à la liste list donnée.
Appelé avec une chaîne de caractères, ce reporter retourne le caractère de numéro index de la chaîne de caractères string donnée en entrée.
Notez que les numéros des éléments (index) commencent à 0 et non à 1 (Le premier élément porte le numéro 0, le deuxième porte le numéro 1, et ainsi de suite.)
;; suppose mylist is [2 4 6 8 10] show item 2 mylist => 6 show item 3 "my-shoe" => "s"
La tortue avance d'un seul coup du nombre d'unités spécifié par l'entrée number (plutôt que par pas d'une unité à la fois comme avec la commande forward ou son abréviation fd).
Si la tortue ne peut avancer du nombre d'unités demandé parce que la topologie du monde NetLogo ne le permet pas, la tortue ne se déplace pas du tout.
C'est une variable tortue ou lien préprogrammée. Elle peut contenir une valeur de n'importe quel type. Dans la Vue, la tortue ou le lien est accompagné d'une étiquette affichant (sous forme de texte) la valeur de cette variable. Vous pouvez utiliser cette variable pour ajouter, modifier ou enlever une étiquette de tortue ou de lien.
Voir aussi label-color, plabel et plabel-color
Exemple :
ask turtles [ set label who ] ;; toutes les tortues ont maintenant une étiquette ;; avec leur numéro d'identification ask turtles [ set label "" ] ;; toutes les tortues n'ont maintenant plus d'étiquette
C'est une variable tortue ou lien préprogrammée. Elle contient un nombre plus grand ou égal à zéro et plus petit que 140. Ce nombre spécifie la couleur de l'étiquette de la tortue ou du lien (si il ou elle a une étiquette visible). Vous pouvez spécifier la valeur de cette variable pour modifier la couleur de l'étiquette des tortues ou des liens.
Voir aussi label, plabel et plabel-color
Exemple :
ask turtles [ set label-color red ] ;; toutes les tortues ont maintenant des étiquettes rouges
Appelé avec une liste, ce reporter retourne le dernier élément de la liste list passée en entrée.
Appelé avec une chaîne de caractères, ce reporter retourne une chaîne d'un seul caractère ne contenant que le dernier caractère de la chaîne string passée en entrée.
Dispose les tortues spécifiées par la première entrée sur un cercle de rayon radius, cercle centré sur le patch placé au centre du monde. (Si le monde a une dimension paire, le centre du cercle est arrondi vers le bas vers le patch le plus proche.) Les tortues pointent vers l'extérieur (le long des rayons).
Si la première entrée est un ensemble d'agents agentset, les tortues sont disposées dans un ordre aléatoire.
Si la première entrée est une liste list-of-turtles, les tortues sont arrangées, en suivant l'ordre donné par la liste, dans le sens des aiguilles d'une montre en commençant au sommet du cercle. (Tout ce qui, dans la liste, n'est pas tortue est ignoré.)
;; en ordre aléatoire layout-circle turtles 10 ;; en suivant l'ordre des numéro d'identification layout-circle sort turtles 10 ;; en fonction de la taille layout-circle sort-by [[size] of ?1 < [size] of ?2] turtles 10
Ressemblant beaucoup à la primitive layout-spring, __layout-magspring possède un niveau de complexité plus élevé. Les tortues de l'ensemble de tortues turtle-set s'attirent et se repoussent en fonction des liens, spécifiés dans link-set, qui les unissent, mais il y a en plus un champ magnétique sur les lignes duquel les liens tentent de s'aligner.
L'entrée link-set est l'ensemble des liens qui exercent une force sur les tortues qu'ils relient. Les tortues connectées par des liens de l'ensemble link-set mais n'appartenant pas à l'ensemble turtle-set sont traitées comme des points d'ancrage. S'il n'y a pas de tortues avec des positions fixes (ancrées), le réseau tout entier se refermera probablement sur lui-même.
L'entrée spring-constant spécifie la mesure de la rigidité du ressort (constante de rappel du ressort). (Voir layout-spring).
L'entrée spring-length spécifie la longueur des ressorts au repos ou leur longueur naturelle. (Voir layout-spring).
L'entrée repulsion-constant spécifie la grandeur de la force de répulsion exercée entre les noeuds. (Voir layout-spring).
L'entrée magnetic-field-strength spécifie la force du champ magnétique. (Les valeurs raisonnables vont de 0 à 1, mais 0.05 est une bonne valeur par défaut.)
L'entrée magnetic-field-type est un nombre de 0 à 10 spécifiant l'orientation du champ magnétique. Les diverses possibilités sont énumérées dans le tableau ci-dessous :
magnetic-field-type | Description |
NONE = 0 | Si aucun champ n'est utilisé, la commande fonctionnne comme la primitive layout-spring. |
NORTH = 1 | Le champ magnétique est orienté vers le Nord. |
NORTHEAST = 2 | Le champ magnétique est orienté vers le Nord-Est. |
EAST = 3 | Le champ magnétique est orienté vers l'Est. |
SOUTHEAST= 4 | Le champ magnétique est orienté vers le Sud-Est. |
SOUTH = 5 | Le champ magnétique est orienté vers le Sud. |
SOUTHWEST= 6 | Le champ magnétique est orienté vers le Sud-Ouest. |
WEST = 7 | Le champ magnétique est orienté vers l'Ouest. |
NORTHWEST = 8 | Le champ magnétique est orienté vers le Nord-Ouest. |
POLAR = 9 | Le champ magnétique rayonne dans toutes les directions à partir de l'origine (comme les méridiens à partir du pôle). |
CONCENTRIC = 10
| Le champ magnétique tourne dans sens des aiguilles d'une montre en cercles concentriques autour de l'origine (comme les parallèles autour du pôle). |
Si l'entrée bidirectional? vaut true (vrai), alors les liens essaient de s'aligner sur le champ magnétique en poussant les tortues qu'ils relient aussi bien dans la direction du champ que dans la direction opposée. Dans le cas contraire, les liens ne poussent que dans une direction.
to make-a-tree set-default-shape turtles "circle" crt 5 ask turtle 0 [ create-link-with turtle 1 create-link-with turtle 2 ] ask turtle 1 [ create-link-with turtle 3 create-link-with turtle 4 ] ;; disposition avec une champ magnétique SUD assez fort repeat 50 [ __layout-magspring turtles with [who != 0] links 0.3 4 1 .50 5 false ] end
Place les tortues de l'ensemble turtle-set connectées par les liens de l'ensemble de liens link-set sur un arbre radial centré autour de l'agent-racine root-agent qui est d'abord déplacé au centre du monde NetLogo affiché dans la Vue.
Seuls les liens de l'ensemble link-set sont pris en compte pour déterminer la forme du réseau. Si des liens sont connectés à des tortues n'appartenant pas à l'ensemble turtle-set, ces tortues restent où elles sont.
Cette primitive fonctionnera même si le réseau contient des cycles et n'a pas une structure en arbre, mais le résultat ne sera pas toujours bien joli.
to make-a-tree set-default-shape turtles "circle" crt 6 ask turtle 0 [ create-link-with turtle 1 create-link-with turtle 2 create-link-with turtle 3 ] ask turtle 1 [ create-link-with turtle 4 create-link-with turtle 5 ] ;; construit un arbre radial centré sur la tortue 0 layout-radial turtles links (turtle 0) end
Place les tortues de l'ensemble turtle-set comme si les liens de l'ensemble link-set qui les relient étaient des ressorts et que les tortues se repoussaient les unes les autres. Les tortues connectées par les liens de l'ensemble link-set mais n'appartenant pas à l'ensemble turtle-set sont traitées comme des points d'ancrage et ne sont pas déplacées.
L'entrée spring-constant définit la mesure de la « raideur » du ressort (appelée en physique constante de rappel du ressort ou constante d'élasticité). Il s'agit en fait de la « résistance » du ressort à toute modification de sa longueur. spring-constant est la force qu'exercerait le ressort si sa longueur était modifiée d'une unité.
L'entrée spring-length définit la longueur du ressort « force-zéro », autrement dit la longueur du ressort au repos ou sa longueur « naturelle ». C'est la longueur que tous les ressorts tentent d'atteindre soit en tirant, soit en poussant les noeuds auxquels ils sont attachés.
L'entrée repulsion-constant définit la mesure de la force de répulsion entre deux noeuds. C'est la force que deux noeuds séparés d'une distance d'une unité exercent l'un sur l'autre.
La force de répulsion tente d'éloigner le plus possible les noeuds les uns des autres de manière à éviter l'entassement et l'effet de ressort tente de les retenir « à peu près » à une certaine distance des noeuds auxquels ils sont connectés. Le résultat est un arrangement des noeuds de tout le réseau de manière à ce que cet arrangement puisse mettre en évidence les relations entre les noeuds tout en étant le moins possible entassé et en offrant un aspect visuel plaisant.
L'algorithme de construction du réseau est basé sur celui de Fruchterman-Reingold. Des informations supplémentaires concernant cet algorithme peuvent être obtenues ici.
to make-a-triangle set-default-shape turtles "circle" crt 3 ask turtle 0 [ create-links-with other turtles ] ask turtle 1 [ create-link-with turtle 2 ] repeat 30 [ layout-spring turtles links 0.2 5 1 ] ;; place les noeuds dans un triangle end
Les tortues connectées par les liens de l'ensemble link-set mais n'appartenant pas à l'ensemble turtle-set sont disposées sur un cercle de rayon spécifié par l'entrée radius. Cet ensemble d'agents doit contenir au moins trois tortues qui serviront de points d'ancrage.
Les tortues de l'ensemble turtle-set sont alors placées de la manière suivante : chaque tortue est placée au « centre de gravité » (barycentre) du polygone formé par les tortues voisines qui lui sont liées. (Ce « centre de gravité » est en quelque sorte la moyenne bidimentionnelle des coordonnées de tortues voisines liées.)
La raison d'être du cercle « d'agents ancrés » est d'empêcher que toutes les tortues s'agglutinent en un seul point.
Après quelques itérations du processus, la position des tortues (l'aspect du réseau) se stabilise.
Ce type de réseau a été nommé d'après le mathématicien William Thomas Tutte qui l'a proposé comme méthode de dessin de graphe.
to make-a-tree set-default-shape turtles "circle" crt 6 ask turtle 0 [ create-link-with turtle 1 create-link-with turtle 2 create-link-with turtle 3 ] ask turtle 1 [ create-link-with turtle 4 create-link-with turtle 5 ]
;; place toutes les tortues qui n'ont qu'une voisine ;; sur le périmètre d'un cercle, puis place les tortues ;; restantes dans ce cercle, réparties entre leurs voisines. repeat 10 [ layout-tutte turtles (turtles with [count link-neighbors = 1]) 12 ] end
Fait pivoter la tortue vers la gauche de number degrés. Si number est négatif, la tortue pivote à droite.
Retourne le nombre d'éléments de la liste list donnée, ou le nombre de caractères de la chaîne string donnée.
Crée une nouvelle variable locale dont le nom est spécifié par l'entrée variable et lui assigne la valeur spécifiée dans l'entrée value. Une variable locale n'existe (n'est visible) que dans le bloc de commandes délimité par des crochets dans lequel elle a été définie.
Si vous voulez modifier cette valeur par la suite, il faut utiliser la commande set.
Exemple :
let prey one-of sheep-here if prey != nobody [ ask prey [ die ] ]
Retourne le lien qui connecte les tortues marquant ses deux extrémités, tortues spécifiées par leur numéro d'identification end1 et end1. Si un tel lien n'existe pas, retourne nobody. Pour faire référence à des liens de race, vous devez utiliser la forme singulier du nom de la race.
ask link 0 1 [ set color green ] ;; le lien sans race connectant la tortue 1 à la tortue 2 devient vert ask directed-link 0 1 [ set color red ] ;; le lien orienté connectant la tortue 1 à la tortue 2 devient rouge
Voir aussi patch-at
Retourne le cap (l'orientation) en degrés (au moins 0 et inférieur à 360) du lien, en partant de la tortue end1 vers la tortue end2. Génère une erreur d'exécution si les deux extrémités sont au même endroit.
ask link 0 1 [ print link-heading ] ;; affiche [[towards other-end] of end1] of link 0 1
Voir aussi link-length
Retourne la distance séparant les deux extrémités du lien.
ask link 0 1 [ print link-length ] ;; affiche [[distance other-end] of end1] of link 0 1
Voir aussi link-heading
Retourne un ensemble d'agents contenant tous les liens se trouvant n'importe où dans n'importe laquelle des entrées. Les entrées peuvent être des liens individuels, des ensembles de liens, nobody ou des listes (ou des listes imbriquées) contenant n'importe quels objets cités ci-dessus.
link-set self link-set [my-links] of nodes with [color = red]
Voir aussi turtle-set et patch-set
Retourne une liste de chaînes de caractères contenant les noms de toutes les formes de liens du modèle.
De nouvelles formes (shapes) peuvent être créées ou importées d'autres modèles en utilisant L'éditeur de formes de liens.
show link-shapes => ["default"]
Retourne un ensemble d'agents constitué de tous les liens.
show count links ;; affiche le nombre de liens
Le mot-clé links-own, tout comme les mots-clés globals, breed, <races>-own, turtles-own et patches-own, ne peut être défini qu'au début du programme, avant toute définition de procédures. Il permet de définir les variables appartenant à chaque lien qui sera créé par la suite.
Si vous spécifiez une race de liens à la place de links , seuls les liens de cette race disposeront des variables créées. (La même variable peut être partagée par plus d'une race.)
undirected-link-breed [sidewalks sidewalk] directed-link-breed [streets street] links-own [traffic] ;; s'applique à toutes les races sidewalks-own [pedestrians] streets-own [cars bikes]
Retourne une liste formée des éléments value donnés. Les éléments peuvent être de n'importe quel type, retournés par n'importe quel type de reporter.
show list (random 10) (random 10) => [4 9] ;; ou une liste similaire show (list 5) => [5] show (list (random 10) 1 2 3 (random 10)) => [4 1 2 3 9] ;; ou une liste similaire
Retourne le logarithme naturel de number, c'est-à-dire le logarithme en base e (soit 2.71828...).
Retourne le logarithme de number en base base.
show log 64 2 => 6
Voir aussi ln.
Exécute les commandes de la liste [commands] en boucle (encore et encore) ou jusqu'à ce que la procédure en cours soit interrompue par la commande stop ou par la commande report.
Note : Dans la plupart des cas, il vaut mieux utiliser un bouton "forever" pour répéter « interminablement » les mêmes commandes. L'avantage d'un tel bouton est que l'utilisateur peut le cliquer pour interrompre l'exécution de la boucle.
Ajoute les données de l'entrée value à la fin de la liste liste et retourne la nouvelle liste ainsi créée.
;; supposons ma-liste valant [2 7 10 "Bob"] set ma-liste lput 42 ma-liste ;; ma-liste vaut maintenant [2 7 10 "Bob" 42]
Avec une seule liste en entrée, map fait tourner le reporter donné avec chaque élément de la liste list et retourne ensuite une liste formée des valeurs retournées par les appels successifs du reporter.
Dans reporter, utilisez ? pour faire référence à l'élément courant de la liste list.
show map [round ?] [1.1 2.2 2.7] => [1 2 3] show map [? * ?] [1 2 3] => [1 4 9]
Avec plusieurs listes en entrée, le reporter donné est appelé pour chaque groupe d'éléments de chaque liste. Ainsi, il est appelé une fois pour le premier élément de chaque liste, une fois pour le deuxième élément de chaque liste, et ainsi de suite. Toutes les listes doivent avoir le même nombre d'éléments.
Dans reporter, utilisez ?1 à ?n pour faire référence à l'élément courant de chaque liste.
Quelques exemples pour y voir plus clair :
show (map [?1 + ?2] [1 2 3] [2 4 6]) => [3 6 9] show (map [?1 + ?2 = ?3] [1 2 3] [2 4 6] [3 5 9]) => [true false true]
Retourne l'élément de type nombre de la liste liste donnée en entrée ayant la plus grande valeur. Ignore les autres type d'éléments.
show max [xcor] of turtles ;; affiche la coordonnée x de la tortue qui est ;; la plus éloignée à droite de l'origine du monde
Retourne un ensemble d'agents contenant number agents de l'ensemble d'agents agentset ayant les plus grandes valeurs pour le reporter. L'ensemble d'agents est construit en trouvant tous les agents ayant la plus haute valeur de reporter. S'il n'y a pas number agents ayant cette valeur, alors les agents ayant la seconde plus haute valeur sont pris, et ainsi de suite. À la fin, s'il y a une ou des égalités qui conduisent à un ensemble d'agents trop grand, l'égalité est brisée aléatoirement.
;; supposons un monde de 11 x 11 patches show max-n-of 5 patches [pxcor] ;; affiche 5 patches avec pxcor = max-pxcor show max-n-of 5 patches with [pycor = 0] [pxcor] ;; affiche un ensemble d'agents contenant: ;; (patch 1 0) (patch 2 0) (patch 3 0) (patch 4 0) (patch 5 0)
Voir aussi max-one-of et with-max
Retourne l'agent de l'ensemble d'agent agentset qui a la plus grande valeur pour le reporter donné. S'il y a égalité, cette commande retourne un agent pris au hasard parmi ceux ayant cette plus grande valeur. Si vous voulez tous les agents ayant la plus grande valeur, utilisez à la place la commande with-max.
show max-one-of patches [count turtles-here] ;; affiche le patch portant le plus grand nombre de tortues
Ces reporters retournent les plus grandes coordonnées x et y (respectivement) pour les patches, ce qui détermine la taille du monde.
Contrairement aux anciennes versions de NetLogo, l'origine n'a plus besoin d'être au centre du monde. Toutefois, les coordonnées x et y maximales doivent être plus grandes ou égales à zéro.
Note : la taille du monde ne peut être spécifiée que dans la boîte de dialogue "Model Settings" du panneau "Interface" car les valeurs retournée par ces reporters ne peuvent être fixées par programmation.
crt 100 [ setxy random-float max-pxcor random-float max-pycor ] ;; répartit 100 tortues aléatoirement ;; dans le premier quadrant
Voir aussi min-pxcor, min-pycor, world-width et world-height
Retourne la moyenne statistique de tous les éléments numériques de la liste list. Les éléments non numériques sont ignorés. Cette moyenne est obtenue en faisant la somme des valeurs des éléments numériques divisée par le nombre total d'éléments.
show mean [xcor] of turtles ;; affiche la moyenne des coordonnées x de toutes les tortues
Retourne la médiane statistique des éléments numériques de la liste liste. Les éléments non numériques sont ignorés. La médiane est l'élément qui se trouverait au milieu si tous les éléments étaient arrangés dans l'ordre. (Si deux éléments occupent le milieu, la médiane est la moyenne de ces deux éléments.)
show median [xcor] of turtles ;; affiche la médiane des coordonnées x de toutes les tortues
Avec une liste en entrée, member? retourne true (vrai) si la valeur value apparaît dans la liste list donnée, sinon retourne false (faux).
Avec des chaînes de caractères en entrée, member? retourne true (vrai) si la chaîne de caractères string1 apparaît quelque part dans la chaîne string2 sous forme de sous-chaîne, sinon retourne false (faux).
Avec un ensemble d'agents en entrée, member? retourne true (vrai) si agent fait partie de l'ensemble d'agents agentset, sinon retourne false (faux).
show member? 2 [1 2 3] => true show member? 4 [1 2 3] => false show member? "bat" "abate" => true show member? turtle 0 turtles => true show member? turtle 0 patches => false
Voir aussi position
Retourne la plus petite valeur numérique de la liste list. Les autres types d'éléments sont ignorés.
show min [xcor] of turtles ;; affiche la plus petite coordonnée x parmi toutes les tortues
Retourne un ensemble d'agents contenant number agents de l'ensemble d'agents agentset ayant les plus petites valeurs pour le reporter. L'ensemble d'agents est construit en trouvant tous les agents ayant la plus petite valeur de reporter. S'il n'y a pas number agents ayant cette valeur, alors les agents ayant la seconde plus petite valeur sont pris, et ainsi de suite. À la fin, s'il y a une ou des égalités qui conduisent à un ensemble d'agents trop grand, l'égalité est brisée aléatoirement.
;; supposons un monde de 11 x 11 show min-n-of 5 patches [pxcor] ;; affiche 5 patches avec pxcor = min-pxcor show min-n-of 5 patches with [pycor = 0] [pxcor] ;; affiche un ensemble d'agents contenant: ;; (patch -5 0) (patch -4 0) (patch -3 0) (patch -2 0) (patch -1 0)
Voir aussi min-one-of et with-min
Retourne l'agent de l'ensemble d'agent agentset qui a la plus petite valeur pour le reporter donné. S'il y a égalité, cette commande retourne un agent pris au hasard parmi ceux ayant cette plus petite valeur. Si vous voulez tous les agents ayant la plus petite valeur, utilisez à la place la commande with-min.
show min-one-of turtles [xcor + ycor] ;; retourne la première tortue dont la somme ;; des coordonnées est la plus petite
Ces reporters retournent les plus petites coordonnées x et y (respectivement) pour les patches, ce qui détermine la taille du monde.
Contrairement aux anciennes versions de NetLogo, l'origine n'a plus besoin d'être au centre du monde. Toutefois, les coordonnées x et y minimales doivent être plus petites ou égales à zéro.
Note : la taille du monde ne peut être spécifiée que dans la boîte de dialogue "Model Settings" du panneau "Interface" car les valeurs retournée par ces reporters ne peuvent être fixées par programmation.
crt 100 [ setxy random-float min-pxcor random-float min-pycor ] ;; répartit 100 tortues aléatoirement dans ;; le troisième quadrant
Voir aussi max-pxcor, max-pycor, world-width et world-height
Retourne number1 modulo number2, c'est-à-dire le reste de la division de la première entrée number1 par la seconde entrée number2. La primitive mod est équivalente au code NetLogo suivant :
number1 - (floor (number1 / number2)) * number2
Notez que mod est un opérateur « infixé », c'est-à-dire qu'il doit prendre place entre les deux entrées.
show 62 mod 5 => 2 show -8 mod 3 => 1
Remarque : mod et remainder se comportent de la même manière pour les nombres positifs, mais différemment pour les nombres négatifs.
Voir aussi remainder
Retourne une liste contenant l'élément ou les éléments apparaissant le plus souvent dans la liste list donnée.
L'entrée list peut contenir n'importe quelle valeur admise par NetLogo.
Si l'entrée est une liste vide, la commande retourne une liste vide.
show modes [1 2 2 3 4] => [2] show modes [1 2 2 3 3 4] => [2 3] show modes [ [1 2 [3]] [1 2 [3]] [2 3 4] ] => [[1 2 [3]] show modes [pxcor] of turtles ;; affiche les colonnes de patches ;; qui portent le plus de tortues
Retourne true (vrai) si le bouton de la souris est pressé, sinon retourne false (faux).
Note : si le pointeur de la souris est hors de la Vue courante, mouse-down? retourne toujours false.
Retourne true (vrai) si le pointeur de la souris est dans la Vue courante, sinon retourne false (faux).
Retourne les coordonnées d'un patch si le pointeur de la souris en pointe un, sinon retourne nobody.
Retourne la coordonnée x, respectivement y, de la souris dans la vue 2D. La valeur est du type coordonnée de tortue, ce qui fait qu'elle peut ne pas être un nombre entier. Si vous voulez des coordonnées de type nombre entier (comme pour les coordonnées des patches), utilisez round mouse-xcor et round mouse-ycor.
Note : si la souris est hors de la vue 2D, ce reporter retourne la valeur de sa dernière position dans la Vue.
;; pour que la tortue « dessine » un patch rouge : if mouse-down? [ ask patch mouse-xcor mouse-ycor [ set pcolor red ] ]
La tortue donne à ses coordonnées x et y les mêmes valeurs que celles des coordonnées de l'agent spécifié, ce qui la place au même endroit que cet agent.
(Si l'agent est un patch, la tortue est déplacée et mise au centre du patch.)
move-to turtle 5 ;; la tortue se place au même endroit que la tortue 5 move-to one-of patches ;; la tortue se place au centre d'un patch pris au hasard move-to max-one-of turtles [size] ;; la tortue se place à l'endroit où se trouve la plus grande tortue
Notez que l'orientation (le cap) de la tortue n'est pas modifiée. Vous devez d'abord utiliser la commande face pour orienter la tortue dans la direction de son mouvement.
Voir aussi setxy
Ajoute une image de la Vue courante (movie-grab-view) ou du panneau "Interface" (movie-grab-interface) à l'animation courante.
;; construit une animation de 20 images de la Vue courante setup movie-start "out.mov" repeat 20 [ movie-grab-view go ] movie-close
Spécifie la vitesse de l'animation courante. La vitesse frame-rate est mesurée un images (frames) par seconde. (Si vous ne spécifiez pas explicitement une vitesse, la valeur par défaut de 15 images par seconde est utilisée.)
Cette primitive doit être appelée après movie-start, mais avant movie-grab-view ou movie-grab-interface.
Voir aussi movie-status
Crée une nouvelle animation. L'entrée filename spécifie le nom du nouveau fichier QuickTime dans lequel l'animation sera enregistrée, c'est pourquoi il devra se terminer par l'extension «.mov».
Voir aussi movie-grab-view, movie-grab-interface, movie-cancel, movie-status, movie-set-frame-rate et movie-close
Retourne une chaîne décrivant l'animation courante.
print movie-status => No movie. movie-start print movie-status => 0 frames; frame rate = 15. movie-grab-view print movie-status 1 frames; frame rate = 15; size = 315x315.
Retourne un ensemble d'agents contenant tous les liens non orientés connectés à l'agent appelant.
crt 5 ask turtle 0 [ create-links-with other turtles show my-links ;; affiche l'ensemble d'agents contenant tous les liens ;; (puisque tous les liens créés l'ont été à partir de la tortue 0) ] ask turtle 1 [ show my-links ;; affiche un ensemble d'agents contenant le lien 0 1 ]
Retourne un ensemble d'agents contenant tous les liens orientés venant des autres noeuds vers l'agent appelant.
crt 5 ask turtle 0 [ create-links-to other turtles show my-in-links ;; affiche en ensemble d'agents vide ] ask turtle 1 [ show my-in-links ;; affiche en ensemble d'agents contenant le lien 0 1 ]
Retourne un ensemble d'agents contenant tous les liens orientés partant de l'agent appelant en direction d'autres noeuds.
crt 5 ask turtle 0 [ create-links-to other turtles show my-out-links ;; affiche un ensemble d'agent contenant tous les liens ] ask turtle 1 [ show my-out-links ;; affiche en ensemble d'agents vide ]
self et myself sont très différents. self signifie simplement « moi » alors que myself signifie « la tortue ou le patch qui m'a demandé de faire ce que je suis justement en train de faire ».
Quand il a été demandé à un agent d'exécuter un certain code, l'utilisation de myself dans ce code retourne l'agent (tortue ou patch) qui a fait la demande.
myself est le plus souvent utilisé avec of pour lire la valeur d'une variable de l'agent appelant ou donner une valeur cette variable.
myself peut être utilisé non seulement dans les blocs de code de la commande ask, mais aussi dans les commandes hatch, sprout, of, with, all?, with-min, with-max, min-one-of, max-one-of, min-n-of et max-n-of.
ask turtles [ ask patches in-radius 3 [ set pcolor [color] of myself ] ] ;; chaque tortue fait une tache colorée autour d'elle
Voir l'exemple de code "Myself Example" pour d'autres exemples.
Voir aussi self
Avec un ensemble d'agents en entrée, n-of retourne un ensemble d'agents contenant le nombre d'agents size choisis aléatoirement dans l'ensemble agentset fourni, sans répétitions.
Avec une liste en entrée, n-of retourne une liste contenant size éléments choisis aléatoirement dans la liste list fournie, sans répétitions. Les éléments de la liste retournée sont dans le même ordre que dans la liste fournie en entrée. (Si vous les voulez dans un ordre aléatoire, utilisez la primitive shuffle sur le résultat.)
Il y a une erreur si size est plus grand que la taille de l'entrée agentset ou de l'entrée list.
ask n-of 50 patches [ set pcolor green ] ;; 50 patches choisis aléatoirement deviennent verts
Voir aussi one-of
Retourne une liste de longueur size contenant les valeurs calculées par une exécution répétée de reporter.
Dans l'entrée reporter,, il faut utilisez ? pour faire référence au numéro de l'élément qui est actuellement calculé, en commençant par zéro.
show n-values 5 [1] => [1 1 1 1 1] show n-values 5 [?] => [0 1 2 3 4] show n-values 3 [turtle ?] => [(turtle 0) (turtle 1) (turtle 2)] show n-values 5 [? * ?] => [0 1 4 9 16]
Retourne un ensemble d'agents contenant les 8 patches (avec neighbors) ou les 4 patches (avec neighbors4) voisins.
show sum [count turtles-here] of neighbors ;; affiche le nombre total de tortues se trouvant sur les ;; 8 patches placés autour de la tortue ou du patch appelant show count turtles-on neighbors ;; une manière plus courte pour dire la même chose ask neighbors4 [ set pcolor red ] ;; colore en rouge les 4 patches ayant un côté adjacent à l'agent appelant
Retourne un ensemble d'agents contenant toutes les tortues trouvées à l'autre extrémité des liens non orientés connectés à la tortue appelante.
crt 3 ask turtle 0 [ create-links-with other turtles ask link-neighbors [ set color red ] ;; les tortues 1 et 2 deviennent rouges ] ask turtle 1 [ ask link-neighbors [ set color blue ] ;; la tortue 0 devient bleue ]
Retourne true (vrai) s'il y a un lien non orienté entre la tortue turtle et l'agent appelant.
crt 2 ask turtle 0 [ create-link-with turtle 1 show link-neighbor? turtle 1 ;; affiche true ] ask turtle 1 [ show link-neighbor? turtle 0 ;; affiche true ]
Retourne true (vrai) si le modèle est exécuté en tant qu'applet (donc dans une page HTLM).
Retourne une chaîne contenant le numéro de la version de NetLogo que vous êtes en train d'utiliser.
show netlogo-version => "4.0.3"
Retourne un nombre convenant à l'initialisation (l'amorçage) du générateur de nombres aléatoires.
Les nombres retournés par new-seed sont basés sur la date et l'heure courantes du système, exprimées en millisecondes. Ils appartiennent à l'ensemble des entiers NetLogo (allant de -9007199254740992 à +9007199254740992).
new-seed ne retourne jamais deux fois de suite le même nombre. (NetLogo y arrive en attendant une milliseconde si l'amorce pour la milliseconde en cours a déjà été utilisée.)
Voir aussi random-seed
Désactive toutes les mises à jour de la Vue courante jusqu'à l'utilisation de la commande display. Cette commande a deux utilisations principales.
Premièrement, vous pouvez contrôler quand l'utilisateur voit les mises à jour de la Vue. Vous pouvez vouloir modifier plein de choses sur la Vue (derrière le dos de l'utilisateur), puis les lui faire voir toutes d'un seul coup.
Deuxièmement, votre simulation tournera plus rapidement si la mise à jour de la vue est désactivée, donc, si vous êtes pressés, cette commande permettra d'obtenir des résultats plus rapidement. (Notez que, normalement, il n'est pas nécessaire d'utiliser no-display puisque l'utilisateur peut aussi activer ou désactiver les mises à jour de la Vue dans la case à cocher "view updates" du panneau "Interface" pour obtenir le même effet.)
Notez que les commandes display et no-display agissent indépendamment de la case à cocher qui gèle l'affichage.
Voir aussi display
nobody (personne) est une valeur spéciale que retournent certaines primitives telles que turtle, one-of, max-one-of, etc. pour indiquer qu'aucun agent n'a été trouvé. De même, quand une tortue meurt (die), elle devient égale à nobody.
Note : Les ensembles d'agents vides ne sont pas égaux à nobody. Si vous voulez savoir si un ensemble d'agents est vide, utilisez any?. Vous ne recevez nobody en retour que dans les situations où vous n'attendez qu'un seul agent et pas un ensemble d'agents.
set other one-of other turtles-here if other != nobody [ ask other [ set color red ] ]
Retourne true (vrai) si l'entrée boolean vaut false (faux), sinon retourne false.
if not any? turtles [ crt 10 ]
Avec un agent en entrée, of retourne la valeur de reporter pour cet agent (tortue ou patch).
show [pxcor] of patch 3 5 ;; affiche 3 show [pxcor] of one-of patches ;; affiche la valeur de la variable pxcor d'un patch pris au hasard show [who * who] of turtle 5 => 25 show [count turtles in-radius 3] of patch 0 0 ;; affiche le nombre de tortues situées dans un rayon ;; de trois patches autour de l'origine
Avec un ensemble d'agents agentset en entrée, la primitive of retourne une liste contenant la valeur de reporter pour chaque agent de l'ensemble d'agents (dans un ordre aléatoire).
crt 4 show sort [who] of turtles => [0 1 2 3] show sort [who * who] of turtles => [0 1 4 9]
Avec un ensemble d'agents agentset en entrée, retourne un agent pris au hasard dans l'ensemble. Si l'ensemble d'agents est vide, retourne nobody.
Avec une liste list en entrée, retourne un élément de list pris au hasard. Une liste vide provoque une erreur.
ask one-of patches [ set pcolor green ] ;; un patch pris au hasard devient vert ask patches with [any? turtles-here] [ show one-of turtles-here ] ;; pour chaque patch contenant des tortues, ;; affiche l'une de ces tortues
;; supposons ma-liste valant [1 2 3 4 5 6] show one-of ma-liste ;; affiche une valeur choisie au hasard dans ma-liste
Voir aussi n-of
Retourne true (vrai) si soit boolean1, soit boolean2 est vrai ou si les deux le sont.
Notez que si boolean1 est vrai, alors les commandes de boolean2 ne sont pas exécutées (puisqu'elles n'affectent pas le résultat final).
if (pxcor > 0) or (pycor > 0) [ set pcolor red ] ;; les patches deviennent rouges sauf ceux du quadrant inférieur gauche
other retourne un ensemble d'agents qui est le même que celui reçu en entrée mais ne contenant plus l'agent appelant.
show count turtles-here => 10 show count other turtles-here => 9
Si other-end est exécuté par une tortue, retourne la tortue qui se trouve à l'autre extrémité du lien appelant.
Si other-end est exécuté par un lien, retourne la tortue qui est à extrémité du lien et qui n'est pas la tortue appelante.
Ces définitions sont difficiles à comprendre dans l'abstrait, mais les exemples suivants devraient aider à les comprendre :
ask turtle 0 [ create-link-with turtle 1 ] ask turtle 0 [ ask link 0 1 [ show other-end ] ] ;; affiche turtle 1 ask turtle 1 [ ask link 0 1 [ show other-end ] ] ;; affiche turtle 0 ask link 0 1 [ ask turtle 0 [ show other-end ] ] ;; affiche turtle 1
Comme ces exemples (espérons-le) le montrent, l'« autre » extrémité est l'extrémité qui n'est ni appelante ni appelée.
Retourne true (vrai) s'il y a un lien orienté allant de l'agent appelant à la tortue turtle.
crt 2 ask turtle 0 [ create-link-to turtle 1 show in-link-neighbor? turtle 1 ;; affiche false show out-link-neighbor? turtle 1 ;; affiche true ] ask turtle 1 [ show in-link-neighbor? turtle 0 ;; affiche true show out-link-neighbor? turtle 0 ;; affiche false ]
Retourne un ensemble d'agents contenant toutes les tortues qui ont un lien orienté venant de l'agent appelant.
crt 4 ask turtle 0 [ create-links-to other turtles ask out-link-neighbors [ set color pink ] ;; les tortues 1-3 deviennent roses ] ask turtle 1 [ ask out-link-neighbors [ set color orange ] ;; aucune tortue ne change de couleur puisque ;; la tortue 1 n'a qu'un lien venant vers elle ;; mais aucun lien partant d'elle ]
Retourne le lien allant de l'agent appelant à la tortue turtle. S'il n'y a pas de lien, retourne nobody.
crt 2 ask turtle 0 [ create-link-to turtle 1 show out-link-to turtle 1 ;; affiche link 0 1 ] ask turtle 1 [ show out-link-to turtle 0 ;; affiche nobody ]
Ces commandes sont les mêmes que les commandes print, show, type et write sauf qu'ici, les données de l'entrée value sont affichées dans la zone de sortie "Output" du modèle plutôt que dans le Centre de commande. (Si le modèle ne possède pas de zone de sortie séparée, c'est le Centre de commande qui est utilisé.)
La primitive patch retourne le patch contenant le point défini par les coordonnées xcor et ycor reçues en entrée. (Les coordonnées sont des coordonnées absolues se rapportant à l'origine du monde NetLogo; elles ne sont pas calculées par rapport à l'agent appelant comme avec patch-at.)
Si xcor et ycor sont des nombres entiers, le point est situé au centre du patch. Si xcor ou ycor ne sont pas des nombres entiers, il y a arrondi vers l'entier le plus proche pour déterminer quel patch contient le point.
Si l'enroulement est autorisé par la topologie, les coordonnées données seront « enroulées » jusqu'à ce que le point se trouve à l'intérieur des limites du monde. Si l'enroulement n'est pas autorisé et que les coordonnées sortent du monde, la primitive retourne nobody.
ask patch 3 -4 [ set pcolor green ] ;; le patch ayant un pxcor de 3 et un pycor de -4 devient vert show patch 1.2 3.7 ;; affiche (patch 1 4), notez les arrondis show patch 18 19 ;; supposons min-pxcor et min-pycor valant -17 ;; et max-pxcor et max-pycor valant 17: ;; dans une topologie enroulante, affiche (patch -17 -16), ;; dans une topologie non enroulant, affiche nobody
Voir aussi patch-at
Retourne le patch qui se trouve à la distance donnée « devant » la tortue appelante, c'est-à-dire sur le cap de la tortue. Retourne nobody si le patch n'existe pas parce qu'il se situerait hors du monde.
ask patch-ahead 1 [ set pcolor green ] ;; colore le patch se trouvant une unité devant la ;; tortue appelante en vert; notez que ce peut être le ;; même patch que celui sur lequel se trouve la tortue
Voir aussi patch-at, patch-left-and-ahead, patch-right-and-ahead et patch-at-heading-and-distance
Retourne le patch situé aux distances (dx, dy) de l'agent appelant, c'est-à-dire le patch contenant le point situé à dx unités à l'est (vers la droite) et à dy unités au nord de l'agent appelant.
Retourne nobody s'il n'y a pas de pas un tel patch car le point se trouve à l'extérieur des limites d'un monde non « enroulé ».
ask patch-at 1 -1 [ set pcolor green ] ;; si l'agent appelant est une tortue ou un patch, ;; colore le patch situé au sud-est en vert
Voir aussi patch, patch-ahead, patch-left-and-ahead, patch-right-and-ahead et patch-at-heading-and-distance
patch-at-heading-and-distance retourne le patch qui se trouve le long du cap absolu heading donné (par rapport au Nord) et à la distance distance donnée de la tortue ou du patch appelant. (Contrairement à ce qui se passe avec les primitives patch-left-and-ahead et patch-right-and-ahead, le cap de la tortue appelante n'est pas pris en compte.) Retourne nobody si le patch n'existe pas car il se trouverait hors des limites du monde.
ask patch-at-heading-and-distance -90 1 [ set pcolor green ] ;; colore en vert le patch se trouvant à une distance d'une ;; unité à l'ouest (à gauche) du patch appelant
Voir aussi patch, patch-at, patch-left-and-ahead et patch-right-and-ahead
patch-here retourne le patch sur lequel se trouve la tortue.
Notez que ce reporter n'est pas disponible pour un patch car un patch ne peut tout simplement pas s'adresser à lui-même.
Retourne le patch se trouvant à la distance distance donnée de la tortue appelante et le long de la direction donnée par le cap de la tortue corrigé à gauche (patch-left-and-ahead) ou à droite (patch-right-and-ahead) de la valeur de l'angle donné angle. Retourne nobody si le patch n'existe pas car il se trouverait hors des limites du monde.
Si vous voulez trouvez un patch le long d'un cap absolu plutôt que le long d'un cap relatif au cap de la tortue appelante, utilisez la primitive patch-at-heading-and-distance.
ask patch-right-and-ahead 30 1 [ set pcolor green ] ;; la tortue appelante «cherche» un patch situé à 30 degrés ;; à droite de son cap actuel et à une distance de 1 unité ;; et le colore vert. Notez que ce peut être le même patch ;; que celui sur lequel se trouve la tortue
Voir aussi patch, patch-at et patch-at-heading-and-distance
Retourne un ensemble d'agents contenant tous les patches cités n'importe où dans n'importe quelle entrée. Les entrées peuvent être des patches individuels, des ensembles d'agents de type patch, nobody, ou des listes (ou des listes imbriquées) contenant des objets cités ci-avant.
patch-set self patch-set patch-here (patch-set self neighbors) (patch-set patch-here neighbors) (patch-set patch 0 0 patch 1 3 patch 4 -2) (patch-set patch-at -1 1 patch-at 0 1 patch-at 1 1) patch-set [patch-here] of turtles patch-set [neighbors] of turtles
Voir aussi turtle-set et link-set
Ce mot-clé, tout comme les mots-clés globals, breed, <race>-own et turtles-own, ne peut être utilisé qu'au début d'un programme, avant toute définition de procédures. Il définit les variables que tous les patches peuvent utiliser.
Tous les patches auront alors les variables ainsi définies et pourront les utiliser.
Toutes les variables de type patch sont aussi directement accessibles par toutes les tortues se trouvant sur le patch.
Voir aussi globals, turtles-own, breed et <breeds>-own
pcolor est une variable patch pré-programmée. Elle définit la couleur du patch. Vous pouvez (et devez) changer la valeur de cette variable pour modifier la couleur du patch.
Toutes les variables patch sont directement accessibles par toute tortue se trouvant sur le patch. Les couleurs sont représentées soit par une couleur NetLogo (un seul nombre) soit par une couleur RGB (une liste de 3 nombres). Voir les détails dans le chapitre Couleurs du Guide de la programmation.
Voir aussi color
Ces commandes permettent de changer le mode de dessin de la tortue. pen-down ou pd (baisser-crayon) dessine une ligne, pen-erase ou pe efface une ligne et pen-up ou pu relève le crayon de sorte que la tortue ne dessine plus. Les lignes sont toujours dessinées sur le calque se trouvant au-dessus des patches et au-dessous des tortues. Pour modifier la couleur du crayon de la tortue, il faut modifier la couleur de la tortue avec set color.
Note 1 : Quand le crayon d'une tortue est baissé, toutes les commandes de mouvements entraînent le dessin d'une ligne quand la tortue se déplace, y compris les commandes jump, setxy et move-to.
Note 2 : On obtient le même résultat en donnant les valeurs down, erase ou up à la variable tortue pen-mode.
Note 3 : Avec le système Windows, dessiner puis effacer une ligne peut ne pas effacer tous les pixels.
pen-mode est une variable tortue préprogrammée. Elle spécifie l'état du crayon de la tortue. Vous pouvez donner à cette la variable la valeur draw pour dessiner des lignes, la valeur erase pour effacer des lignes ou la valeur up pour faire cesser l'une de ces deux actions.
pen-size est une variable tortue préprogrammée. Elle spécifie la largeur de la ligne en pixels, autrement dit la largeur du crayon (ou de la gomme) avec lequel la tortue dessine (ou efface).
plabel est une variable patch préprogrammée. Elle peut contenir un valeur de n'importe quel type. Le patch apparaît dans la Vue avec une étiquette contenant la valeur donnée sous forme de texte. Vous pouvez spécifier cette variable pour ajouter, modifier ou supprimer l'étiquette du patch.
Toutes les variables patch sont directement accessibles par toute tortue se trouvant sur le patch.
Voir aussi plabel-color, label et label-color
plabel-color est une variable patch préprogrammée. Elle contient un nombre plus grand ou égal à zéro et plus petit que 140. Ce nombre définit la couleur de l'étiquette attachée au patch (si ce dernier en a une). Vous pouvez (et devez) modifier la valeur de cette variable pour changer la couleur de l'étiquette du patch.
Toutes les variables patch sont directement accessibles par toute tortue se trouvant sur le patch.
Voir aussi plabel, label et label-color
Incrémente l'abscisse (valeur x) du crayon du traceur de courbes de la valeur plot-pen-interval, puis dessine un point d'abscisse x dont la valeur vient d'être mise à jour et d'ordonnée dont la valeur est spécifiée par number. (La première fois que cette commande est utilisée par un traceur, le point dessiné a une abscisse de 0.)
Retourne true (vrai) si un crayon de traceur portant le nom spécifié dans la chaîne de caractères string est défini (existe) dans le traceur courant, sinon retourne false (faux).
Abaisse (plot-pen-down) ou relève (plot-pen-up) le crayon de traceur courant afin qu'il dessine (ou ne dessine pas). (Par défaut, tous les crayons sont initialement baissés.)
Efface tout ce que le crayon actif du traceur a dessiné, déplace ce crayon à l'origine (0,0) et l'abaisse. Si le crayon est un crayon permanent, la couleur et le mode sont réinitialisés à leurs valeurs par défaut telles qu'elles ont été définies dans la boîte de dialogue "Plot" du panneau "Interface".
Déplace le crayon actif du traceur au point de coordonnées number1 number2. Si le crayon est baissé, une ligne, une barre ou un point est dessiné (en fonction du mode du crayon).
Retourne la valeur minimale (plot-x-min) ou maximale (plot-x-max) de l'axe x ou la valeur minimale (plot-y-min) ou maximale (plot-y-max) de l'axe y du traceur courant.
Ces valeurs peuvent être spécifiées avec les commandes set-plot-x-range et set-plot-y-range. (Leurs valeurs par défaut sont celles définies dans la boîte de dialogue "Plot" du panneau "Interface".)
Avec une liste, position retourne la position de la première occurrence de l'élément item se trouvant dans la liste list, ou false (faux) si cet élément ne fait pas partie de la liste.
Avec des chaînes, position retourne la position du premier caractère appartenant à la première occurrence de la chaîne string1 qui apparaît en tant que sous-chaîne de la chaîne string2 ou false (faux) si elle n'apparaît pas dans la chaîne.
Note : Les positions sont numérotées à partir de 0, pas de 1.
;; supposons ma-liste valant [2 7 4 7 "Bob"] show position 7 ma-liste => 1 show position 10 ma-liste => false show position "in" "string" => 3
Voir aussi member?
Retourne le nombre donné number arrondi à places décimales.
Si places est négatif, l'arrondi se fait à gauche du point décimal.
show precision 1.23456789 3 => 1.235 show precision 3834 -3 => 4000
Affiche (écrit) les données de l'entrée value dans le Centre de Commande, suivies d'un retour du chariot (va à la ligne).
L'agent appelant n'est pas affiché avant les données de value, contrairement à ce qui se passe avec la commande show.
Voir aussi show, type, write et output-print
Ce sont des variables patch préprogrammées. Elles contiennent les coordonnées x (pxcor) et y (pycor) du patch. Ces coordonnées sont toujours des entiers. Vous ne pouvez pas modifier ces variables car les patches ne se déplacent pas.
pxcor est toujours plus grand ou égal à min-pxcor et plus petit ou égal à max-pxcor; il en va de même pour pycor avec min-pycor et max-pycor.
Toutes les variables patch sont directement accessibles par toute tortue se trouvant sur le patch.
Le reporter random retourne un nombre aléatoire entier pris dans un ensemble de nombres défini par l'entrée number.
Si number est positif, le nombre aléatoire retourné est un entier plus grand ou égal à 0 mais strictement plus petit que number.
Si number est négatif, le nombre aléatoire retourné est un entier plus petit ou égal à 0 mais strictement plus grand que number.
Si number vaut zéro, le résultat est toujours 0.
Note : Dans les versions de NetLogo antérieures à 2.0, cette primitive retourne un nombre en virgule flottante si number n'est pas un entier. Ce qui n'est plus le cas. Si vous voulez un nombre aléatoire en virgule flottante, vous devez utiliser random-float.
show random 3 ;; affiche 0, 1 ou 2 show random -3 ;; affiche 0, -1 ou -2 show random 3.5 ;; affiche 0, 1, 2ou 3
Voir aussi random-float
Le reporter random-float retourne un nombre aléatoire en virgule flottante pris dans un ensemble de nombres défini par l'entrée number.
Si number est positif, le nombre aléatoire retourné est un nombre en virgule flottante plus grand ou égal à 0 mais strictement plus petit que number.
Si number est négatif, le nombre aléatoire retourné est un nombre en virgule flottante plus petit ou égal à 0 mais strictement plus grand que number.
Si number vaut zéro, le résultat est toujours 0.
show random-float 3 ;; affiche un nombre valant au moins 0 mais plus petit que 3, ;; par exemple 2.589444906014774 show random-float 2.5 ;; affiche un nombre valant au moins 0 mais plus petit que 2.5, ;; par exemple 1.0897423196760796
Ces primitives retournent un nombre aléatoire pris dans un ensemble de nombres dont la distribution est fonction de l'entrée mean.
random-exponential retourne un nombre aléatoire en virgule flottante choisi en fonction d'une distribution exponentielle.
random-gamma retourne un nombre aléatoire en virgule flottante choisi en fonction d'une distribution gamma, distribution contrôlée par les entrées en virgule flottante alpha et lambda. Ces deux paramètres doivent être plus grands que zéro. (Note : pour des résultats avec une moyenne et une variance données, construisez vos entrées comme suit : alpha = moyenne * moyenne / variance; lambda = 1 / (variance / moyenne).)
random-normal retourne un nombre aléatoire en virgule flottante choisi en fonction d'une distribution normale avec une déviation standard spécifiée par standard-deviation.
random-poisson retourne un nombre aléatoire entier choisi en fonction d'une distribution de Poisson.
show random-exponential 2 ;; affiche un nombre aléatoire en virgule flottante choisi en ;; fonction d'une distribution exponentielle avec une moyenne de 2 show random-normal 10.1 5.2 ;; affiche un nombre aléatoire en virgule flottante choisi en ;; fonction d'une distribution normale avec une moyenne de 10.1 ;; et une déviation standard de 5.2 show random-poisson 3.4 ;; affiche une nombre aléatoire entier choisi en fonction d'une ;; distribution de Poisson avec une moyenne de 3.4
Retourne une nombre entier aléatoire appartenant à l'ensemble limité par les valeurs min-pxcor et max-pxcor (pour random-pxcor) ou à l'ensemble limité par les valeurs min-pycor et max-pycor (pour random-pycor). Les limites font partie des ensembles pris en compte.
ask turtles [ ;; déplace chaque tortue au centre d'un patch choisi aléatoirement setxy random-pxcor random-pycor ]
Voir aussi random-xcor et random-ycor
Initialise le générateur de nombres pseudo-aléatoires avec la partie entière de l'entrée number. L'amorce peut être un nombre entier appartenant l'ensemble des nombres entiers supportés par NetLogo (allant de -9007199254740992 à +9007199254740992).
Voir la section Nombres aléatoires du Guide de programmation pour plus de détails.
random-seed 47823 show random 100 => 57 show random 100 => 91 random-seed 47823 show random 100 => 57 show random 100 => 91
Retourne un nombre aléatoire en virgule flottante appartenant à l'ensemble des coordonnées autorisées de la tortue pour l'axe spécifié : axe x pour random-xcor et axe y pour random-ycor.
Les coordonnées de la tortue appartiennent à l'ensemble limité par min-pxcor - 0.5 (inclusivement) et max-pxcor + 0.5 (exclusivement) horizontalement et à l'ensemble limité par min-pycor - 0.5 (inclusivement) et max-pycor + 0.5 (exclusivement) verticalement.
ask turtles [ ;; déplace chaque tortue sur un point choisi aléatoirement ;; dans tout l'espace du monde NetLogo disponible setxy random-xcor random-ycor ]
Voir aussi random-pxcor et random-pycor
Interprète la chaîne de caractères string donnée comme si elle avait été tapée dans le Centre de commande et retourne la valeur résultant des opérations demandées. Le résultat peut être un nombre, une liste, une chaîne de caractères, une valeur booléenne ou encore la valeur spéciale nobody.
Utilisée conjointement avec la primitive user-input, cette commande permet de convertir l'entrée faite par l'utilisateur en une forme utilisable par NetLogo.
show read-from-string "3" + read-from-string "5" => 8 show length read-from-string "[1 2 3]" => 3 crt read-from-string user-input "Combien de tortues faut-il créer?" ;; NetLogo crée le nombre de tortues introduit par l'utilisateur
Réduit la liste liste fournie en entrée de gauche à droite en utilisant les opérations définies par reporter jusqu'à la transformer en une seule valeur. Cela signifie par exemple que reduce [?1 + ?2] [1 2 3 4] est équivalent à (((1 + 2) + 3) + 4). Si list ne comprend qu'un seul élément, c'est cet élément qui est retourné. La réduction d'une liste vide conduit à une erreur.
Dans reporter, il faut utiliser ?1 et ?2 pour faire référence aux deux éléments de la liste qui doivent être combinés.
Étant donné qu'il peut être difficile de comprendre intuitivement ce que fait reduce, voici quelques exemples simples qui, bien que n'étant en soi pas utiles, peuvent vous faire mieux comprendre ce que fait cette primitive :
show reduce [?1 + ?2] [1 2 3] => 6 show reduce [?1 - ?2] [1 2 3] => -4 show reduce [?2 - ?1] [1 2 3] => 2 show reduce [?1] [1 2 3] => 1 show reduce [?2] [1 2 3] => 3 show reduce [sentence ?1 ?2] [[1 2] [3 [4]] 5] => [1 2 3 [4] 5] show reduce [fput ?2 ?1] (fput [] [1 2 3 4 5]) => [5 4 3 2 1]
Voici quelques exemples plus utiles :
;; trouver la plus longue chaîne dans une liste to-report longest-string [strings] report reduce [ifelse-value (length ?1 >= length ?2) [?1] [?2]] strings end
show longest-string ["hi" "there" "!"] => "there"
;; compter le nombre d'occurences d'un élément dans une liste to-report occurrences [x the-list] report reduce [ifelse-value (?2 = x) [?1 + 1] [?1]] (fput 0 the-list) end
show occurrences 1 [1 2 1 3 1 2 3 1 1 4 5 1] => 6
;; évaluer le polynôme, avec les coefficients donnés, pour x to-report evaluate-polynomial [coefficients x] report reduce [(x * ?1) + ?2] coefficients end
;; évaluer 3x^2 + 2x + 1 pour x = 4 show evaluate-polynomial [3 2 1] 4 => 57
Retourne le reste de la division de la première entrée number1 par la deuxième entrée number2. C'est l'équivalent du code NetLogo suivant :
number1 - (int (number1 / number2)) * number2
show remainder 62 5 => 2 show remainder -8 3 => -2
Remarque : mod et remainder se comportent de la même manière pour les nombres positifs, mais différemment pour les nombres négatifs.
Voir aussi mod
Avec une liste comme deuxième entrée, remove retourne une copie de la liste list débarrassée de toutes les occurrences de le première entrée element.
Avec des chaînes de caractères en entrée, remove retourne une copie de la deuxième entrée string2 débarrassée de toutes les sous-chaînes string1 qui y apparaissent.
set ma-liste [2 7 4 7 "Bob"] set ma-liste remove 7 ma-liste ;; ma-liste vaut maintenant [2 4 "Bob"] show remove "to" "phototonique" => "phonique"
Retourne une copie de liste list débarrassée de tous les doublons de ses éléments. Seul le premier exemplaire de chaque doublon reste en place.
set ma-liste [2 7 4 7 "Bob" 7 "Bob"] set ma-liste remove-duplicates ma-liste ;; ma-liste vaut maintenant [2 7 4 "Bob"]
Avec une liste comme deuxième entrée, remove-item retourne une copie de la liste list débarrassée de l'élément désigné par son numéro index.
Avec une chaîne de caractères comme deuxième entrée, remove-item retourne une copie de la chaîne string débarrassée du caractère se trouvant à la position index.
Notez que les éléments, ou les caractères, sont numérotés à partir de 0, pas de 1. (Le premier élément est l'élément d'index 0, le second, l'élément d'index 1, et ainsi de suite.)
set ma-liste [2 7 4 7 "Bob"] set ma-liste remove-item 2 ma-liste ;; ma-liste vaut maintenant [2 7 7 "Bob"] show remove-item 2 "string" => "sting"
Exécute number fois les commandes de la liste [commandes].
pd repeat 36 [ fd 1 rt 10 ] ;; la tortue dessine un cercle
Avec une liste comme deuxième entrée, replace-item remplace l'élément index de cette liste list par les données de l'entrée value. L'entrée index est le numéro de l'élément devant être remplacé, en commençant par 0 (donc, le 6e élément d'une liste porte le numéro 5). Notez que replace-item doit être utilisé avec set pour modifier une liste.
Il en va de même avec des chaînes, mais ici, c'est le caractère de numéro index de la chaîne string1 qui est supprimé et remplacé par le contenu de la chaîne string2.
show replace-item 2 [2 7 4 5] 15 => [2 7 15 5] show replace-item 1 "cat" "are" => "caret"
Fait immédiatement sortir de la procédure to-report courante et retourne les données valeur en tant que résultat de la procédure. Les primitives report et to-report sont toujours utilisées l'une avec l'autre.
Voir la description de to-report pour savoir comment les utiliser.
Après l'appel de cette procédure, l'observateur cesse de regarder (watch), de suivre (follow) ou de chevaucher (ride) toute tortue (ou patch). (S'il n'était pas en train de regarder, suivre ou chevaucher un agent, il ne se passe rien.) Dans la vue 3D, l'observateur retourne aussi à sa position par défaut (au-dessus de l'origine, regardant directement vers le bas).
Remets le compteur de cycles (tick counter) à zéro.
Voir aussi tick, ticks et tick-advance
Remet le chronomètre (timer) à zéro seconde.
Noter que chronomètre et compteur de cycles sont deux choses différentes. Le chronomètre mesure le temps écoulé réel en secondes alors que le compteur de cycles mesure le temps écoulé de la simulation du modèle en cycles (ticks).
Voir aussi timer
Retourne une copie «renversée» de la liste list ou de la chaîne de caractères string donnée en entrée.
show ma-liste ;; ma-liste vaut [2 7 4 "Bob"] set ma-liste reverse ma-liste ;; ma-liste vaut maintenant ["Bob" 4 7 2] show reverse "lived" => "devil"
Ce reporter retourne une liste formée de trois nombres spécifiant les valeurs RGB de la couleur. Les valeurs données en entrée red (rouge), green (vert) et blue (bleu) sont des nombres entiers dans la plage 0-255.
Voir aussi hsb
Place le point de vue (l'observateur, l'utilisateur) sur la tortue turtle.
Chaque fois que la tortue « chevauchée» se déplace, l'observateur se déplace aussi avec elle. Il en résulte que dans la Vue 2D, la tortue reste toujours au centre de la Vue, c'est le monde qui se déplace autour d'elle. Dans la vue 3D, c'est comme si l'observateur voyait à travers les yeux de la tortue. Si la tortue meurt (die), le point de vue perspective redevient le point de vue par défaut.
Voir aussi reset-perspective, watch, follow et subject
Fait pivoter la tortue vers la droite de number degrés. Si number est négatif, la tortue pivote à gauche.
Retourne l'entier qui est le plus proche du nombre number passé en entrée.
Si la partie décimale de number est exactement .5, le nombre est arrondi dans le sens positif.
Notez que l'arrondi dans le sens positif de NetLogo ne se fait pas toujours de la même manière que dans d'autres programmes. (En particulier, il ne correspond pas au comportement de StarLogoT qui arrondit toujours les nombres se terminant par .5 vers l'entier pair le plus proche.) La raison d'être du comportement de l'arrondi de NetLogo est qu'il doit correspondre à la manière dont les coordonnées des tortues sont en relation avec les coordonnées des patches. Par exemple, si la coordonnée xcor d'une tortue est -4.5, cette tortue se situe à la frontière entre le patch dont la coordonnée pxcor vaut -4 et celui dont la coordonnée pxcor vaut -5, mais la tortue doit être sur un patch ou sur l'autre (elle ne peut être ni sur deux patches à la fois, ni entre deux patches), ce qui fait que dans ce cas, la tortue est considérée comme étant sur le patch de coordonnée pxcor -4 puisque NetLogo arrondit vers les nombres positifs.
show round 4.2 => 4 show round 4.5 => 5 show round -4.5 => -4
L'agent concerné interprète la chaîne de caractères string comme une séquence d'une ou de plusieurs commandes NetLogo et les exécute.
Le code est exécuté dans le contexte courant de l'agent, ce qui signifie qu'il a accès aux valeurs des variables locales telles que myself, etc.
Le code doit d'abord être compilé, ce qui prend du temps. Toutefois, les portions de code compilées sont mises en cache par NetLogo, ce qui fait que l'utilisation répétée de run sur la même chaîne string est beaucoup plus rapide que son utilisation sur des portions de code différentes.
Notez que vous ne pouvez pas utiliser run pour définir ou redéfinir des procédures.
Notez aussi que faire exécuter du code au moyen de run ou de runresult peut être plusieurs fois plus lent qu'exécuter le même code directement.
Voir aussi runresult
L'agent concerné interprète la chaîne de caractères string comme étant une séquence d'une ou de plusieurs commandes NetLogo d'un reporter, les exécute et retourne le résultat obtenu.
Le code est exécuté dans le contexte courant de l'agent, ce qui signifie qu'il a accès aux valeurs des variables locales telles que myself, etc.
Le code doit d'abord être compilé, ce qui prend du temps. Toutefois, les portions de code compilées sont mises en cache par NetLogo, ce qui fait que l'utilisation répétée de runresult sur la même chaîne string est beaucoup plus rapide que son utilisation sur des portions de code différentes.
Notez que vous ne pouvez pas utiliser runresult pour définir ou redéfinir des procédures.
Notez aussi que faire exécuter du code au moyen de run ou de runresult peut être plusieurs fois plus lent qu'exécuter le même code directement.
Voir aussi run
Retourne une nuance de la couleur color proportionnelle à la valeur number choisie dans l'intervalle range1 range2.
Si la limite définie par range1 est plus petite que celle définie par range2, alors plus number est grand plus pâle est la nuance de color. Mais si range2 est plus petit que range1, l'échelle des couleurs est inversée.
Si number est plus petit que range1, c'est la nuance la plus sombre de color qui est choisie.
Si number est plus grand que range2, c'est la nuance la plus pâle de color qui est choisie.
Note : pour color, la nuance (shade) n'a pas d'importance, c'est-à-dire que green et green + 2 sont équivalents et que le même spectre de couleurs sera utilisé.
ask turtles [ set color scale-color red age 0 50 ] ;; colore chaque tortue avec une nuance de rouge ;; proportionnelle à la valeur de sa variable age
Retourne la tortue ou le patch courant (actif, c'est-à-dire celui ou celle qui a donné cette commande).
self et myself sont très différents. self signifie simplement « moi » alors que myself signifie « la tortue ou le patch qui m'a demandé de faire ce que je suis en train de faire ».
Voir aussi myself
Le reste de la ligne de code est ignoré après un point-virgule. Ce qui est très utile pour ajouter des commentaires à votre code — du texte qui explique le code aux lecteurs humains. Des points-virgules supplémentaires peuvent être ajoutés pour augmenter l'effet visuel des commentaires (comme dans les exemples de ce dictionnaire).
Le menu "Edit" de NetLogo possède des commandes permettant de commenter ou de dé-commenter des portions entières de code (dans le panneau "Procedures").
Construit une liste avec les entrées value1, value2, etc. reçues. Si une entrée est une liste, ses éléments sont incorporés directement dans la liste résultante plutôt que d'y être incorporés sous forme de sous-liste. Les exemples suivants illustrent son fonctionnement :
show sentence 1 2 => [1 2] show sentence [1 2] 3 => [1 2 3] show sentence 1 [2 3] => [1 2 3] show sentence [1 2] [3 4] => [1 2 3 4] show sentence [[1 2]] [[3 4]] => [[1 2] [3 4]] show (sentence [1 2] 3 [4 5] (3 + 3) 7) => [1 2 3 4 5 6 7]
Donne à la variable variable la valeur spécifiée dans l'entrée value.
La variable peut être l'un de objets suivants :
Indique à NetLogo le répertoire (dossier) courant qui devra être utilisé par les primitives file-delete, file-exists? et file-open.
Le répertoire courant n'est pas utilisé si les commandes ci-dessus reçoivent un chemin de fichier absolu. Par défaut, le répertoire courant est le répertoire home de l'utilisateur pour les nouveaux modèles, il est changé pour le répertoire dans lequel se trouve le modèle dès que ce modèle est chargé.
Notez que dans les chemins de fichiers Windows, le backslash doit être doublé d'un second backslash dans les chaînes, comme dans "C:\\".
Le changement de répertoire courant est temporaire et n'est pas sauvegardé avec le modèle.
Note : dans les applets, cette commande n'a pas d'effet puisque les applets ne sont autorisés à lire que les fichiers se trouvant dans le même répertoire que celui dans lequel se trouve le modèle.
set-current-directory "C:\\NetLogo" ;; supposé qu'il s'agisse d'un système Windows file-open "my-file.txt" ;; ouvre le fichier "C:\\NetLogo\\my-file.txt"
Active le traceur de courbes nommé plotname (une chaîne de caractères) pour en faire le traceur courant. Les commandes de traçage de courbes subséquentes seront dirigées vers et exécutées par le traceur courant.
Active le crayon portant le nom penname (une chaîne de caractères) pour en faire crayon courant du traceur courant. Si un tel crayon n'existe pas, il en résulte une erreur d'exécution.
Spécifie une forme initiale par défaut pour toutes les tortues ou pour une race de tortues particulière. Quand une tortue est créée, ou qu'elle change de race, sa forme prend celle de la forme par défaut.
Cette commande ne concerne pas les tortues existantes mais seulement les tortues créées à la suite de son appel.
Le type d'agent spécifié doit être soit l'ensemble des tortues en général (turtles) soit une race de tortues nommée breed préalablement définie à l'aide du mot-clé breed. La chaîne de caractères string doit être le nom d'une forme de tortue qui a déjà été définie.
Dans les nouveaux modèles, la forme par défaut pour toutes les tortues est "default".
Notez que la spécification d'une forme par défaut ne vous empêche pas de modifier la forme d'une tortue par la suite. Les tortues ne doivent pas être « prisonnières » de la forme de leur race par défaut.
create-turtles 1 ;; la forme de la nouvelle tortue est "default" create-cats 1 ;; la forme de la nouvelle tortue est "default"
set-default-shape turtles "circle" create-turtles 1 ;; la forme de la nouvelle tortue est "circle" create-cats 1 ;; la forme de la nouvelle tortue est "circle"
set-default-shape cats "cat" set-default-shape dogs "dog" create-cats 1 ;; la forme de la nouvelle tortue est "cat" ask cats [ set breed dogs ] ;; tous les chats deviennent des chiens et changent automatiquement ;; de forme pour prendre celle d'un chien "dog"
Voir aussi shape
Spécifie le nombre de barres number que devra dessiner le crayon courant du traceur courant si la commande histogram est appelée. NetLogo en déduit l'intervalle de dessin du crayon de manière à ce que le nombre de barres demandé couvre l'étendue courante de l'abscisse du graphique.
Voir aussi histogram
Spécifie l'épaisseur des lignes et des bordures dans la forme de la tortue.
La valeur par défaut est 0. Ce qui produit toujours une ligne de 1 pixel de large.
Les valeurs différentes de zéro sont interprétées comme des épaisseurs en patches. Une épaisseur de 1, par exemple, produit des lignes aussi épaisses que la largeur d'un patch. (Il est fréquent d'utiliser des valeurs plus petites que l'unité, telles que 0.5 ou 0.2.)
Les lignes ont toujours une épaisseur d'au moins un pixel.
Cette commande est expérimentale et peut changer dans des versions ultérieures de NetLogo.
Donne la couleur NetLogo de numéro number au crayon courant du traceur.
Demande au crayon courant du traceur de se déplacer d'une distance de number dans la direction x à chaque utilisation de la commande plot. (L'intervalle du crayon du traceur influence aussi le comportement de la commande histogram.)
Spécifie le mode de dessin du crayon du traceur courant à l'aide de number. Les modes de dessin pour ce crayon sont :
Le mode par défaut pour les nouveaux crayons est 0 (mode ligne).
Spécifie les valeurs minimales et maximales pour l'axe x (set-plot-x-range) ou les valeurs minimales et maximales pour l'axe y (set-plot-y-range) du traceur de courbes courant.
Cette modification est temporaire et n'est pas sauvegardée avec le modèle. Quand un traceur est nettoyé (effacé), ces dimensions reprennent les valeurs par défaut définies dans la fenêtre d'édition du traceur "Plot".
La tortue donne la valeur x à sa variable xcor et la valeur y à sa variable ycor et se rend au point défini par ces coordonnées.
Cette commande est équivalente à set xcor x set ycor y, sauf que l'opération se fait en un seul pas au lieu de deux.
Si x ou y sort des limites du monde, NetLogo génère une erreur d'exécution.
setxy 0 0 ;; la tortue se déplace au centre du patch central setxy random-xcor random-ycor ;; la tortue se déplace sur un point aléatoire setxy random-pxcor random-pycor ;; la tortue se déplace sur le centre d'un patch aléatoire
Voir aussi move-to
Retourne true (vrai) si les deux couleurs spécifiées par les nombres color1 color2 (nombres valides pour désigner les couleurs dans le système de couleurs NetLogo) sont des nuances d'une même teinte, sinon retourne false (faux).
show shade-of? blue red => false show shade-of? blue (blue + 1) => true show shade-of? gray white => true
shape est une variable tortue ou lien préprogrammée. Elle contient une chaîne de caractères qui est le nom de la forme courante de la tortue ou du lien. Vous pouvez changer la valeur de cette variable pour modifier la forme de l'agent. Les nouvelles tortues et les nouveaux liens ont la forme "default" à moins qu'une forme différente n'ait été spécifiée par l'utilisation de la primitive set-default-shape.
Exemple :
ask turtles [ set shape "wolf" ] ;; à supposé que vous ayez créé une forme "wolf" ;; dans l'Editeur de formes de tortue ask links [ set shape "link 1" ] ;; à supposé que vous ayez créé une forme "link 1" ;; dans l'Editeur de formes de lien.
Voir aussi set-default-shape et shapes
Retourne une liste de chaînes de caractères contenant toutes les formes de tortue présentes dans le modèle.
De nouvelles formes peuvent être créées, ou importées de la bibliothèque des formes ou importées d'autres modèles à l'aide de l'Editeur de formes.
show shapes => ["default" "airplane" "arrow" "box" "bug" ... ask turtles [ set shape one-of shapes ]
Affiche les données de l'entrée value dans le Centre de commande, précédées du nom de l'agent appelant et suivi d'un retour de chariot. (L'agent appelant est ajouté pour vous permettre de savoir quel agent a produit quelle ligne de données.) De plus, toutes les chaînes conservent leurs guillemets, comme avec write.
Voir aussi print, type, write et output-show
La tortue est à nouveau visible.
Note : Cette commande revient à donner la valeur false à la variable tortue hidden?.
Voir aussi hide-turtle
Le lien est à nouveau visible.
Note : Cette commande revient à donner la valeur false à la variable lien hidden?.
Voir aussi hide-link
Retourne une nouvelle liste contenant les mêmes éléments que la liste list donnée en entrée, mais dans un ordre aléatoire, autrement dit, elle mélange les éléments de list.
show shuffle [1 2 3 4 5] => [5 2 4 1 3] show shuffle [1 2 3 4 5] => [1 3 5 2 4]
Retourne le sinus de l'angle donné number. L'angle doit être exprimé en degrés.
show sin 270 => -1
size est une variable tortue préprogrammée. Elle contient un nombre qui représente la taille apparente de la tortue. La taille par défaut est 1, ce qui signifie que la taille de la tortue est la même que celle d'un patch. Vous pouvez modifier cette variable pour changer la taille de la tortue.
Le reporter sort sert à trier les éléments de l'ensemble reçu en entrée.
Si l'entrée est une liste de nombres list-of-numbers ou de chaînes de caractères list-of-strings, le reporter retourne une nouvelle liste contenant les mêmes éléments que la liste fournie, mais rangés par ordre croissant (numérique ou alphabétique).
Tout élément d'une liste qui n'est pas un nombre ou une chaîne de caractères est ignoré. (Si la liste fournie ne contient ni nombres ni chaînes, la primitive retourne une liste vide.)
Si l'entrée est un ensemble d'agent agentset ou une liste d'agents, sort retourne une liste d'agents (jamais un ensemble d'agents). Si les agents sont des tortues, elles sont listées par numéro d'identification (who number) croissant. Si les agents sont des patches, ils sont listés de gauche à droite et de haut en bas.
show sort [3 1 4 2] => [1 2 3 4] let n 0 foreach sort patches [ ask ? [ set plabel n set n n + 1 ] ] ;; les patches sont étiquetés avec des numéros ;; de gauche à droite et de haut en bas
Le reporter sort-by trie les éléments de l'ensemble reçu en entrée en fonction d'un critère défini par la liste [reporter] et retourne la liste triée.
Si l'entrée est une liste, sort-by retourne une nouvelle liste contenant les mêmes éléments que la liste list fournie en entrée, triés dans un ordre défini par le reporter booléen (true ou false).
Dans reporter, il faut utiliser ?1 et ?2 pour faire référence aux deux éléments devant être comparés. reporter doit valoir true (vrai) si ?1 vient strictement avant ?2 selon l'ordre de tri, et false (faux) dans tous les autres cas.
Si l'entrée est un ensemble d'agents agentset ou une liste d'agents, retourne une liste d'agents (jamais un ensemble d'agents).
Le tri est stable, c'est-à-dire que l'ordre des éléments considérés égaux par le reporter n'est pas perturbé.
show sort-by [?1 < ?2] [3 1 4 2] => [1 2 3 4] show sort-by [?1 > ?2] [3 1 4 2] => [4 3 2 1] show sort-by [length ?1 < length ?2] ["Grumpy" "Doc" "Happy"] => ["Doc" "Happy" "Grumpy"] foreach sort-by [[size] of ?1 < [size] of ?2] turtles [ ask ? [ do-something ] ] ;; les tortues exécutent "do-something" les unes après ;; les autres par ordre de taille croissante
Crée le nombre de nouvelles tortues spécifié par l'entrée number sur le patch courant. Les nouvelles tortues ont des caps aléatoires (nombre entier de degrés par rapport au Nord) et leur couleur est choisie aléatoirement parmi les 14 couleurs primaires de NetLogo. Les tortues exécutent immédiatement les commandes spécifiées dans la liste [commands], ce qui est utile pour donner aux nouvelles tortues des couleurs, des caps ou quoi que ce soit d'autre différents. (Les nouvelles tortues sont créées toutes d'un seul coup puis elles exécutent les commandes les unes après les autres dans un ordre aléatoire.)
Si la forme sprout-<breeds> est utilisée, les nouvelles tortues sont automatiquement créées en tant que membre de la race <breeds> spécifiée.
sprout 5 sprout-wolves 10 sprout 1 [ set color red ] sprout-sheep 1 [ set color black ]
Note : Tant que les commandes données sont exécutées, aucun autre agent n'a l'autorisation d'exécuter quelque code que ce soit (comme c'est le cas avec la commande without-interruption). Ceci afin de garantir que si ask-concurrent a été utilisé, les nouvelles tortues ne puissent interagir avec n'importe quel autre agent avant qu'elles n'aient toutes été complètement initialisées.
Voir aussi create-turtles et hatch
La tortue ou le lien concerné laisse une image de sa forme sur le calque de dessin à sa position actuelle.
Note : Les formes créée par stamp peuvent ne pas être identiques au pixel près d'un système d'exploitation à l'autre.
La tortue ou le lien concerné efface tous les pixels du calque de dessin qui se trouvent sous sa forme.
Note : Les formes dues à l'effacement du dessin par stamp-erase peuvent ne pas être identiques au pixel près d'un système d'exploitation à l'autre.
Retourne la déviation statistique standard des nombres de la liste list fournie en entrée. Ignore les autres types d'éléments.
show standard-deviation [1 2 3 4 5 6] => 1.8708286933869707 show standard-deviation [energy] of turtles ;; affiche la déviation standard de la variable ;; "energy" pour toutes les tortues
Procédure définie par l'utilisateur qui, si elle existe, est appelée automatiquement quand le modèle est chargé. (Si le contenu de la procédure est défini par l'utilisateur, son nom, startup est prédéfini dans NetLogo.)
to startup setup end
L'agent appelant sort immédiatement de la procédure, de la construction ask ou semblable à ask (crt, hatch, sprout, without-interruption) englobante en cours. Seule la procédure en cours s'arrête, et non toutes celles exécutées par cet agent.
if not any? turtles [ stop ] ;; sort (s'arrête) s'il n'y a plus de tortues
Note : stop peut être utilisé pour stopper un bouton "forever". Si le bouton "forever" appelle directement une procédure, alors le bouton se déclenche quand la procédure s'arrête. (Dans un bouton "forever" de tortue ou de patch, le bouton ne se déclenche pas tant que chaque tortue ou chaque patch ne s'est pas arrêté — une seule tortue ou un seul patch n'a pas le pouvoir de déclencher un tel bouton.)
Retourne la tortue (ou le patch) que l'observateur est en train de regarder (watch), de suivre (follow) ou de chevaucher (ride). Retourne nobody s'il n'y a pas de tel patch ou de telle tortue.
Retourne une partie de la liste list (avec sublist) ou de la chaîne de caractères string (avec substring) donnée allant de position1 (compris) à position2 (non compris).
Note: Les positions sont numérotées en commençant par 0 et non pas par 1.
show sublist [99 88 77 66] 1 3 => [88 77] show substring "appartement" 2 6 => "part"
Calcule et retourne la différence entre les deux caps donnés, c'est-à-dire le nombre de degrés correspondant au plus petit angle dont il faut faire pivoter la direction heading2 pour la faire coïncider avec la direction heading1. Une réponse positive signifie une rotation dans le sens des aiguilles d'une montre; une réponse négative, une rotation dans le sens inverse des aiguilles d'une montre. Le résultat se trouve toujours dans l'intervalle -180 à 180, mais ne vaut jamais exactement -180.
Notez qu'une simple soustraction des deux caps en utilisant l'opérateur - (moins) ne donne pas toujours le bon résultat. Cette soustraction correspond toujours à une rotation dans le sens des aiguilles d'une montre de la direction heading2 vers heading1, mais parfois la rotation dans le sens inverse des aiguilles d'une montre est plus petite. Par exemple, l'angle minimal correspondant à différence entre le cap 5 et le cap 355 est 10 degrés et non de 350 degrés.
show subtract-headings 80 60 => 20 show subtract-headings 60 80 => -20 show subtract-headings 5 355 => 10 show subtract-headings 355 5 => -10 show subtract-headings 180 0 => 180 show subtract-headings 0 180 => 180
Retourne la somme des éléments de la liste list fournie en entrée.
show sum [energy] of turtles ;; affiche le total de la variable ;; "energy" de toutes les tortues
Retourne la tangente de l'angle donné. L'angle est un nombre number exprimé en degrés.
thickness est une variable lien préprogrammée. Elle contient un nombre qui définit l'épaisseur apparente du lien en fonction de la taille des patches. L'épaisseur par défaut est 0, ce qui signifie que, quelle que soit la taille des patches, le lien aura toujours une épaisseur de 1 pixel. Vous pouvez modifier la valeur de cette variable pour changer l'épaisseur du lien.
Fait avancer le compteur de cycles d'une unité.
Voir aussi ticks, tick-advance et reset-ticks
Fait avancer le compteur de cycles (tick counter) du nombre de pas spécifié par number. L'entrée peut être un nombre entier ou un nombre en virgule flottante. (Certains modèles divisent les cycles (ticks) plus finement que l'unité.) L'entrée ne peut contenir un nombre négatif
Voir aussi tick, ticks et reset-ticks
Retourne la valeur courante du compteur de cycles (tick counter). Le résultat est toujours un nombre et n'est jamais négatif.
La plupart des modèles utilisent la commande tick pour faire avancer le compteur de cycles et dans ce cas, ticks retournera toujours un nombre entier. Si la commande tick-advance a été utilisée, alors ticks peut retourner un nombre en virgule flottante.
Voir aussi tick, tick-advance et reset-ticks
Attache rigidement l'une à l'autre les deux extrémités end1 et end2 du lien concerné. Si le lien est un lien orienté, end1 devient la tortue racine et end2 la tortue feuille. Le mouvement de la tortue racine influence la position et le cap de la tortue feuille. Si le lien n'est pas orienté, l'attache est réciproque ce qui fait que les deux tortues peuvent être considérées à la fois comme tortues racines et tortues feuilles. Le déplacement ou le changement de cap de l'une des deux tortues modifie l'emplacement et le cap de l'autre tortue.
Quand la tortue racine se déplace, les tortues feuilles se déplacent de la même distance et dans la même direction. Le cap de la tortue feuille n'est pas influencé. Cette primitive fonctionne avec forward et jump et prend en compte les modifications des coordonnées xcor et/ou ycor de la tortue racine.
Quand la tortue racine pivote à gauche ou à droite, la tortue feuille lui tourne autour dans le même sens et du même angle. Le cap de la tortue feuille est aussi modifié de la même valeur.
Si le lien est détruit (die), la relation d'attache rigide tie est supprimée.
crt 2 [ fd 3 ] ;; créer un lien et attacher la tortue 1 à la tortue 0 ask turtle 0 [ create-link-to turtle 1 [ tie ] ]
Voir aussi untie
tie-mode est une variable de lien préprogrammée. Elle contient une chaîne caractères qui est le nom du mode d'attache du lien. L'utilisation des commandes tie et untie modifie le mode du lien. Vous pouvez aussi donnez la valeur "free" à la variable tie-mode pour créer une attache non rigide entre les deux tortues. (Voir la section Attache du Guide de la programmation pour plus de détails.) Par défaut, les liens ne sont pas attachés.
Retourne le nombre de secondes écoulées depuis le dernier appel de la commande reset-timer (ou depuis le démarrage de NetLogo). La précision potentielle du chronomètre est la milli-seconde. (La possibilité d'obtenir réellement une telle précision peut varier d'un système à l'autre en fonction des performances de la Machine Java Virtuelle sous-jacente.)
Notez que le chronomètre (timer) est différent du compteur de cycles (tick counter). Le chronomètre mesure le temps écoulé en secondes alors que le compteur de cycles mesure le temps écoulé du modèle en cycles (ticks).
Voir aussi reset-timer
Doit être utilisé pour marquer le début de la définition d'une procédure de type commande (avec ou sans entrées [input1 ...]).
to setup clear-all crt 500 end to circle [radius] crt 100 [ fd radius ] end
Doit être utilisé pour marquer le début de la définition d'une procédure de type reporter (appelée une fonction dans les autres langages de programmation).
Le corps de la procédure doit contenir le mot-clé report pour retourner la valeur calculée par la procédure.
to-report moyenne [a b] report (a + b) / 2 end
to-report valeur-absolue [nombre] ifelse nombre >= 0 [ report nombre ] [ report (- nombre) ] end
to-report premiere-tortue? report who = 0 ;; retourne true ou false end
Voir aussi report
Retour le cap que doit prendre l'agent appelant pour se mettre dans le même direction que (regarder vers) l'agent spécifié dans l'entrée agent.
Si l'enroulement est autorisé par la topologie et que la distance « enroulée » (autour des bords du monde) est plus courte, towards utilise le chemin « enroulé » pour calculer le cap.
Note : demander la cap d'un agent vers lui-même ou vers un agent placé au même endroit génère une erreur d'exécution.
set heading towards turtle 1 ;; semblable à "face turtle 1"
Voir aussi face
Retourne le cap à prendre à partir de l'endroit où se trouve la tortue ou le patch appelant pour faire face au (regarder vers) le point de coordonnées (x y).
Si l'enroulement est autorisé par la topologie et que la distance « enroulée » (autour des bords du monde) est plus courte, towardsxy utilise le chemin « enroulé » pour calculer le cap.
Note : demander la cap d'un point sur lequel se trouve déjà l'agent appelant génère une erreur d'exécution.
Voir aussi facexy
Retourne la tortue dont le numéro d'identification (who number) est spécifié par l'entrée number, ou nobody si cette tortue n'existe pas. Pour les tortues appartenant à une race, vous pouvez aussi utiliser la forme singulier de la race <breed> pour y faire référence. Ce reporter permet de s'adresser à (donner des commandes ou d'interroger) une tortue particulière.
ask turtle 5 [ set color red ] ;; la tortue numéro 5 devient rouge
Retourne un ensemble d'agents contenant toutes les tortues citées n'importe où dans les différentes entrées. Les entrées peuvent être des tortues individuelles, des ensembles d'agents contenant des tortues, nobody ou encore des listes (ou des listes imbriquées) contenant les entrées citées ci-dessus.
turtle-set self (turtle-set self turtles-on neighbors) (turtle-set turtle 0 turtle 2 turtle 9) (turtle-set frogs mice)
Retourne un ensemble d'agents contenant toutes les tortues présentes dans le modèle au moment de son appel.
show count turtles ;; affiche le nombre de tortues
Retourne un ensemble d'agents contenant toutes les tortues se trouvant sur le patch situé à la distance horizontale dx et à la distance verticale dy de l'agent appelant. (Le résultat peut contenir l'agent appelant lui-même si l'agent appelant est une tortue.)
Si le nom breeds d'une race est utilisé à la place de turtles, seules les tortues de cette race feront partie de l'ensemble retourné.
create-turtles 5 [ setxy 2 3 ] show count [turtles-at 1 1] of patch 1 2 => 5
Retourne un ensemble d'agents contenant toutes les tortues se trouvant sur le patch portant l'agent appelant (y compris l'agent appelant si ce dernier est une tortue).
crt 10 ask turtle 0 [ show count turtles-here ] => 10
Si le nom breeds d'une race est mis à la place de turtles, seules les tortues de cette race feront partie de l'ensemble retourné.
breed [cats cat] breed [dogs dog] create-cats 5 create-dogs 1 ask dogs [ show count cats-here ] => 5
Retourne un ensemble d'agents contenant toutes les tortues se trouvant sur le patch (agent) ou l'ensemble de patches (agenset) donné, ou se trouvant sur le même patch que la tortue (agent) ou l'ensemble de tortues (agenset) donné.
Si le nom breeds d'une race est mis à la place de turtles, seules des tortues appartenant à cette race feront partie de l'ensemble retourné.
ask turtles [ if not any? turtles-on patch-ahead 1 [ fd 1 ] ] ask turtles [ if not any? turtles-on neighbors [ die-of-loneliness ] ]
Le mot-clé turtles-own, tout comme les mots-clés globals, breed, <races>-own et patches-own ne peut être utilisé qu'au début du code, avant toute définition de procédures. Il permet de définir les variables qui appartiendront à chaque tortue.
Si vous spécifiez une race breeds à la place de turtles, seules les tortues appartenant à cette race posséderont les variables définies. (Une même variable peut être partagée par plusieurs races.)
breed [cats cat ] breed [dogs dog] breed [hamsters hamster] turtles-own [eyes legs] ;; valable pour toutes les races cats-own [fur kittens] hamsters-own [fur cage] dogs-own [hair puppies]
Voir aussi globals, patches-own, breed et <breeds>-own
Affiche les données de l'entrée value dans le Centre de commande, non suivi d'un retour de chariot (contrairement à print et show). L'absence de retour de chariot permet d'écrire plusieurs paquets de données sur la même ligne.
L'agent appelant n'est pas affiché avant les données, contrairement à ce qui se passe avec show
type 3 type " " print 4 => 3 4
Voir aussi print, show, write et output-type
Ce mot-clé, tout comme les mots-clés globals et breeds, ne peut être utilisé qu'au début du code écrit dans le panneau "Procedures", avant toute définition de procédures. Il définit un lien non orienté de race. Les liens d'une race particulière sont toujours soit tous orientés, soit tous non orientés. La première entrée, <link-breeds>, spécifie l'ensemble d'agents associé au lien de race, la seconde, <link-breed> spécifie le nom d'un membre particulier de cette race.
Tout lien du lien de race donné :
Le plus souvent, l'ensemble d'agents est utilisé avec ask pour ne donner des commandes qu'aux liens d'une race particulière.
undirected-link-breed [streets street] undirected-link-breed [highways highway] to setup clear-all crt 2 ask turtle 0 [ create-street-with turtle 1 ] ask turtle 0 [ create-highway-with turtle 1 ] end
ask turtle 0 [ show sort my-links ] ;; affiche [(street 0 1) (highway 0 1)]
Voir aussi breed et directed-link-breed
Désolidarise (détache) l'extrémité end2 de l'extrémité end1 d'un lien (donne la valeur "none" à la variable tie-mode du lien) si ces agents étaient physiquement attachés. Si le lien est un lien non orienté, cette commande désolidarise ausssi aussi l'extrémité end1 de l'extrémité end2. Elle ne supprime pas le lien entre les deux tortues.
Voir la section Attache du Guide de la programmation pour de plus amples informations.
Voir aussi tie
Déplace la tortue sur le patch voisin dont la variable patch-variable à la plus grande valeur parmi tous les patches voisins. Si aucun patch voisin n'a une valeur supérieure pour cette variable à celle du patch courant (le patch sur lequel se trouve la tortue), la tortue reste où elle est. Si plusieurs patches ont la même valeur maximale, la tortue en choisit un au hasard et s'y rend. Les valeurs non numériques sont ignorées.
uphill prend en considération les huit patches voisins, uphill4 seulement les 4 patches voisins (ceux dont les côtés sont adjacents).
Cette commande est équivalente au morceau de code suivant (en supposant que les valeurs des variables sont numériques) :
move-to patch-here ;; va au centre du patch let p max-one-of neighbors [patch-variable] ;; ou neighbors4 if [patch-variable] of p > patch-variable [ face p move-to p ]
Notez que la tortue finit toujours au centre d'un patch avec un cap qui est un multiple de 45 (avec uphill) ou de 90 (avec uphill4).
Ouvre une boîte de dialogue permettant à l'utilisateur de sélectionner un répertoire (dossier) existant dans le système.
Retourne une chaîne de caractères contenant le chemin absolu du répertoire, ou false (faux) si l'utilisateur annule l'opération.
set-current-directory user-directory ;; suppose que l'utilisateur veuille choisir un répertoire
Ouvre une boîte de dialogue permettant à l'utilisateur de sélectionner un fichier existant dans le système.
Retourne une chaîne de caractères contenant le chemin absolu du fichier, ou false (faux) si l'utilisateur annule l'opération.
file-open user-file ;; suppose que l'utilisateur veuille choisir un fichier
Ouvre une boîte de dialogue permettant à l'utilisateur de choisir un emplacement (un répertoire) et de donner un nom pour le nouveau fichier à créer. Retourne une chaîne contenant le chemin absolu du fichier, ou false (faux) si l'utilisateur annule l'opération.
file-open user-new-file ;; suppose que l'utilisateur veuille créer un nouveau fichier
Notez que ce reporter ne crée pas véritablement le fichier : vous devez normalement créer le fichier avec file-open, comme dans l'exemple ci-dessus.
Si l'utilisateur choisit un fichier existant (ou écrit le nom d'un fichier existant), il lui sera demandé s'il veut le remplacer ou non par le nouveau, mais le reporter ne provoque jamais lui-même le remplacement d'un fichier existant. Pour le faire, vous devez utiliser la primitive file-delete.
Ouvre une boîte de dialogue affichant le message value et retourne la chaîne entrée par l'utilisateur dans le champ texte du dialogue.
L'entrée value peut être de n'importe quel type, mais il s'agit généralement d'une chaîne de caractères.
show user-input "Quel est votre nom ?"
Ouvre une boîte de dialogue affichant le message value.
L'entrée value peut être de n'importe quel type, mais il s'agit généralement d'une chaîne de caractères.
user-message (word "Il y a " count turtles " tortues.")
Ouvre une boîte de dialogue affichant le message spécifié par value et un menu permettant à l'utilisateur de sélectionner l'un des éléments de la liste list-of-choices.
Retourne l'élément de la liste list-of-choices sélectionné par l'utilisateur.
L'entrée value peut être de n'importe quel type, mais il s'agit généralement d'une chaîne de caractères.
if "oui" = user-one-of? "Initialiser le modèle?" ["oui" "non"] [ setup ]
Ouvre une boîte de dialogue et retourne la réponse true (vrai) ou false (faux) de l'utilisateur à la question value posée.
L'entrée value peut être de n'importe quel type, mais il s'agit généralement d'une chaîne de caractères.
if user-yes-or-no? "Initialiser le modèle?" [ setup ]
Retourne la variance de l'échantillon représenté par la liste de nombres list donnée en entrée. Ignore les autres types d'éléments.
La variance est la somme des carrés des déviations des nombres par rapport à la moyenne, divisée par le nombre de nombres dans la liste moins 1.
show variance [2 7 4 3 5] => 3.7
Attend le nombre de secondes number donné. (nombre ne doit pas obligatoirement être un entier, vous pouvez spécifier des fractions de secondes.) Notez que vous ne pouvez atteindre une précision absolue : l'agent n'attendra jamais moins que la durée spécifiée, mais il peut parfois attendre un tout petit peu plus.
repeat 10 [ fd 1 wait 0.5 ]
Voir aussi every
Dirige la lumière d'un projecteur sur l'agent agent donné. Dans la vue 3D, l'observateur se tourne toujours pour faire face au sujet.
Voir aussi follow, subject, reset-perspective et watch-me
La primitive while permet de construire une boucle « tant que ». Elle teste d'abord la condition [reporter], exécute les commandes de l'entrée [commands] si la condition est remplie (vraie) et revient au début de la boucle pour faire un nouveau test. La boucle est exécutée « tant que » la condition est remplie. La boucle est quittée dès que la condition échoue, sans exécuter les commandes qu'elle contient.
Le reporter peut prendre différentes valeurs pour différents agents, ce qui fait que tous les agents n'exécutent pas les commandes le même nombre de fois.
while [any? other turtles-here] [ fd 1 ] ;; la tortue se déplace jusqu'à ce qu'elle trouve ;; un patch sur lequel il n'y a pas encore de tortue(s)
who est une variable tortue préprogrammée. Elle contient le numéro d'identification « who number » de la tortue, un nombre entier plus grand ou égal à zéro. Vous ne pouvez pas initialiser ou modifier la valeur de cette variable : le numéro d'identification est donné à la tortue lors de sa création et ne change plus.
Les numéros d'identification commencent à 0. Le numéro d'identification d'une tortue décédée (die), donc théoriquement devenu disponible, n'est pas réaffecté à une nouvelle tortue tant que vous n'utilisez pas les commandes clear-turtles ou clear-all; ce n'est qu'à ce moment-là que la numérotation des tortues recommence à partir de 0.
Exemple :
show [who] of turtles with [color = red] ;; affiche la liste des numéros d'identification de toutes les ;; tortues rouges dans le Centre de commande, en ordre aléatoire crt 100 [ ifelse who < 50 [ set color red ] [ set color blue ] ] ;; les tortues 0 à 49 deviennent rouges, ;; les tortues 50 à 99 deviennent bleues
Vous pouvez utiliser le reporter turtle pour atteindre une tortue ayant un numéro d'identification donné.
Voir aussi turtle
Retourne un nouvel ensemble d'agents ne contenant que les agents de l'ensemble agentset ayant satisfait (retourné true (vrai)) à la condition [reporter] donnée. with demande deux entrées : une à gauche, un ensemble d'agents agentset (généralement turtles ou patches), l'autre à droite qui doit être un reporter booléen.
show count patches with [pcolor = red] ;; affiche le nombre de patches rouges
Retourne le lien entre la tortue turtle et l'agent appelant. S'il n'y a pas de lien, retourne nobody.
crt 2 ask turtle 0 [ create-link-with turtle 1 show link-with turtle 1 ;; affiche link 0 1 ]
Retourne un nouvel ensemble d'agents ne contenant que les agents de l'ensemble agentset ayant la valeur maximale pour le reporter [reporter] donné. with-max demande deux entrées, celle de gauche doit être l'ensemble d'agents agentset contenant les agents à tester (généralement turtles ou patches), celle de droite doit être un reporter définissant les valeurs à tester.
show count patches with-max [pxcor] ;; affiche le nombre de patches sur le bord droit du monde
Voir aussi max-one-of et max-n-of
Retourne un nouvel ensemble d'agents ne contenant que les agents de l'ensemble agentset ayant la valeur minimale pour le reporter [reporter] donné. with-min demande deux entrées, celle de gauche doit être l'ensemble d'agents agentset contenant les agents à tester (généralement turtles ou patches), celle de droite doit être un reporter définissant les valeurs à tester.
show count patches with-min [pycor] ;; affiche le nombre de patches au bord inférieur du monde
Voir aussi min-one-of et min-n-of
Les commandes spécifiées dans l'entrée [commands] sont exécutées sans avoir aucune influence sur les événements aléatoires suivants. Cette primitive est utile pour effectuer des opérations supplémentaires (telle qu'un affichage de données) sans qu'elles modifient la suite de la simulation.
Exemple :
;; première exécution : random-seed 50 setup repeat 10 [ go ] ;; seconde exécution : random-seed 50 setup with-local-randomness [ watch one-of turtles ] repeat 10 [ go ]
Puisque la primitive one-of est utilisée dans le bloc without-local-randomness, les deux exécutions seront identiques.
Plus précisément, cette primitive fonctionne de la manière suivante : l'état du générateur de nombres aléatoires est sauvegardé avant l'exécution du bloc de commandes, puis restauré après coup. (Si vous voulez exécuter les commandes du bloc avec un nouvel état du générateur de nombres aléatoires plutôt qu'avec l'état qui sera restauré par la suite, vous pouvez commencer le bloc de commandes avec random-seed new-seed.)
L'exemple suivant montre que l'état du générateur de nombres aléatoires est le même avant et après l'exécution du bloc de commandes.
random-seed 10 with-local-randomness [ print n-values 10 [random 10] ] ;; affiche [8 9 8 4 2 4 5 4 7 9] print n-values 10 [random 10] ;; affiche [8 9 8 4 2 4 5 4 7 9]
L'agent exécute toutes les commandes du bloc [commands] sans permettre à d'autres agents utilisant ask-concurrent d'interrompre ce travail. Il en résulte que les autres agents sont placés « en attente » et n'exécutent aucune commande tant que l'exécution des commandes du bloc n'est pas terminée.
Note : cette commande n'a de sens qu'utilisée avec la primitive ask-concurrent. Dans les versions précédentes de NetLogo, elle était souvent nécessaire, mais depuis NetLogo 4.0, elle n'est utile que si vous utilisez aussi ask-concurrent.
Voir aussi ask-concurrent
Concatène les entrées (les met les unes à la suite des autres sans espaces) dans l'ordre où elles sont données et retourne le résultat sous forme de chaîne de caractères.
show word "tur" "tle" => "turtle" word "a" 6 => "a6" set directory "c:\\foo\\fish\\" show word directory "bar.txt" => "c:\foo\fish\bar.txt" show word [1 54 8] "fishy" => "[1 54 8]fishy" show (word 3) => "3" show (word "a" "b" "c" 1 23) => "abc123"
Ces reporters retournent la largeur totale (world-width) ou la hauteur totale (world-height) du monde NetLogo.
La largeur est égale à max-pxcor - min-pxcor + 1 et la hauteur est égale à max-pycor - min-pycor + 1. L'unité de mesure est le patch (quelle que soit sa taille en pixels).
La primitive wrap-color teste si la valeur de l'entrée number fait partie de l'ensemble des couleurs NetLogo, couleurs dont les numéros vont de 0 à 140 (140 non-compris). Si ce n'est pas le cas, wrap-color ajuste l'entrée numérique pour la faire entrer dans l'intervalle [ 0 , 140 [ .
L'ajustement est effectué en additionnant ou en soustrayant 140 (de manière répétée si nécessaire) au nombre fourni en entrée jusqu'à obtenir une valeur entrant dans l'intervalle des couleurs NetLogo. (C'est le même type d'ajustement que celui qui est fait automatiquement si vous spécifiez un numéro de couleur trop petit ou trop grand pour la variable tortue color ou la variable patch pcolor.)
show wrap-color 150 => 10 show wrap-color -10 => 130
Cette commande affiche les données de l'entrée value, qui peuvent être un nombre, une chaîne de caractères, une liste, un booléen ou nobody dans la zone d'affichage du Centre de commande, non suivi d'un retour de chariot (contrairement à print et à show).
L'agent appelant n'est pas affiché devant les données, comme c'est le cas avec show. Cette sortie comprend toujours les guillemets autour des chaînes et est précédée d'un caractère espace.
write "hello world" => "hello world"
Voir aussi print, show, type et output-write
xcor est une variable tortue préprogrammée. Elle contient la coordonnée x courante de la tortue. Vous pouvez modifier cette variable pour changer l'emplacement de la tortue.
Cette variable est toujours dans les limites du monde NetLogo, c'est-à-dire plus grande ou égale à (min-pxcor - 0.5) et strictement plus petite que (max-pxcor + 0.5).
Cette primitive est le « ou exclusif » (« ou bien, ou bien »). Elle retourne true (vrai) soit si boolean1 est vrai, soit si boolean2 est vrai, mais pas quand les deux sont vrais.
if (pxcor > 0) xor (pycor > 0) [ set pcolor blue ] ;; le cadrant supérieur gauche et le cadrant inférieur droit sont bleus
ycor est une variable tortue préprogrammée. Elle contient la coordonnée y courante de la tortue. Vous pouvez modifier cette variable pour changer l'emplacement de la tortue.
Cette variable est toujours dans les limites du monde NetLogo, c'est-à-dire plus grande ou égale à (min-pycor - 0.5) et strictement plus petite que (max-pycor + 0.5).
Ce sont des variables locales spéciales. Elles contiennent les entrées courantes d'un reporter ou d'un bloc de commandes pour certaines primitives (par exemple, l'élément courant d'une liste traitée par foreach ou par map).
? est toujours équivalent à ?1.
Vous ne pouvez ni initialiser ni modifier ces variables, et vous ne pouvez pas les utiliser sauf avec certaines primitives qui sont pour le moment foreach, map, reduce, filter, sort-by et n-values. Voir les entrées de ces mots-clés pour des exemples d'utilisation.