Ok, o procedimento reprodução pedirá às turtles que criem auto cópias Nós usamos o procedimento hatch para fazer as turtles reproduzirem-se Eu direi: peça para cada turtle chocar 2 turtles como padrão, estas turtles terão todos os atributos de seus pais Eu mencionei anteriormente que precisaremos rastrear as gerações. Isso envolve dar variáveis personalizadas às turtles Invocamos as turtles junto com as variáveis. E a chamarei de "generation". De agora em diante, quando criamos uma turtle, ela irá automaticamente conter uma variável chamada "generation". Estes filhotes, que entram em cena, conterão aquela variável também. E será automaticamente definida com o mesmo valor que a variável dos pais. Mas não queremos isto. Elas são a próxima geração, então queremos que elas definam sua própria geração. Aqui temos que usar "generation of myself plus one". Acho que isto deva estar entre colchetes. Os comandos após "hatch" são aplicados aos filhotes recém-chegados. Basicamente, definirei sua geração como: a minha geração, qualquer que seja, mais um. Portanto, estou apenas incrementando-a. Não estou certo se estes colchetes são necessários. Eu posso ir em ajuda rápida. Com certeza. Realmente precisa estar entre parênteses. Isto explica a diferença entre "self" e "myself". Chocaremos dois e definí-los. Apenas para observá-los... ...vamos definir suas cores como vermelho e ir em frente 3. Assim vericamos se reprodução funciona Vamos tentar. Retornaremos aqui... Irei comentar isto por enquanto. Apenas para testarmos nosso código. Agora iniciamos, e damos um passo. E parece-me que todas as turtles... Vamos por uma população menor, para que possamos observar. Iniciamos com 5 turtles. damos um passo... Imagino que estas herdaram o título dos pais também. As vezes é confuso quando você está fazendo estes tipos de modelos porque você não sabe exatamente quantas turtles possui. Então você poderia ter algo mais simples na instrução como: mostre a contagem de turtles. Parece-me que há apenas 10 turtles, mais ou menos, mas quando vemos de fato existem 15. Portanto, há sobreposição. Outro modo de fazer isto é, ao clicar ali, você pode ver que as turtles 11 e 12 são coincidentes. Está funcionando e os filhotes também estão herdando o título dos seus pais, o que está causando sobreposição. De qualquer forma, não precisamos nos preocupar por enquanto. Então, reprodução funciona. Talvez quiséssemos verificar se o processo de geração funciona. Vamos dar uma olhada na interface. Se inspecionarmos esta turtle, nós devemos ver que ela tem uma variável de geração. Eu não a vejo... Vamos ver se esta tem. Não está aí. Algum erro ocorreu aqui. Vamos comentar isto novamente. Executar a Configuração... ...Inspecionar esta turtle... Tudo bem, talvez eu não tenha inicializado, aqui temos a geração. Esta é a geração 0. Turtle 3 é da geração 0. E quando damos um passo, com um pouco de sorte, ela será da geração 1. Então estamos incrementando a geração. A geração era originalmente 0 e agora é 1. Logo, nosso recurso de geração está funcionando. Ok, agora pediremos aos pais que morram. Lembro-me que teremos que rastrear em que geração estamos. Iremos criar uma variável global chamada "current-generation" Toda vez que dermos um passo, também incrementaremos a geração atual. Isto permitirá mantermos noção de quem e quando deve morrer. A cada passo, adicionamos uma unidade a esta variável que inicia em zero. Em seguida diremos que os pais morrem. Pediremos às turtles com geração menor que ou igual à geração atual... Você pode criar estes grupos de agentes... ...e se comunicar com grupos parciais. Eu quero me comunicar somente com aquelas turtles cuja variável de geração é menor ou igual à variavel de geração atual. Talvez eu queira dizer que morram apenas as que sejam menores. Então pediremos que estas gerações morram. Vamos retornar... ...iniciar, dar um passo... Ao invés de definí-las com vermelho, definiremos com um número aleatório até 100. Isto significa que têm cores diferentes. Também iremos em frente um número aleatório. Será temporário, apenas para os visualizarmos. Estamos visualizando as diferentes gerações... As populações estão aumentando. Você pode ver as cores mudando. Isto significa que... ...as gerações diferentes estão vindo, nós podemos inspecionar estas turtles, estamos apenas na geração 12, mas já chocamos mais de 20.000 turtles. É assim que crescimento exponencial da população funciona, certo? Nós conseguimos com que os pais morressem. Nós precisamos de algum tipo de limitação. Algo que dificulta a reprodução, de forma que não tenhamos crescimento ilimitado. Um modo fácil de fazer isto é criar uma situação em que os indivíduos morrem dependendo do quão lotado se encontra. Vamos chamar isto de... ..."compete-with-nature". Esta é uma ideia da biologia evolucionária,... ...indivíduos competindo uns com os outros, e também com o ambiente de algum modo. Este é o caso em que estão de certa forma competindo por um espaço, mas eles são o ambiente também. Vou fazer uma mudança, chamarei isto de "compete-for-space".