Les catégories

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.

Pour les tortues

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

Pour les patches

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

Pour les ensembles d'agents

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

Pour les couleurs

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

Pour le contrôle du flux du programme et la logique

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

Pour le monde

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

Pour la perspective (le point-de-vue)

follow follow-me reset-perspective (rp) ride ride-me subject watch watch-me

Pour le travail en réseau HubNet

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

Pour les entrées/sorties

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

Pour les fichiers

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

Pour les listes

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

Pour les chaînes de caractères

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

Pour les opérations mathématiques

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

Pour les graphiques

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

Pour les liens

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

Pour les vidéos

movie-cancel movie-close movie-grab-view movie-grab-interface movie-set-frame-rate movie-start movie-status

Pour le système

netlogo-applet? netlogo-version

 Les variables préprogrammées…

des tortues

breed color heading hidden? label label-color pen-mode pen-size shape size who xcor ycor

des patches

pcolor plabel plabel-color pxcor pycor

des liens

breed color end1 end2 hidden? label label-color shape thickness tie-mode

Autres variables

?

Les mots-clés

breed directed-link-breed end extensions globals __includes patches-own to to-report turtles-own undirected-link-breed

Les constantes

Les constantes mathématiques

e = 2.718281828459045
pi = 3.141592653589793

Les constantes booléennes

false
true

Les constantes pour les couleurs

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.

abs

abs number

Retourne la valeur absolue de number.

show abs -7
=> 7
show abs 5
=> 5

acos

acos number

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.

all?

all? agentset [reporter]

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?

and

condition1 and condition2

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

any?

any? agentset

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.

Voir aussi  all et nobody

approximate-hsb

approximate-hsb hue saturation brightness

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

approximate-rgb

approximate-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

Les opérateurs arithmétiques (+, *, -, /, ^, <, >, =, !=, <=, >=)

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

asin

asin number

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.

ask

ask agentset [commands]
ask agent [commands]

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.

ask-concurrent

ask-concurrent agentset [commands]

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

at-points

agentset at-points [[x1 y1] [x2 y2] ...]

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

atan

atan x y

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

autoplot?

autoplot?

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).

auto-plot-off
auto-plot-on

auto-plot-off
auto-plot-on

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.

B

back
bk

back number
Turtle Command

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.

Voir aussi  forward, jump et can-move?

base-colors

base-colors

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

beep

beep

É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

both-ends

both-ends
Link Command

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

breed

breed
Turtle Command Link Command

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 ]

breed

breed [<breeds> <breed>]

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

but-first
bf
but-last
bl

but-first list
but-first string
but-last list
but-last string

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"

C

can-move?

can-move? distance
Turtle Command

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

carefully

carefully [ commands1 ] [ commands2 ]

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

ceiling

ceiling number

Retourne le plus petit nombre entier plus grand ou égal au nombre number.

show ceiling 4.5
=> 5
show ceiling -4.5
=> -4

clear-all
ca

clear-all
Observer Command

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.

clear-all-plots

clear-all-plots
Observer Command

Efface le contenu de tous les traceurs de graphiques du modèle. Voir clear-plot pour plus d'informations.

clear-drawing
cd

clear-drawing
Observer Command

Efface toutes les lignes et tous les tampons dessinés par les tortues sur la couche de dessin.

clear-links

clear-links
Observer Command

Supprime tous les liens.

Voir aussi  die

clear-output

clear-output
Observer Command

Efface tous les textes affichés dans la zone de sortie du modèle, s'il y en a une. Sinon, ne fait rien.

clear-patches
cp

clear-patches
Observer Command

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.

clear-plot

clear-plot

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

clear-turtles
ct

clear-turtles
Observer Command

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

color

color
Turtle Command Link Command

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

cos

cos number

Retourne le cosinus de l'angle number donné. S'attend à recevoir un angle exprimé en degrés.

show cos 180
=> -1

count

count agentset

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

create-ordered-turtles
cro
create-ordered-<breeds>

create-ordered-turtles number
create-ordered-turtles number [ commands ]
create-ordered<breeds> number
create-ordered<breeds> number [ commands ]

Observer Command

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.

create-<breed>-to
create-<breeds>-to
create-<breed>-from
create-<breeds>-from
create-<breed>-with
create-<breeds>-with
create-link-to
create-links-to
create-link-from
create-links-from
create-link-with
create-links-with

