1.9 Notre seconde maquette NetLogo
Construisons une autre maquette qui sera basée sur la première.
La première chose que nous allons faire c'est copier le fichier
vous pouvez faire ça par un click droit, sélectionnant "copy"
Je peux ensuite utiliser "ctrl + v"
D'une manière ou d'une autre vous le copiez, et je vais le renommer "Ant2.nlogo"
Je vais ensuite double cliquer dessus pour l'ouvrir
et nous allons le ré-étiqueter, en cliquant sur ce mot,
en sélectionnant "edit" et en l'appelant "Ant 2"
Maintenant que nous avons une fourmi qui peut se déplacer, donnons lui quelque chose à manger.
allons à l'onglet de code et apportons un peu de nourriture pour la fourmi.
dans la fenetre "setup", nous allons écrire "grow-food" (faire pousser de la nourriture)
nous allons donc devoir écrire comment faire pousser de la nourriture.
Nous pouvons descendre ici et inscrire une nouvelle procédure "to grow-food"
et ce que nous allons faire c'est "ask patches [set pcolor green] end"
laissez moi vous expliquer ce que sont les "patches"
retournez à l'interface, et dans ce "monde" qui est la fenêtre noire cliquez droit, "edit",
et vous pourrez voir que ceci montre le système de coordonnées pour le "monde".
C'est probablement difficile à voir sur votre écran mais vous pouvez le faire sur netLogo et le constater.
Les coordonnées (0,0) sont au milieu, puis ça va de -16 à 16 verticalement et de -16 à 16 horizontalement.
Toute la boîte est donc une grille de 33 par 33 carrés qui s'appellent "patches".
Ici vous avez le nombre de pixels par patch, là c'est 13, etc.
Chaque patch a ses propres propriétés, comme la couleur.
Si je retourne au code, j'ai demandé à tous les patches de changer leurs couleurs (pcolor est pour "patch color") en vert.
regardons ce qui se passe quand je clique sur setup :
Bien sûr l'arrière plan s'est changé en vert. On peut comparer ce modèle à une fourmi évoluant dans un monde d'herbe.
Retournons à présent à l'onglet code et ajoutons un peu de code pour faire que les fourmis mangent l'herbe.
Pour cela, nous allons écrire la phrase suivante ici :
"if pcolor = green" - je vais écrire un petit commentaire ici - "if the turtle is located on a green patch",
ce qui demande à la tortue de regarder le patch sur lequel elle est, (chacune est sur un patch particulier)
et si ce patch est vert, voici ce qu'elle a à faire : elle va manger l'herbe en la rendant à nouveau noire.
so "[set pcolor black"
et il va devoir aussi garder une trace de combien de nourriture a été mangée.
"set food-eaten (food-eaten +1)"
Et nous allons faire une autre chose qui sera de mettre une étiquette sur son corps pour nous dire combien elle a mangé.
"set label food-eaten ]"
et c'est tout des action que nous allons demander à la tortue de faire.
(je dois mettre ce crochet plus bas, ici.) je vais utiliser la touche "tab" pour remettre toutes les lignes à leur place
et maintenant nous avons ces deux crochets autours des actions que les tortues vont devoir effectuer.
Nous allons leur demander de tourner à droite ou à gauche, regarder leurs patches, si la couleur est verte, remplacer par la couleur noire,
augmenter la quantité de nourriture mangée par l'une, et poser une étiquette pour dire combien de nourriture elle a mangé.
Ok, il nous reste une dernière chose à faire, qui est de monter ce "food-eaten".
Les tortues doivent avoir quelques variables associées à elles et appelées "food-eaten" - vous pouvez y penser comme à l'estomac de la tortue
qui garde une trace de combien de nourriture a été mangée, les tortues ne meurent pas dans ce modèle.
Donc, pour faire ça nous allons écrire "turtles-own [food-eaten]"
Et ce que ça fait, c'est que ça créée une variable appelée "food-eaten" qui est spécifique à chaque tortue. Chacune a sa propre variable "food-eaten".
Elles auront donc toutes une quantité différente de nourriture avalée.
Ici dans "setup", je vais mettre à zéro. "set food-eaten 0". Ca fait commencer à 0 et plus tard la quantité s'accumulera.
Alors vérifions ça, ça a l'air bon, retournons à l'interface, ralentissons-la un peu, de sorte à voir la tortue manger la nourriture.
La tortue - pardon, je devrais dire la fourmi - la fourmi évolue dans ce "monde", se déplaçant, et chaque fois qu'elle s'arrete sur un patch vert, elle y mange la nourriture.
Souvenez-vous qu'elle fait entre 0 et 3 pas à chaque fois donc elle ne prend la nourriture qu'après avoir fait tous ses pas.
vous la voyez se déplacer, on peut un peu augmenter la vitesse,
et vous pouvez voir la fourmi se promener et manger la nourriture.
Vous ne pouvez probablement pas le voir sur votre écran mais la fourmi présente une étiquette de combien de nourriture a été mangée
C'est beaucoup de nourriture à manger pour une petite fourmi, et la prochaine chose à faire est de donner une colonie à notre fourmi.
Donc ajoutons quelques fourmis ! Le moyen de faire ça est d'ajouter une "population".
Il faut permettre à l'utilisateur du modèle de changer la taille de la population.
Nous allons aller dans le menu de l'interface, et aller à "slider". Je vais ajouter un slider, je vais appeler cette variable globale "population"
Je vais mettre pour population minimum 1, maximum, disons... 200, nous pouvons permettre aux gens de l'augmenter de 1;
et ici c'est la valeur initiale, 50, ce qui me semble très bien, ok,
(laissez moi bouger ça, selectionner, bouger..)
Mais maintenant il va falloir dire au code quoi faire de cette population variable. Je vais donc aller dans l'onglet code,
et au lieu de "create-turtles 1", je vais noter "create-turtles population".
L'utilisateur pourra entrer un nombre pour la population et le code créera autant de tortues.
Regardons ce qui se passe quand nous le mettons en marche.
Nous avont toutes nos fourmis au milieu de l'écran, 50 fourmis, laissons les partir.
vous pouvez les voir se déplacer, je l'ai ralenti, elles font donc toutes les mêmes choses,
mais comme chacune a quelques choix à faire au hasard vous les voyez agir un peu différemment.
et si nous l'accélérons nous commençons à les voir comme de vrais fourmis mangeant et se déplaçant.
augmentons la population, 130,