Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida Scratch

Bom dia a todos. Tentei fazer o código no scratch de uma forma mais sucinta. No meu caso tentei utilizar apenas uma vez o falg "ao clicar na badeirinha verde" e apenas um loop "sempre" com todos os "IFs" e atibuições dentro deste mesmo loop único, porém, percebi um coportamento estranho, tipo como se ele não executasse todas as etapas. Isso é normal no scratch? Entendo que normalmente em códigos os Flag como este usado "ao clicar.." é escrito apenas uma vez e todas as ações devem ser atribuídas dentro deste item.

3 respostas

Fala Lamonth, como vai?

Excelente questão. O Scratch foi baseado em programação concorrente, onde a idéia é que existam vários processos ou threads que estão sendo executadas "simultaneamente". Você pode encontrar mais informação neste link.

Quando adicionamos apenas um código ao clicar na bandeira verde, todas as verificações serão feitas progressivamente, e como resultado, teremos uma aplicação com um comportamento estranho.

Por esse motivo, dividimos nossa aplicação em partes, incluindo alguns ao clicar na bandeira verde e realizando as verificações "simultaneamente".

Espero ter ajudado e conte sempre com a Alura.

: )

solução!

Entendi professor. Esse tópico foi relamente elucidativo. Principalmente esta parte : "While concurrency has many benefits and is used in many projects, concurrent modification, or two or more processes operating on the same data simultaneously can cause many issues, or race conditions. Race conditions are prevented by using synchronization. In Scratch one does not usually need to worry about race conditions, because only one block may be busy at any one point and control only moves from one script to another at certain points." Acredito que o uso de atributos de sincronização corrigiria os problemas, mas isso será mais pra frente. Agradecido :-)

Excelente

Bons estudos e conte com a Alura!