create-<breed>-to turtle
create-<breed>-to turtle [ commands ]
create-<breed>-from turtle
create-<breed>-from turtle [ commands ]
create-<breed>-with turtle
create-<breed>-with turtle [ commands ]
create-<breeds>-to turtleset
create-<breeds>-to turtleset [ commands ]
create-<breeds>-from turtleset
create-<breeds>-from turtleset [ commands ]
create-<breeds>-with turtleset
create-<breeds>-with turtleset [ commands ]
create-link-to turtle
create-link-to turtle [ commands ]
create-link-from turtle
create-link-from turtle [ commands ]
create-link-with turtle
create-link-with turtle [ commands ]
create-links-to turtleset
create-links-to turtleset [ commands ]
create-links-from turtleset
create-links-from turtleset [ commands ]
create-links-with turtleset
create-links-with turtleset [ commands ]

Turtle Command

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

create-turtles
crt
create-<breeds>

create-turtles number
create-turtles number [ commands ]
create-<breeds> number
create-<breeds> number [ commands ]

Observer Command

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.

Voir aussi  hatch et sprout

create-temporary-plot-pen

create-temporary-plot-pen string

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

D

date-and-time

date-and-time

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"

die

die
Turtle Command Link Command

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

diffuse

diffuse patch-variable number
Observer Command

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.

diffuse4

diffuse4 patch-variable number
Observer Command

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.

directed-link-breed

directed-link-breed [ <link-breeds> <link-breed> ]

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

display

display

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

distance

distance agent
Turtle Command Patch Command

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

distancexy

distancexy xcor ycor
Turtle Command Patch Command

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

downhill
downhill4

downhill patch-variable
downhill4 patch-variable

Turtle Command

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).

Voir aussi  uphill et uphill4

dx
dy

dx
dy

Turtle Command

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.

E

empty?

empty? list
empty? string

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 "".

end

end

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.

Voir aussi  to et to-report

end1

end1
Link Command

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

end2
Link Command

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

error-message

error-message

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

every

every number [ commands ]

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

exp

exp number

Retourne la valeur de e élevé à la puissance number.

Note : cette primitive fait la même chose que le code e ^ nombre.

export-view
export-interface
export-output
export-plot
export-all-plots
export-world

export-view filename
export-interface filename
export-output filename
export-plot plotname filename
export-all-plots filename
export-world filename

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

extensions

extensions [name ...]

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.

extract-hsb

extract-hsb color

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

extract-rgb

extract-rgb color

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

F

face

face agent
Turtle Command

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é.

facexy

facexy number-x number-y
Turtle Command

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é.

file-at-end?

file-at-end?

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

file-close

file-close

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

file-close-all

file-close-all

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

file-delete

file-delete string

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.

file-exists?

file-exists? string

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.

file-flush

file-flush

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.

file-open

file-open string

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

file-print

file-print value

É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

file-read

file-read

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

file-read-characters

file-read-characters number

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

file-read-line

file-read-line

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

file-show

file-show value

É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

file-type

file-type value

É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

file-write

file-write value

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

filter

filter [reporter] list

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"]

Voir aussi  map, reduce et ?

first

first list
first string

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.

floor

floor number

Retourne le plus grand nombre entier plus petit ou égal à l'entrée number.

show floor 4.5
=> 4
show floor -4.5
=> -5

follow

follow turtle
Observer Command

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

follow-me

follow-me
Turtle Command

Demande à l'observateur du suivre la tortue appelante.

Voir aussi follow

foreach

foreach list [ commands ]
(foreach list1 ... [ commands ])

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

Voir aussi  map et ?

forward
fd

forward number
Turtle Command

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.

Voir aussi  jump et can-move?

fput

fput item list

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]

G

globals

globals [var1 ...]

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.

H

hatch
hatch-<breeds>

hatch number [ commands ]
hatch-<breeds> number [ commands ]
Turtle Command

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

heading
Turtle Command

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?

hidden?
Turtle Command Link Command

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

hide-link

hide-link
Link Command

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.

hide-turtle
ht

hide-turtle
Turtle Command

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.

histogram

histogram list

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

home

home
Turtle Command

Les tortues concernées se déplacent à l'origine du monde (0,0). Équivalent à setxy 0 0.

hsb

hsb hue saturation brightness

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

hubnet-broadcast

hubnet-broadcast tag-name value

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.

hubnet-broadcast-view

hubnet-broadcast-view

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.

hubnet-enter-message?

hubnet-enter-message?

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.

hubnet-exit-message?

hubnet-exit-message?

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.

hubnet-fetch-message

hubnet-fetch-message

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.

