Aide en ligne » Les cases mémoire
Les cases mémoire
Une case mémoire est une âgeiable générique assignée à chacune des tortues. Par exemple, si une case mémoire s'appelle « âge », alors les commandes ci-dessous permettent d'afficher le contenu de cette case pour les tortues Achille et Bénédicte.
aff âge(Achille)
aff âge(Bénédicte)
Pour créer une case mémoire, il suffit de cliquer sur le bouton dans l'onglet « tortue » des préférences et de lui donner un nom (par exemple « âge »). Une case mémoire contient une valeur, initialisée à 0, pour chacune des tortues.

Pour stocker une valeur dans la case mémoire d'une tortue, on utilise le mot-clef retiens :
à Achille
retiens âge = 10
à Bénédicte
retiens âge = 12.5
aff âge(Achille)
aff âge(Bénédicte)
Exemple d'utilisation
Dans la simulation de certains systèmes, il peut s'avérer nécessaire de stocker un ou plusieurs paramètres propres à une tortue. Dans les procédures ci-dessous, qui simulent une chute libre, les cases vX et vY contiennent les composantes en abscisse et en ordonnée de la vitesse de la tortue.
pour initialisation
g:=-9.81
tlp 0 200
retiens vX = 20 // La valeur 20 est stockée dans la case vX
retiens vY = 0 // La valeur 0 est stockée dans la case vY
fin
pour simulation_pas dt
retiens vX = vX(Achille)
// La valeur stockée dans la case vX est lue puis stockée dans vX
retiens vY = vY(Achille)+g*dt
// La valeur stockée dans la case vY est lue, augmentée de g*dt puis stockée dans vY
dx := vX(Achille)*dt
// dx est égal à la valeur stockée dans la case vX, multipliée par dt
dy := vY(Achille)*dt
// dy est égal à la valeur stockée dans la case vY, multipliée par dt
boussole ; td 90-atan2(dy,dx)
av sqrt(dx²+dy²)
fin
pour simulation_chute_libre
initialisation
tant_que (Y(Achille)>0) [
simulation_pas 0.1 ]
fin
On remarquera sur ce cas d'école que la valeur de vX ne change pas, et que la valeur de vY aurait pu être stockée dans une variable globale ordinaire. L'intérêt des cases mémoire appraît plus clairement dans des systèmes faisant intervenir un grand nombre de tortues (simulation du problème à n corps par exemple). Les boucles se révèlent alors d'une grande utilité pour parcourir l'ensemble des tortues.
boucle tortue de 0 à 10 [
à tortue; retiens vX = ...
aff vX(tortue)
]