2020-05-28 16:07:00 +00:00
import { Component } from 'preact'
2020-05-28 17:58:41 +00:00
import Section from "../components/Elements/Section" ;
2020-05-28 16:07:00 +00:00
import Panel from "../components/Elements/Panel" ;
2020-05-28 17:58:41 +00:00
import Example from "../components/Elements/Example" ;
import Code from "../components/Rendering/Code" ;
2020-05-28 16:07:00 +00:00
const r = String . raw ;
export default function ( props ) {
return (
< div >
< h1 > Apprendimento ed evoluzione in sistemi artificiali < / h 1 >
2020-05-28 17:58:41 +00:00
< Section title = { "NetLogo" } >
2020-05-28 16:07:00 +00:00
< Panel title = { "Cos'è?" } >
< p >
NetLogo è un software di modellazione sistemi multiagente .
< / p >
< p >
Si può < a href = { "https://ccl.northwestern.edu/netlogo/download.shtml" } > scaricare < /a> o <a href={"https:/ / www . netlogoweb . org / launch " } > usare da browser < / a > .
< / p >
< p >
Il suo codice sorgente è disponibile su < a href = { "https://github.com/NetLogo/NetLogo" } > GitHub < /a>, e ha una pagina di <a href={"https:/ / ccl . northwestern . edu / netlogo / docs / dictionary . html " } > documentazione < / a > .
< / p >
< / P a n e l >
2020-05-28 17:58:41 +00:00
< / S e c t i o n >
< Section title = { "Agenti di NetLogo" } >
2020-05-28 16:07:00 +00:00
< Panel title = { "Observer" } >
< p >
L ' < b > utente < / b > d i N e t L o g o , c h e v i v e n e l c o n t e s t o g l o b a l e e d à o r d i n i a g l i a l t r i a g e n t i .
< / p >
< / P a n e l >
< Panel title = { "Turtle" } >
< p >
Entità che possono < b > muoversi < / b > p e r i l m o n d o .
< / p >
< Example >
Sono più o meno come le < a href = { "https://www.computercraft.info/wiki/Turtle" } > Turtle di Computercraft < / a > !
< / E x a m p l e >
< p >
Possono essere di una < i > breed < / i > ( r a z z a ) s p e c i f i c a , d e f i n i t e c o n :
< / p >
2020-05-28 17:58:41 +00:00
< Code language = { "lisp" } > { r ` breed [<plurale> <singolare>] ` } < / C o d e >
2020-05-28 16:07:00 +00:00
< Example >
Le breed sono praticamente sottoclassi di turtle .
< / E x a m p l e >
< / P a n e l >
< Panel title = { "Patch" } >
< p >
I < b > quadratini < / b > d e l m o n d o . P o s s o n o e s s e r e d i v a r i c o l o r i e a v e r e v a r i e p r o p r i e t à .
< / p >
< Example >
... possiamo dire che questi siano i blocchi di Minecraft ?
< / E x a m p l e >
< / P a n e l >
< Panel title = { "Link" } >
< p >
< b > Collegamenti < / b > t r a d u e t u r t l e .
< / p >
< / P a n e l >
2020-05-28 17:58:41 +00:00
< / S e c t i o n >
< Section title = { "Creazione di agenti" } >
2020-05-28 16:07:00 +00:00
< Panel title = { "Observer" } >
< p >
L 'observer viene creato automaticamente all' apertura della simulazione .
< / p >
< / P a n e l >
< Panel title = { "Turtle" } >
< p >
Nuove turtle possono essere create con il comando :
< / p >
2020-05-28 17:58:41 +00:00
< Code language = { "lisp" } > { r ` <prefisso>-<breed> <quantità> ` } < / C o d e >
2020-05-28 16:07:00 +00:00
< p >
Dove prefisso varia in base al contesto attuale :
< / p >
< table >
< thead >
< tr >
< th > Contesto < / t h >
< th > Prefisso < / t h >
< / t r >
< / t h e a d >
< tbody >
< tr >
< td > Observer < / t d >
2020-05-28 17:58:41 +00:00
< td > < code language = { "lisp" } > { r ` create ` } < / c o d e > < / t d >
2020-05-28 16:07:00 +00:00
< / t r >
< tr >
< td > Turtle < / t d >
2020-05-28 17:58:41 +00:00
< td > < code language = { "lisp" } > { r ` hatch ` } < / c o d e > < / t d >
2020-05-28 16:07:00 +00:00
< / t r >
< tr >
< td > Patch < / t d >
2020-05-28 17:58:41 +00:00
< td > < code language = { "lisp" } > { r ` sprout ` } < / c o d e > < / t d >
2020-05-28 16:07:00 +00:00
< / t r >
< / t b o d y >
< / t a b l e >
< / P a n e l >
2020-05-28 17:58:41 +00:00
< / S e c t i o n >
< Section title = { "Variabili" } >
2020-05-28 16:07:00 +00:00
< Panel title = { "Observer" } >
< p >
All ' inizio del codice :
< / p >
2020-05-28 17:58:41 +00:00
< Code language = { "lisp" } > { ` globals [var1 var2 var3] ` } < / C o d e >
2020-05-28 16:07:00 +00:00
< Example >
Sono a tutti gli effetti variabili globali .
< / E x a m p l e >
< / P a n e l >
< Panel title = { "Turtle" } >
< p >
Aggiungi proprietà a tutte le turtle :
< / p >
2020-05-28 17:58:41 +00:00
< Code language = { "lisp" } > { ` turtles-own [var1 var2 var3] ` } < / C o d e >
2020-05-28 16:07:00 +00:00
< p >
Aggiungi proprietà alle turtle di un breed :
< / p >
2020-05-28 17:58:41 +00:00
< Code language = { "lisp" } > { ` <breed>-own [var1 var2 var3] ` } < / C o d e >
2020-05-28 16:07:00 +00:00
< / P a n e l >
< Panel title = { "Patch" } >
< p >
Aggiungi proprietà alle patch :
< / p >
2020-05-28 17:58:41 +00:00
< Code language = { "lisp" } > { r ` patches-own [var1 var2 var3] ` } < / C o d e >
2020-05-28 16:07:00 +00:00
< / P a n e l >
< Panel title = { "Link" } >
< p >
Aggiungi proprietà ai link :
< / p >
2020-05-28 17:58:41 +00:00
< Code language = { "lisp" } > { r ` links-own [var1 var2 var3] ` } < / C o d e >
2020-05-28 16:07:00 +00:00
< / P a n e l >
2020-05-28 17:58:41 +00:00
< / S e c t i o n >
< Section >
2020-05-28 16:07:00 +00:00
< Panel title = { "Locali" } >
< p >
Si possono creare con :
< / p >
2020-05-28 17:58:41 +00:00
< Code language = { "lisp" } > { r ` let <nome> <valore> ` } < / C o d e >
2020-05-28 16:07:00 +00:00
< / P a n e l >
< Panel title = { "Set" } >
< p >
Si può impostare il valore di una variabile con :
< / p >
2020-05-28 17:58:41 +00:00
< Code language = { "lisp" } > { r ` set <nome> <valore> ` } < / C o d e >
2020-05-28 16:07:00 +00:00
< / P a n e l >
2020-05-28 17:58:41 +00:00
< / S e c t i o n >
< Section title = { "Blocchi di codice" } >
2020-05-28 16:07:00 +00:00
< Panel title = { "Cambi di contesto" } >
< p >
Per cambiare contesto :
< / p >
2020-05-28 17:58:41 +00:00
< Code language = { "lisp" } > { r `
2020-05-28 16:07:00 +00:00
ask < bersaglio > [
< blocco di codice >
]
` }</Code>
< p >
Nel caso ci siano più bersagli , verranno eseguiti uno
< / p >
< / P a n e l >
< Panel title = { "Commands" } >
< p >
Funzioni che non restituiscono nulla :
< / p >
2020-05-28 17:58:41 +00:00
< Code language = { "lisp" } > { r `
2020-05-28 16:07:00 +00:00
to < nome >
< blocco di codice >
end
` }</Code>
< p >
Con argomenti :
< / p >
2020-05-28 17:58:41 +00:00
< Code language = { "lisp" } > { r `
2020-05-28 16:07:00 +00:00
to < nome > [ var1 var2 var3 ]
< blocco di codice >
end
` }</Code>
< / P a n e l >
< Panel title = { "Reporter" } >
< p >
Funzioni che restituiscono un valore :
< / p >
2020-05-28 17:58:41 +00:00
< Code language = { "lisp" } > { r `
2020-05-28 16:07:00 +00:00
to - report < nome > [ var1 var2 var3 ]
< blocco di codice >
report < restituito >
end
` }</Code>
< / P a n e l >
2020-05-28 17:58:41 +00:00
< / S e c t i o n >
< Section title = { "Comandi per turtle" } >
2020-05-28 16:07:00 +00:00
< Panel title = { "Avanti" } >
< p >
Muoviti di 10 unità :
< / p >
2020-05-28 17:58:41 +00:00
< Code language = { "lisp" } > { r `
2020-05-28 16:07:00 +00:00
forward 10
back 10
` }</Code>
< p >
Nota che la velocità massima delle tartarughe è di 1 unità / tick , quindi muoversi di 10 unità richiederà 10 tick .
< / p >
< / P a n e l >
< Panel title = { "Ruota" } >
< p >
Ruota di 10 gradi :
< / p >
2020-05-28 17:58:41 +00:00
< Code language = { "lisp" } > { r `
2020-05-28 16:07:00 +00:00
left 10
right 10
` }</Code>
< / P a n e l >
2020-05-28 17:58:41 +00:00
< / S e c t i o n >
2020-05-28 16:07:00 +00:00
< / d i v >
)
}