hubnet-message

hubnet-message

Retourne le message récupéré par le reporter hubnet-fetch-message.

Voir le Guide de programmation HubNet pour les détails.

hubnet-message-source

hubnet-message-source

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.

hubnet-message-tag

hubnet-message-tag

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.

hubnet-message-waiting?

hubnet-message-waiting?

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.

hubnet-reset

hubnet-reset

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.

hubnet-send

hubnet-send string tag-name value
hubnet-send list-of-strings tag-name value

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.

hubnet-send-view

hubnet-send-view string
hubnet-send-view list-of-strings

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.

hubnet-set-client-interface

hubnet-set-client-interface client-type client-info

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.

I

if

if condition [ commands ]

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

ifelse

ifelse reporter [ commands1 ] [ commands2 ]

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

ifelse-value

ifelse-value reporter [reporter1] [reporter2]

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

Voir aussi  if et ifelse

import-drawing

import-drawing filename
Observer Command

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.

import-pcolors

import-pcolors filename
Observer Command

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.)

import-pcolors-rgb

import-pcolors-rgb filename
Observer Command

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

import-world filename
Observer Command

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é :

  1. Ouvrez le modèle avec lequel vous avez créé le fichier exporté.
  2. Pressez le bouton d'initialisation, généralement nommé "Setup", pour mettre le modèle dans un état qui lui permette de faire tourner la simulation.
  3. Importez le fichier de données avec import-world.
  4. Ré-ouvrez tout fichier que le modèle avait ouvert avec la commande file-open.
  5. Si vous le voulez, pressez le bouton "Go" pour continuer la simulation à partir de l'endroit où vous l'aviez stoppée.

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.

in-cone

agentset in-cone distance angle
Turtle Command

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

in-<breed>-neighbor?
in-link-neighbor?

in-<breed>-neighbor? agent
in-link-neighbor? turtle

Turtle Command

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
]

in-<breed>-neighbors
in-link-neighbors

in-<breed>-neighbors
in-link-neighbors

Turtle Command

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

in-<breed>-from
in-link-from

in-<breed>-from turtle
in-link-from turtle

Turtle Command

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

__includes

__includes [ filename ... ]

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.

in-radius

agentset in-radius number
Turtle Command Patch Command

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.

inspect

inspect agent

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"

int

int number

Retourne la partie entière de nombre, la partie fractionnaire étant simplement supprimée.

show int 4.7
=> 4
show int -3.5
=> -3

is-agent?
is-agentset?
is-boolean?
is-<breed>?
is-directed-link?
is-link?
is-link-set?
is-list?
is-number?
is-patch?
is-patch-set?
is-string?
is-turtle?
is-turtle-set?
is-undirected-link?

is-agent? value
is-agentset? value
is-boolean? value
is-<breed>? value
is-directed-link? value
is-link? value
is-link-set? value
is-list? value
is-number? value
is-patch? value
is-patch-set? value
is-string? value
is-turtle? value
is-turtle-set? value
is-directed-link? value

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).

item

item index list
item index string

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"

J

jump

jump number
Turtle Command

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.

Voir aussi  forward et can-move?

L

label

label
Turtle Command Link Command

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

label-color

label-color
Turtle Command Link Command

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

last

last list
last string

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.

layout-circle

layout-circle agentset radius
layout-circle list-of-turtles radius

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

__layout-magspring

__layout-magspring turtle-set link-set spring-constant spring-length repulsion-constant magnetic-field-strength magnetic-field-type bidirectional?

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

layout-radial

layout-radial turtle-set link-set root-agent

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

layout-spring

layout-spring turtle-set link-set spring-constant spring-length repulsion-constant

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

layout-tutte

layout-tutte turtle-set link-set radius

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

left
lt

left number
Turtle Command

Fait pivoter la tortue vers la gauche de number degrés. Si number est négatif, la tortue pivote à droite.

length

length list
length string

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.

let

let variable value

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 ]
]

link

link end1 end2
link <breed> end1 end2

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

link-heading

link-heading
Link Command

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

link-length

link-length
Link Command

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

link-set

link-set value
(link-set value1 value2 ...)

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

link-shapes

link-shapes

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"]

links

links

Retourne un ensemble d'agents constitué de tous les liens.

show count links
;; affiche le nombre de liens

links-own
<link-breeds>-own

links-own [var1 ...]
<link-breeds>-own [var1 ...]

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]

list

list value1 value2
(list value1 ...)

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

ln

ln number

