Entao, esta pergunta pede-nos para criarmos um ninho no centro do mundo
ou aproximadamente na origem com nove parcelas e vamos pintar esse ninho de laranja.
Por isso vamos para o codigo e primeiro vamos adicionar uma variavel turtle nova
a primeira linha onde diz "turtles-own" dentro dos parenteses rectos, escreve "return-to-nest?" com ponto de interrogacao.
Depois, criamos uma variavel de parcelas, o patch,
escreve patches-own, abre parenteses rectos, "nest?" (com ponto de interrogacao), e fecha parenteses rectos.
Agora temos de adicionar algumas linhas ao procedimento do "setup".
Entao, no comando 'ask turtles' pomos return-to-nest para ser falso (escreve "set return-to-nest? false").
Se nao fizermos isto, o NetLogo vai estabelecer qualquer variavel nova para True, por default.
Agora, adicionamos uma linha nova, que se vai tornar num procedimento novo. Vamos chamar-lhe "set-up-nest".
Para adicionar esse procedimento comecamos uma outra linha com "to" e "set-up-nest".
E fazemos um "ask patches" que nos poe no contexto de "patches",
para estabelecer que a variavel "nest" seja true quando uma parcela (um patch) se encontra a uma distancia de 2 da origem
entao escrevemos "set nest? (distancexy 0 0) < 2"
e se um patch cumpre esse criterio, fazemos: "if nest? [set pcolor orange]" para que seja laranaja.
E terminamos sempre um procedimento com "end" e vemos se functiona
"No closing bracket for this open bracket", esqueci-me de fechar estes parenteses rectos.
Vamos ver se agora serve.
Parece que esta bem, entao vamos a inteface.
Carregamos em "Setup", e podemos ver que ha... e dificil ver que ha 9 parcelas aqui mas... vou assumir que sim.
Agora ha um ninho laranja no centro do mundo.
A seguir, e-nos pedido para escrevermos algum codigo que faca as formigas regressarem ao ninho
assim que comam, e antes de irem buscar comida de novo.
Ha varias maneiras de o fazer, mas eu vou fazer assim:
Primeiro, quero simplificar o procedimento "to go"...
Entao, vou criar um novo procedimento, e vou chamar-lhe "look-for-food".
Logo vou cortar (cut) esta seccao... escrever uma nova linha de procedimento ("to look-for-food") e cola-la.
Regresso ao procedimento "go", e insiro "if else return-to-nest? false" entao "look-for-food" (procura por comida)
e consequentemente, se "return-to-nest" e verdadeiro, entao "[return-to-nest]" (regressa ao ninho).
E ainda nao escrevemos este procedimento "return-to-nest", que e o que vamos fazer.
Antes de o fazer, e uma boa ideia rever o codigo para ver se cometemos algum erro ate agora.
Carrego em "check" e aqui diz-nos que ainda nao escrevemos "return-to-nest".
Mas tambem dei conta que me esqueci to simbolo de igual (=) nesta linha, logo vou adiciona-lo.
Escrevemos o procedimento "to return-to-nest"
para isto vamos simplesmente escrever "face patch 0 0" (a origem) e "fd 1".
E issto vai fazer com que qualquer forminga que tenha "return-to-nest" verdadeiro
se vire para a origem e tome um passo nessa direccao.
E depois queremos dizer-lhe para ir procurar comida outra vez se estiver no ninho
entao "if pcolor = orange", que quer dizer que voltou a casa, pomos "set return-to-nest? false"
porque ja la esta
fechamos o parenteses... end.
Ate agora nao temos nenhuma formiga que tenha um "return-to-nest" verdadeiro
obviamente que temos de fazer isso...
assim que tenham comido, fazemos "set return-to-nest? true".
Revemos o codigo... esta bem, voltamos a interface, "Setup" e depois carrega em "Go".
E ha bastantes formigas, e dificil ver o que fazem, entao reduzimos o numero de formigas, tentar de novo.
E pomos um pouco mais lento,
podemos ver que as formigas estao a portar-se como deveriam.
Comem a sua comida e regressam ao ninho antes de voltarem a sair.
Podiamos mudar a cor de volta para vermelho, para ser mais obvio, mas vamos deixar isso para mais tarde.