Maintenant que nous avons vu un peu comment
NetLogo fonctionne, nous allons construire notre propre
modèle simple. Ce modèle sera composé
d'une fourmi se déplacant au hasard
et c'est tout.
Donc, ouvrons Netlogo.
Je vais cliquer sur ce Netlogo 5.3.1,
vous pouvez cliquer sur la version
que vous avez.
Maintenant, la premičre chose que je vais faire est
de créer les boutons "Setup" et "Go".
Donc, je vais sur le menu de construction d'Interface,
Quand je clique dessus, vous pouvez voir tous les
différents types d'objets que je peux ajouter
à l'interface. Donc, nous allons
ajouter un bouton. Donc, je clique sur l'interface,
je peux remplir que ce bouton est pour la configuration ("Setup"),
et je peux obtenir un autre bouton,
Ajouter un autre bouton pour Go,
je peux sélectionner ceci par un clic droit dessus,
Cliquez sur "Select", je peux me déplacer, je peux changer
sa taille. Si je la traîne ici, je peux ajuster
les boutons comme je le veux. Donc, maintenant nous
avoir les boutons "Go" et "Setup".
Ils sont rouges parce qu'ils n'ont pas
code associé avec eux encore.
Il n'y a rien qu'ils font réellement encore
lorsqu'ils sont cliqués, donc je vais
avoir à créer le code. Maintenant, nous allons
créer le code qui vont avec les
boutons "Setup" et "Go".
Nous faisons cela en allant dans l'onglet de code et
en écrivant les procédures. Ainsi, le premier
que nous allons faire est "Setup".
Donc, nous disons à "Setup"; Voici ce que nous faisons
lorsque le bouton est cliqué,
nous marquons "clear all", ici "clear all" est une commande
qui efface "le monde", l'endroit où
vous voyez les fourmis commettre des actions,
cette commande efface la fenêtre et tout ce qui reste
de la simulation précédente. Nous allons
réinitialiser les tiques ("reset = ticks), soit, nous allons mettre
les tiques, ou le bond de temps ("time steps") à zéro.
Maintenant, nous allons créer une fourmi.
Chaque agent dans Netlogo est appelé une tortue ("turtle").
C'est pour des raisons historiques, venant
de la langue originale, Logo, sur laquelle
Netlogo est basé, où tous les agents étaient
des tortues. En Logo vous aviez seulement une tortue.
Ici, vous allez éventuellement avoir
beaucoup de tortues. Pour l'instant, nous allons
créer une tortue ("create = turtles"). Nous allons dire
combien de tortues nous voulons. Pour l'instant, nous allons
seulement dire que nous en voulons une.
Donc, nous allons créer une tortue et
alors nous allons lui demander de faire certaines choses.
Nous écrivons "ask turtle" et nous allons
donner une liste de choses à lui demander. La liste commence avec ce symbole " [ ".
Nous allons lui demander de définir sa forme comme insecte, (set shape "bug")
c'est la forme d'une fourmi dans Netlogo. Nous allons
mettre sa taille à 3. C'est une ("set size 3")
bonne taille dans Netlogo pour le visionnement. Nous
allons définir sa couleur rouge. ("set color red ")
Ok, je pense que c'est tout ce que nous voulons
lui demander de faire, alors nous allons mettre "end" à la fin. Il y a
cette belle coche ici qui vérifie le
code pour des bugs. Alors, cliquez sur ceci, et
il on me dit qu'il ya un bug, et on me dit
où le bug se situe, et je remarque que
j'aurais effectivement du demander "turtleS"
J'ai raté un "S" ici. La raison est que
Netlogo suppose l'existence d'une
population de tortues ou d'agents et
chaque fois que vous lui demandez de faire quelque chose, vous demandez
à l'ensemble de la population. Ici, nous n'avons qu'une seule
tortue, mais plus tard, nous allons leur demander
à toutes de le faire. On vérifie à nouveau.
Ça me ramène à l'interface me disant
que tout semble fonctionner, nous allons donc
cliquez sur "Setup", et nous voyons notre fourmi, en plein
milieu. Le bouton Go est toujours rouge
ce qui signifie que nous n'avons pas écrit le
code pour cela. Écrivons la procédure de "Go".
Revenons à l'onglet de code.
Nous écrivons "to go" (aller). Nous allons écrire "ask turtle" (demander aux tortues)
pour qu'elles fassent quelques petites choses. Tout d'abord, nous leur demanderons de
tournez leur corps à droite de 30 degrés, ("right 30")
et nous allons leur demander de se déplacer
de 4 pas, ("forward 4 ]")
puis nous allons augmenter les time steps de un,
c'est ce que la commande "tick" fait,
nous allons réinitialiser les ticks à 0, puis
tapez "tick" qui augmente le
time step de un à chaque fois que nous passons par
la procédure et ensuite nous terminons avec "end".
Allons à l'interface, et cliquez sur "Go".
Vous pouvez voir que la tortue à tourné son corps
de 30 degrés et s'est ensuite déplacé vers l'avant
avec quatre pas. Nous continuons de cliquer sur"Go"
encore et encore, et elle toune
en cercle. J'aimerais qu'elle conitue
éternellement, sans avoir sans cesse
à cliquez sur le bouton "Go"
et je peux le faire en cliquant-droit sur
"Go" et aller à dans "Edit", et nous voyons cette
option, "forever", que je peux cliquer
et qui signifie que le script ne cessera de répéter "Go"
pour toujours, alors faisons-le.
Si je le ralenti un peu, vous pouvez
voir la fourmi tourner autour et encore par
elle même, et je clique sur le bouton "Go" pour
l'arrêter. Je peux cliquer sur "Go" pour démarrer
à nouveau. Si je veux commencer à partir de zéro, je
cliquez sur "Setup". Ça commence au même
endroit, dans le centre, mais ça pointe dans une
direction différente à chaque fois. C'est
parce que ça la met dans le centre, mais ça
pointe dans une direction aléatoire à chaque fois.
Nous pouvons sauvegarder le modêle jusqu'ici, en allant dans
l'onglet "File", et cliquez sur "Save as". Je vais
le sauvegarder comme étant Ant1.
Vous voyez ici sur le bureau, Ant1.logo.
Maintenant, nous pouvons aller au menu Netlogo,
"Quit Netlogo" .
Si je veux démarer ceci, je viens
double-cliquez sur ceci. NetLogo va
démarrer et charger ce modèle.
Il n'y a qu'une chose qui cloche avec notre
modèle, c'est qu'il est ennuyeux. La
seule chose que la fourmi fait est de tourner
en rond, donc nous allons le rendre un peu
plus intéressant. Je peux le faire en allant
dans le code et en ajoutant une simple commande.
Au lieu d'aller droit à 30 degrés, nous allons
ajouter le mot, "random" (aléatoire), alors maintenant la fourmi
choisira un nombre aléatoire entre 0 et
30 moins 1, et va aller vers la droite de tant
de degrés. Nous pouvons faire la même chose
chose ici, nous pouvons faire que la fourmi se déplace
vers l'avant avec un nombre de pas aléatoire.
Revenons à l'interface; nous cliquons
sur Setup and Go, et nous pouvons voir que cela rend
le comportement un peu plus intéressant.
Vous remarquerez peut-être que la fourmi semble aller
à travers la paroi ici et sortir de
l'autre côté. Le mur est "enroulé"
sur lui-même. Cela rend les choses un peu
étrange. Je peux clic-droit sur la région
noire, puis cliquez sur Edit. Il y a beaucoup
d'information ici concernant la configuration de ce
monde. Le nombre de carrés, qui représente la grille, qui divise le monde.
Décochez eux, se appliquer, ok.
Voyons ce qui se passe ensuite. Maintenant, quand
la fourmi frappe le mur, ça coince
lŕ, jusqu'ŕ ce qu'il soit tourné autour.
Notre fourmi encore tourne juste ŕ droite.
Écrivons code qui lui permet de choisir
au hasard si elle se tourne vers la droite ou
ŕ gauche. Il retourne essentiellement une pičce de monnaie
de décider si elle va se tourner vers le
droite ou vers la gauche. Je vais
mettre en uvre la procédure ŕ pile ou face.
Quelque chose appelé "to-report" "coin-flip",
"To-report" est différent d'un "ŕ" la procédure,
"To-report" retourne une valeur, ici, il sera
retourner true ou false. Nous disons
"Signaler aléatoire 2 = 0"
"Fin"
ce que cela ne est "aléatoire 2"
ŤAléatoireť renvoie un nombre aléatoire entre
0 et ce nombre, 2, moins 1,
si elle retourne 0 la moitié du temps et
Une moitié du temps, d'une maničre aléatoire.
Si ce est zéro, cette déclaration retours
vrai si la déclaration = 0, sinon il renvoie
fausse. Nous pouvons utiliser la valeur de cette
déclaration, en disant: Ťsi quelqueŤ coin-flip,
ce que cela fait est Ťsi coin-flip est vrai"
faire premičre chose que je vais
mis entre parenthčses, sinon si elle est fausse,
faire la deuxičme chose que je vais
mis entre parenthčses, Ťgauche aléatoire 30".
Chaque fois que nous courons la procédure Go, il sera
décider au hasard se il se allume
droite ou ŕ gauche. Donc, nous allons voir comment cela
fonctionne. Configuration and Go.
Vous pouvez le voir tourne un autre
direction, il se tourne vers l'avant, droite
et ŕ gauche. Le seul problčme, ce est qu'il
est coincé trop souvent. Nous pouvons faire
qu'une meilleure en changeant ces années 30 aux années 60
Avoir un rayon plus grand tournant, ce est, il
tourne plus ŕ chaque fois. Il semble que
se retrouver moins souvent. Chaque fois que vous
écrire un programme, il est toujours bon de mettre
dans les commentaires. Ils sont ignorés par le
ordinateur, mais ils sont bons pour les personnes
lire. Dans Netlogo, un commentaire est juste
texte suivant un point-virgule. Je peux écrire
ce que je veux et de la volonté de l'ordinateur
ignore-le. Écrivons, retourne vrai ou
fausse au hasard, qui est ce qu'il fait,
Ici, nous pouvons écrire un autre commentaire,
si coin-flip est vrai, tourner ŕ droite,
ailleurs tourner ŕ gauche,
Lŕ, vous avez petits rappels, soit
pour nous-męmes ou pour les autres la lecture de la
programme. Vraiment utile si vous avez un
programme plus compliqué. Surtout, si
vous revenez ŕ lui aprčs quelques jours.
Les commentaires sont absolument essentiel, męme si
personne ne va lire votre programme.
Maintenant, nous allons sauver notre modčle.
Tout d'abord, je vais de l'étiqueter.
Ce est une chose esthétique, je vais
le menu de l'interface et choisissez Remarque, je suis
va mettre ici un peu de texte
qui dit le nom du modčle, Ant1.
Faisons le texte un peu plus grand, 18,
et puis je peux sélectionner cette et déplacez-les
baisser un peu, les centrer, faire
ce que je veux faire plus joli,
cliquez sur Enregistrer, et le modčle est enregistré.
Je voulais simplement mentionner que le but
de l'enseignement Netlogo est de vous donner une idée
de la façon dont tout cela fonctionne. Nous allons ętre
l'aide d'un grand nombre de modčles NetLogo dans ce
Bien sűr. Nous ne allons pas ętre écrit
beaucoup. Je voulais vous donner une idée de
comment tout cela fonctionne. Vous pourriez faire un peu
modifications de ce que nous avons écrit. Si vous
sont plus avancés, vous pouvez essayer d'écrire
certains de vos propres. Comme une mission, je
aimerait vous le mettre en oeuvre exacte
męme modčle, comme je le faisais, Ant1, en utilisant le
męmes commandes, et le faire fonctionner.
Cela va ętre non classé, mais il est de
votre avantage. Ne hésitez pas ŕ poser
questions sur le forum de l'étudiant lorsque
ils viennent. Ce est pourquoi ils sont lŕ.