Retourne le logarithme naturel de number, c'est-à-dire le logarithme en base e (soit 2.71828...).

Voir aussi  e et log

log

log number base

Retourne le logarithme de number en base base.

show log 64 2
=> 6

Voir aussi ln.

loop

loop [ commands ]

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.

lput

lput value list

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]

M

map

map [reporter] list
(map [reporter] list1 ...)

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]

Voir aussi  foreach et ?

max

max list

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

max-n-of

max-n-of number agentset [reporter]

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

max-one-of

max-one-of agentset [reporter]

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

Voir aussi  max-n-of et with-max

max-pxcor
max-pycor

max-pxcor
max-pycor

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

mean

mean list

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

median

median list

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

member?

member? value list
member? string1 string2
member? agent agentset

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

min

min list

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

min-n-of

min-n-of number agentset [reporter]

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

min-one-of

min-one-of agentset [reporter]

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

Voir aussi  with-min et min-n-of

min-pxcor
min-pycor

min-pxcor
min-pycor

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

mod

number1 mod number2

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

modes

modes list

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

mouse-down?

mouse-down?

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.

mouse-inside?

mouse-inside?

Retourne true (vrai) si le pointeur de la souris est dans la Vue courante, sinon retourne false (faux).

mouse-patch

mouse-patch

Retourne les coordonnées d'un patch si le pointeur de la souris en pointe un, sinon retourne nobody.

mouse-xcor
mouse-ycor

mouse-xcor
mouse-ycor

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 ]
]

move-to

move-to agent
Turtle Command

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

movie-cancel

movie-cancel

Annule l'animation vidéo courante.

movie-close

movie-close

Stoppe l'enregistrement de l'animation vidéo courante.

movie-grab-view
movie-grab-interface

movie-grab-view
movie-grab-interface

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

movie-set-frame-rate

movie-set-frame-rate frame-rate

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

movie-start

movie-start filename

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

movie-status

movie-status

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.

my-<breeds>
my-links

my-<breeds>
my-links

Turtle Command

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
  ]

my-in-<breeds>
my-in-links

my-in-<breeds>
my-in-links

Turtle Command

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
]

my-out-<breeds>
my-out-links

my-out-<breeds>
my-out-links

Turtle Command

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
]

myself

myself
Turtle Command Patch Command

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

N

n-of

n-of size agentset
n-of size list

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

n-values

n-values size [reporter]

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]

Voir aussi  reduce, filter et ?

neighbors
neighbors4

neighbors
neighbors4

Turtle Command Patch Command

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

<breed>-neighbors
link-neighbors

<breed>-neighbors
link-neighbors

Turtle Command

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
]

<breed>-neighbor?
link-neighbor?

<breed>-neighbor? turtle
link-neighbor? turtle

Turtle Command

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
]

netlogo-applet?

netlogo-applet?

Retourne true (vrai) si le modèle est exécuté en tant qu'applet (donc dans une page HTLM).

netlogo-version

netlogo-version

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"

new-seed

new-seed

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

no-display

no-display

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

nobody

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 ] ]

no-links

no-links

Retourne un ensemble d'agents de type lien vide.

no-patches

no-patches

Retourne un ensemble d'agents de type patch vide.

not

not boolean

Retourne true (vrai) si l'entrée boolean vaut false (faux), sinon retourne false.

if not any? turtles [ crt 10 ]

no-turtles

no-turtles

Retourne un ensemble d'agents de type turtles vide.

O

of

[reporter] of agent
[reporter] of agentset

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]

one-of

one-of agentset
one-of list

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

or

boolean1 or boolean2

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

other agentset
Turtle Command Patch Command

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

other-end

other-end
Turtle Command Link Command

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.

out-<breed>-neighbor?
out-link-neighbor?

out-<breed>-neighbor? turtle
out-link-neighbor? turtle

Turtle Command

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
]

out-<breed>-neighbors
out-link-neighbors

out-<breed>-neighbors
out-link-neighbors

Turtle Command

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
]

out-<breed>-to
out-link-to

out-<breed>-to turtle
out-link-to turtle

Turtle Command

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
]

output-print
output-show
output-type
output-write

output-print value
output-show value
output-type value
output-write value

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é.)

P

patch

patch xcor ycor

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

patch-ahead

patch-ahead distance
Turtle Command

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

patch-at

patch-at dx dy
Turtle Command Patch Command

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

patch-at-heading-and-distance heading distance
Turtle Command Patch Command

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

patch-here
Turtle Command

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.

