Olá, aqui é John Balwit com o curso de complexidade.
E nós vamos olhar para o dever de casa,
para a teoria da informação, a nível intermediário.
Nós pedimos na questão nº 2 para modificar o modelo SlotMachine.nlogo
para incluir os seguintes macroestados: exatamente 2 do mesmo tipo;
nenhum do mesmo tipo; e dois limões e uma laranja.
Então aqui está como eu vou fazer isso:
Primeiro eu vou copiar aquilo.
Nós vamos olhar ao seletor aqui
que escolhe quais casos estão disponíveis, e vamos adicionar esses estados.
Então eu vou editar aquilo, e eu vou fazer isso. (digitando)
Então nós agora adicionamos "Exatamente 2 do mesmo tipo."
Agora nós vamos no código e vemos como os outros seletores funcionam.
Nós encontramos eles aqui. E aqui está um que é muito parecido
que é chamado "ao menos 2 do mesmo tipo" e que usa a medida
da forma de todas as bobinas
e mede o tamanho daquela lista após removermos as duplicatas.
Então para nos relembrar, vamos pedir para mostrar
qual essa "forma de todas as bobinas" é.
Então eu estou modificando apenas esse "ao menos dois do mesmo tipo"
de modo que ele nos mostre qual é a forma de "todas as bobinas".
Então eu vou olhando para baixo aqui no centro de comando.
Eu vou fazer isso um pouco menor temporariamente
de modo que possamos ver o centro de comando.
Ok, agora quando eu seleciono "Ao menos 2 do mesmo tipo,"
Eu reseto, e puxo a alavanca,
e nós vemos, aqui embaixo, essa é a lista.
Eu vou parar isso agora.
E é assim que aquela lista se parece. Ok?
E essa lista é somente três em série.
Então agora que recordamos qual a forma que ela tem
nós podemos dizer, vamos copiar esse aqui, e renomeá-lo
para o que nós tínhamos aqui, que era "Exatamente 2 do mesmo tipo."
Eu vou só editar isso aqui.
É sempre uma boa ideia recortar e colar quando você tiver uma chance.
Então eu vou capturar aquilo e copiar.
Ok.
E colocar nesse código aqui.
Se nós estamos procurando por 2 do mesmo tipo
isso significa que quando nós pegamos essa lista com 3 nomes de frutas,
se tiver uma duplicata, se qualquer das duas são a mesma, e
nós removemos essas duplicatas,
então o tamanho dessa será exatamente igual a 2.
Então nós apenas dizemos que isso é igual a 2. Ok.
Então eu vou tentar fazer isso para que nós possamos ver.
Aqui vamos nós.
Então "exatamente 2 do mesmo tipo" deveria tirar os estados
onde a bobina é exatamente igual a 2. Vamos tentar.
Defina "exatamente 2 do mesmo tipo", nos vamos resetar, puxar a alavanca...
Bem, isso não está nos ajudando muito. Vamos parar.
Vamos jogar em algum código depurador e nós vamos ver de fato...
Então eu vou jogar um "parar" aqui, então sempre que acontecer, vai parar.
Então nós podemos ver o que parou ali. "exatamente 2 do mesmo tipo"
Sim... 2 pêras... 2 pêras... 2 pêras de novo... 2 cerejas
Parece estar funcionando. Ok.
Eu vou voltar no código e remover meu pequeno "parar" depurador.
Voltando aqui, nós estamos procurando por "Nenhum limão" como nosso próximo desafio.
Então eu vou copiar e colar isso de novo.
Copie aqui, e esse será chamado:
"Nenhum limão".
Então "Nenhum limão".
Para esse acho que vamos usar esse "member".
Aqui tem um que está perguntando por ao menos um limão,
e estamos perguntando se "limão" é um membro disso. Então podemos dizer:
Olhe, é "nenhum limão" se
não é o caso que a forma "limão" está lá.
Então isso diz "not member?" Isso é um booleano quanto termina em "?"
E vamos usar novamente nosso parar então nós podemos depurar isso.
E não vamos esquecer de remover essa outra
parte que foi deixada do recortar e colar.
Então, "not member? lemon" Isso está dizendo que nessa lista
"limão" não é um membro. Ok. E nós vamos parar se acontecer isso.
Voltando para a interface, puxando a alavanca,
Nenhum limão, nenhum limão.
Então parece estar funcionando.
O próximo desafio é "Dois limões e uma laranja."
Ok, então eu quero copiar aquilo. Nós vamos adicionar isso aqui como string
Então nós vamos no código e colocamos aquela string.
E fazemos outro recortar e colar.
Oops, acho que eu não copiei o suficiente aqui. Não faça isso.
Nós vamos arrastar tudo isso, copiar aqui.
Copiar a string.
Okay, então o que vamos colocar para esse?
Claramente, nós vamos querer determinar se tem uma laranja.
Entao vamos dizer:
Nós removemos uma laranja dessa lista. Uma vez que só uma laranja é permitida,
quando removemos uma laranja dessa lista, o tamanho dessa lista tem que ser 2.
Então o tamanho da laranja removida seria 2.
Nós podemos dizer também: e se nós removermos os limões,
então esperaríamos que o tamanho da lista fosse 1.
Certo? Apenas uma laranja resta.
Ok, então quando coloco esses 2 juntos,
Isso deve nos permitir identificar corretamente esses.
Então vamos remover meu código de depuração do anterior.
Vamos ver se isso pega. Vamos deixar aquele "parar" aqui.
Ok, então vamos testar.
Redefenir. Puxar a alavanca.
Para em 1 laranja e 2 limões.
Jogar de novo.
Laranja e 2 limões.
2 limões e 1 laranja.
Ok, parece que funciona. Checagem dupla do código aqui.
Remova isso e nós terminamos a parte final do problema nº 2.