patch-left-and-ahead
patch-right-and-ahead

patch-left-and-ahead angle distance
patch-right-and-ahead angle distance

Turtle Command

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

patch-set

patch-set value1
(patch-set value1 value2 ...)

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

patches

patches

Retourne l'ensemble d'agents contenant tous les patches.

patches-own

patches-own [var1 ...]

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

pcolor
Patch Command Turtle Command

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

pen-down
pd
pen-erase
pe
pen-up
pu

pen-down
pen-erase
pen-up

Turtle Command

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

pen-mode
Turtle Command

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

pen-size
Turtle Command

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

plabel
Patch Command Turtle Command

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

plabel-color
Patch Command Turtle Command

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

plot

plot number

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.)

plot-name

plot-name

Retourne le nom du traceur de courbes courant (une chaîne de caractères).

plot-pen-exists?

plot-pen-exists? string

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).

plot-pen-down
plot-pen-up

plot-pen-down
plot-pen-up

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.)

plot-pen-reset

plot-pen-reset

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".

plotxy

plotxy number1 number2

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).

plot-x-min
plot-x-max
plot-y-min
plot-y-max

plot-x-min
plot-x-max
plot-y-min
plot-y-max

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".)

position

position item list
position string1 string2

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?

precision

precision number places

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

print

print value

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

pxcor
pycor

pxcor
pycor

Patch Command Turtle Command

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.

Voir aussi  xcor et ycor

R

random

random number

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

random-float

random-float number

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

random-exponential
random-gamma
random-normal
random-poisson

random-exponential mean
random-gamma alpha lambda
random-normal mean standard-deviation
random-poisson mean

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

random-pxcor
random-pycor

random-pxcor
random-pycor

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

random-seed

random-seed number

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

random-xcor
random-ycor

random-xcor
random-ycor

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

read-from-string

read-from-string string

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

reduce

reduce [reporter] list

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

remainder

remainder number1 number2>

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

remove

remove element list
remove string1 string2

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"

remove-duplicates

remove-duplicates list

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"]

remove-item

remove-item index list
remove-item index string

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"

repeat

repeat number [ commandes ]

Exécute number fois les commandes de la liste [commandes].

pd repeat 36 [ fd 1 rt 10 ]
;; la tortue dessine un cercle     

replace-item

replace-item index list value
replace-item index string1 string2

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"

report

report valeur

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.

reset-perspective
rp

reset-perspective

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).

Voir aussi  follow, ride et watch

reset-ticks

reset-ticks
Observer Command

Remets le compteur de cycles (tick counter) à zéro.

Voir aussi  tick, ticks et tick-advance

reset-timer

reset-timer

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

reverse

reverse list
reverse string

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"

rgb

rgb red green blue

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

ride

ride turtle
Observer Command

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

ride-me

ride-me
Turtle Command

Demande à l'observateur de chevaucher (ride) la tortue appelante.

Voir aussi  ride

right
rt

right number
Turtle Command

Fait pivoter la tortue vers la droite de number degrés. Si number est négatif, la tortue pivote à gauche.

round

round number

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

run

run string

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

runresult

runresult string

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

S

scale-color

scale-color color number range1 range2

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

self

self
Turtle Command Patch Command

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

; (point-virgule)

; comments

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").

sentence
se

sentence value1 value2
(sentence value1 ...)

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]

set

set variable value

Donne à la variable variable la valeur spécifiée dans l'entrée value.

La variable peut être l'un de objets suivants :

set-current-directory

set-current-directory string

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"

set-current-plot

set-current-plot plotname

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.

set-current-plot-pen

set-current-plot-pen penname

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.

set-default-shape

set-default-shape turtles string
set-default-shape breed string

Observer Command

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

set-histogram-num-bars

set-histogram-num-bars number

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

__set-line-thickness

__set-line-thickness number
Turtle Command

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.

set-plot-pen-color

set-plot-pen-color number

Donne la couleur NetLogo de numéro number au crayon courant du traceur.

set-plot-pen-interval

set-plot-pen-interval number

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.)

set-plot-pen-mode

set-plot-pen-mode number

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).

set-plot-x-range
set-plot-y-range

set-plot-x-range min max
set-plot-y-range min max

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".

setxy

setxy x y
Turtle Command

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

shade-of?

shade-of? color1 color2

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

shape
Turtle Command Link Command

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

shapes

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 ]

show

show value

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

show-turtle
st

show-turtle
Turtle Command

La tortue est à nouveau visible.

Note : Cette commande revient à donner la valeur false à la variable tortue hidden?.

Voir aussi  hide-turtle

show-link

show-link
Link Command

Le lien est à nouveau visible.

Note : Cette commande revient à donner la valeur false à la variable lien hidden?.

Voir aussi  hide-link

shuffle

shuffle list

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]

sin

sin number

Retourne le sinus de l'angle donné number. L'angle doit être exprimé en degrés.

show sin 270
=> -1

size

size
Turtle Command

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.

sort

sort list-of-numbers
sort list-of-strings
sort agentset

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

sort-by

sort-by [reporter] list
sort-by [reporter] agentset

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

sprout
sprout-<breeds>

sprout number [ commands ]
sprout-<breeds> number [ commands ]

Patch Command

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

sqrt

sqrt number

Retourne la racine carrée de number.

stamp

stamp
Turtle Command Link Command

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.

stamp-erase

stamp-erase
Turtle Command Link Command

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.

standard-deviation

standard-deviation list

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

startup


Observer Command

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

stop

stop

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.)

subject

subject

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.

Voir aussi  watch, follow et ride

sublist
substring

sublist list position1 position2
substring string position1 position2

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"

subtract-headings

subtract-headings heading1 heading2

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

sum

sum list

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

T

tan

tan number

Retourne la tangente de l'angle donné. L'angle est un nombre number exprimé en degrés.

thickness

thickness
Link Command

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.

tick

tick
Observer Command

Fait avancer le compteur de cycles d'une unité.

Voir aussi  ticks, tick-advance et reset-ticks

tick-advance

tick-advance number
Observer Command

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

ticks

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

tie

tie
Link Command

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

tie-mode
Link Command

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.

Voir aussi  tie et untie

timer

timer

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

to

to procedure-name
to procedure-name [input1 ...]

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

to-report

to-report procedure-name
to-report procedure-name [input1 ...]

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

towards

towards agent
Turtle Command Patch Command

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

towardsxy

towardsxy x y
Turtle Command Patch Command

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

turtle

turtle number
<breed> number

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

turtle-set

turtle-set value1
(turtle-set value1 value2 ...)

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)

Voir aussi  patch-set et link-set

turtles

turtles

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

turtles-at
<breeds>-at

turtles-at dx dy
<breeds>-at dx dy

Turtle Command Patch Command

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

turtles-here
<breed>-here

turtles-here
<breeds>-here

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

turtles-on
<breeds>-on

turtles-on agent
turtles-on agentset
<breeds>-on agent
<breeds>-on agentset

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
  ]
]

turtles-own
<breeds>-own

turtles-own [var1 ...]
<breeds>-own [var1 ...]

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

type

type value

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

U

undirected-link-breed

undirected-link-breed [<link-breeds> <link-breed>]

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

untie

untie
Link Command

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

uphill
uphill4

uphill patch-variable
uphill4 patch-variable

Turtle Command

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).

Voir aussi  downhill et downhill4

user-directory

user-directory

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

user-file

user-file

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

user-new-file

user-new-file

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.

user-input

user-input value

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 ?"

user-message

user-message value

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.")

user-one-of

user-one-of value list-of-choices

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 ]

user-yes-or-no?

user-yes-or-no? value

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 ]

V

variance

variance list

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

W

wait

wait number

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

watch

watch agent
Observer Command

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

watch-me

watch-me
Turtle Command Patch Command

Demande à l'observateur de regarder l'agent appelant.

Voir aussi  watch

while

while [ reporter ]

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

who
Turtle Command

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

with

agentset with [ reporter ]

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

<breed>-with
link-with

<breed>-with turtle
link-with turtle

Turtle Command

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
]

with-max

agentset with-max [reporter]

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

with-min

agentset with-min [reporter]

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

with-local-randomness

with-local-randomness [ commands ]

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]

without-interruption

without-interruption [ commands ]

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

word

word value1 value2
(word value1 ...)

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"

world-width
world-height

world-width
world-height

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).

Voir aussi  max-pxcor, max-pycor, min-pxcor et min-pycor

wrap-color

wrap-color number

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

write

write value

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

X

xcor


Turtle Command

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).

Voir aussi  setxy, ycor, pxcor et pycor

xor

boolean1 xor boolean2

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

Y

ycor

ycor
Turtle Command

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).

Voir aussi  setxy, xcor, pxcor et pycor

?

?, ?1, ?2, ?3, ...

?, ?1, ?2, ?3, ...

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.