Buscar

ALURA - Ensino Médio 1 ANO - Curso 1 do 1 Bimestre - Aula 10

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Atributos eficientes
Aula 10
Habilidades trabalhadas nesta aula:
(EF07MA04) Resolver e elaborar problemas que envolvam operações com números inteiros.
(EF07MA13) Compreender a ideia de variável, representada por letra ou símbolo, para expressar relação entre 
duas grandezas, diferenciando-a da ideia de incógnita.
(EF07CO01) Criar soluções de problemas para os quais seja adequado o uso de registros e matrizes unidi-
mensionais para descrever suas informações e automatizá-las usando uma linguagem de programação.
(EF07CO02) Analisar programas para detectar e remover erros, ampliando a confiança na sua correção.
(EF07CO05) Criar algoritmos fazendo uso da decomposição e do reúso no processo de solução de forma 
colaborativa e cooperativa e automatizá-los usando uma linguagem de programação.
Listas: criando o seu jogo de 
cartas com listas e padrões
 Unidade
2
Reconhecer padrões.
Criar blocos personalizados.
Utilizar bloco personalizado para 
adicionar características às cartas.
O que vamos aprender?
ACOMPANHE O VÍDEO DA AULA
https://cursos.alura.com.br/course/scratch-criando-jogo-cartas-listas-padroes/task/134377
3
Reconhecendo padrões
Anteriormente, terminamos de 
ajustar a dinâmica de bônus para 
nossa carta e para a carta do 
oponente adicionando o acessório 
de trás. Além disso, inserimos 
outros acessórios na parte da 
frente de ambas as cartas. Nesta 
aula, atualizaremos os valores 
dos atributos em relação a esses 
acessórios da frente. Para fazer isso, 
criaremos blocos personalizados 
a partir da observação de padrões 
em códigos que já utilizamos, e 
usaremos esses blocos para adicionar 
novas características às cartas.
Professor, para iniciar a aula, sugere-se relembrar com os estudan-
tes o que foi realizado no projeto até o momento. Além disso, é inte-
ressante que eles compreendam a importância da identificação de 
padrões para criar blocos personalizados. Esses blocos são funções 
que permitem definir um conjunto de comandos, e isso permite que 
nosso código fique mais organizado.
4
Nossas cartas já possuem dois tipos de acessórios: os que aparecem 
atrás das personagens criadas e os que aparecem na frente delas. 
Porém, os acessórios da frente ainda não influenciam nos valores dos 
atributos. Nesta aula, ajustaremos isso utilizando padrões já vistos.
Começaremos selecionando o Palco, localizado no canto inferior direito 
da tela: .
Vamos analisar o seguinte script na Área de Código:
Professor, olha para o script, pergunte aos estudantes quais blocos realizam as mudanças dos valores dos atributos da 
nossa carta. É esperado que eles indiquem os blocos laranjas que adicionam valores às variáveis minha inteligência, minha 
velocidade e minha força, com base nas fantasias do ator acessórios atrás.
5
Repare que, quando iniciamos a rodada, existem três blocos que 
adicionam valores às variáveis dos atributos da nossa carta:
Precisaremos utilizar esse mesmo padrão de conjunto de blocos para 
indicar as fantasias do ator acessórios frente e produzir alterações nos 
atributos das cartas.
Sendo assim, adicionaremos, da seção 
Variáveis, o bloco ao 
script. Em seguida, selecionaremos a opão 
minha inteligência no menu suspenso desse 
bloco, como mostra a imagem ao lado.
6
Feito isso, iremos na seção Operadores e arrastaremos o operador 
de multiplicação, , para a lacuna do bloco que estamos 
configurando, preenchendo a primeira lacuna desse operador com o 
número 3. Seu bloco ficará como mostrado a seguir:
Para preencher a segunda lacuna do operador, iremos na seção Sensores 
e arrastaremos o bloco , selecionando a opção 
acessórios frente no segundo menu suspenso desse bloco. Em seguida, 
na primeira lacuna do bloco, selecionaremos a opção nº da fantasia, 
como mostra a imagem a seguir:
7
Assim, teremos configurado o seguinte conjunto de blocos para 
mudar a variável minha inteligência com base nas fantasias do ator 
acessórios frente.
Podemos reparar que esse bloco é igual ao bloco criado anteriormente, 
porém, o bloco sensor informa a fantasia do ator acessórios frente, e 
não do ator acessórios atrás. Tendo identificado esse padrão, podemos 
criar uma função para não precisarmos refazer todos esses blocos 
repetidas vezes.
No Scratch, as funções são feitas na seção Meus Blocos. Assim, para criar 
uma nova função, na seção Meus Blocos, clicaremos em . 
Na caixa que se abrir, nomearemos esse bloco como meus acessórios: 
Assim como as funções em matemática, as funções na programação são nomeadas, definidas e possuem um retorno ao serem utilizadas. As funções 
em programação servem para “encapsular” um código que poderá ser utilizado em qualquer momento do programa. Elas também ajudam a deixar 
nosso código mais organizado e podem ser usadas sem precisar ser modificadas. Usando nossa situação como exemplo, iremos criar uma função e 
defini-la com base no padrão identificado para mudar o valor das variáveis dos atributos. Desse modo, um único bloco no script irá executar as mu-
danças nos atributos com base no acessório de trás e outro bloco irá mudar os três atributos com base na fantasia do acessório da frente.
8
Essa função terá como objetivo adicionar valores às variáveis minha 
inteligência, minha força e minha velocidade. Para fazer isso, ela deverá 
ter como parâmetro uma entrada que possa diferenciar, por exemplo, 
o acessório da frente e o de trás. Então, clicaremos em Adicionar uma 
entrada numérica ou texto e nomearemos esse parâmetro como 
número da fantasia. Feito isso, clicaremos no botão OK.
9
Repare que, na Área de Código, o bloco surgirá. 
Ele será utilizado para definir a função meus acessórios. Organize sua 
área de códigos e deixe esse bloco próximo ao script que recebe o 
comando de iniciar a rodada.
Em seguida, arrastaremos os quatro últimos blocos de adicione desse 
script para baixo do bloco que acabamos de criar. O script da sua função 
ficará assim:
10
Feito isso, deletaremos o último bloco que criamos nesta aula, afinal, 
esse bloco possui o mesmo padrão que o primeiro e, portanto, não é 
mais necessário.
Em seguida, substituiremos os sensores pelo parâmetro número da 
fantasia. Portanto, exclua os blocos de sensores (azuis). Para que a 
entrada número da fantasia assuma os valores do sensor e informe 
o número da fantasia dos atores acessórios frente e acessórios atrás,
clicaremos em , presente no bloco da função que
acabamos de criar, e arrastaremos quatro vezes esse parâmetro para 
dentro das quatro lacunas nas quais antes estavam os blocos de 
sensores que acabamos de excluir.
Professor, acompanhe o processo de exclusão dos blocos juntamente com os estudantes, verificando se eles compreendem, 
de fato, porque essas exclusões estão sendo feitas. Espera-se que os estudantes percebam que, pelo fato de termos criado uma 
função, estamos refatorando o código de maneira a deixá-lo otimizado, o que é considerado uma boa prática de programação.
11
Seu script deve ficar da seguinte maneira:
Agora, precisamos pensar em quando iremos utilizar essa função, ou 
seja, quando iremos chamar essa função tendo como parâmetro a 
fantasia do ator acessórios atrás.
Professor, solicite sugestões dos estudantes sobre em qual script deverá ser chamada essa função. Espera-se que eles respondam que essa função 
deverá ser chamada na sequência do script que é executado quando inicia a rodada. Além disso, é importante que eles compreendam que, quando essa 
função for chamada, serão executado todos os comandos rosa que definem a função meus acessórios. 
12
Para isso, arrastaremos o bloco , da seção Meus Blocos, 
para o final do script que recebe o início da rodada. A lacuna em branco 
será justamente o valor de número da fantasia que utilizamos quando 
definimos a função.
Após isso, da seção Sensores, arrastaremos o sensor 
para a área de código, colocando-o próximo ao próximo ao bloco 
.
Em seguida, selecionaremos a opção acessórios atrás no segundo menu 
suspenso desse bloco, como mostra a imagem a seguir:
13
Feitoisso, clicaremos no primeiro menu suspenso do mesmo bloco e 
selecionaremos a opção no da fantasia
Por fim, arrastaremos o bloco sensor devidamente configurado para 
dentro da lacuna do bloco meus acessórios.
Assim, quando chamarmos a função meus acessórios, todos os blocos 
rosas (número da fantasia) assumirão os valores da fantasia do ator 
acessórios atrás e adicionarão pontos aos atributos da nossa carta.
14
Em seguida, precisaremos chamar novamente uma outra função, porém, ela 
deverá ter como parâmetro o número da fantasia do ator acessórios frente.
Para isso, iremos na seção Meus Blocos e arrastaremos mais uma vez o 
bloco , colocando-o ao final do script, como mostra a 
imagem a seguir:
Novamente, da seção Sensores, arrastaremos o sensor 
 para a Área de Código e o configuraremos 
para que ele chame as fantasias do ator acessórios frente. Feito isso, 
arrastaremos o sensor para a lacuna do bloco meus acessórios que 
acabamos de adicionar. Feito isso, o conjunto de blocos ficará da 
seguinte forma:
15
Teremos, então, os dois blocos que chamam a função meus acessórios e 
o script que define essa função da seguinte maneira:
Ao testar nosso programa clicando na bandeira verde acima do palco, 
podemos perceber que as fantasias que estão na frente da personagem 
também somam valores aos atributos da nossa carta. Porém, quando 
escolhemos algum atributo, o acessório da frente da carta do oponente 
não agrega nenhum valor ainda.
É importante que os estudantes percebam que, quando o bloco meus acessórios for executado, ele executará tam-
bém os três blocos que adicionam valores para as variáveis minha inteligência, minha força e minha velocidade. 
Além disso, todos os blocos número da fantasia assumirão os valores do sensor vinculado ao ator acessórios atrás. 
Por sua vez, quando o bloco da função meus acessórios for executado, ele também irá executar os três blocos que adicionam valores para as variáveis 
minha inteligência, minha força e minha velocidade. Porém, todos os blocos rosas número da fantasia assumirão os valores do sensor vinculado ao ator 
acessórios frente.
16
Em seguida, precisamos identificar o padrão que utilizamos para que os 
acessórios somassem valores na carta do oponente. 
Repare que, no script que recebe a informação de criar clones, temos os 
blocos que adicionam valores às variáveis inteligência oponente, força 
oponente e velocidade oponente:
Precisaremos, então, criar um novo bloco. Para isso, iremos na seção 
Meus Blocos e clicaremos em .
Nosso objetivo é criar o mesmo sistema de pontuação que fizemos com 
a nossa carta para a carta do oponente. Portanto, essa função substituirá 
os blocos que adicionam valores às variáveis de atributo do oponente, 
tendo como parâmetro as variáveis que criamos para armazenar a 
informação do clone criado para a carta do oponente. Nomearemos esse 
bloco como acessórios do oponente e adicionaremos a ele uma entrada 
chamada número de fantasia. O bloco criado ficará assim:
17
Observe que, na Área de Códigos, surgiu o bloco 
. 
Deixe esse bloco próximo ao script que recebe a mensagem para criar 
clones para que possamos configurar os scripts. Agora, quando os clones 
forem criados, teremos uma função acessórios do oponente. 
Em seguida, precisamos identificar quais códigos utilizaremos para 
definir essa função.
Professor, pergunte aos estudantes quais blocos definirão a função acessório do oponente. Espera-se que eles respondam que, para definir essa 
função, deverão ser utilizados os três blocos adicione do script que recebe a mensagem para criar os clones. Verifique se todos eles compreenderam 
essa lógica.
18
Para definir a função criada, precisaremos dos seguintes blocos, que 
estão no script que começa com :
Vamos separar esses três blocos do seu script original e, em seguida, vamos 
conectá-los ao bloco da função acessórios oponente, como mostra a 
imagem a seguir:
19
Em seguida, da seção Meus Blocos, arrastaremos o bloco 
 para o lugar em que estavam os três blocos 
de adicione, que acabamos de tirar do script que começa com 
 .
Diferentemente do que acontece com as informações da nossa carta, 
para termos a informação da fantasia dos clones não utilizamos sensores, 
mas sim as variáveis para armazenar essas informações. 
Por isso, utilizaremos a variável no bloco de função 
que acabamos de adicionar, arrastando a variável em questão para a 
lacuna do bloco de função, que ficara como mostra a imagem:
Professor, caso os estudantes se deparem com algum bug e não consigam localizar o bloco acessórios do opoente, 
oriente-os a clicar em algum ator do nosso programa e, em seguida, clicar novamente no Palco; fazendo isso, os blocos da 
seção Meus Blocos devem estar atualizados.
20
Para que a entrada número da fantasia assuma os valores da variável 
oponente fantasia atrás, que informa o número da fantasia dos clones 
do ator acessórios atrás, clicaremos em , no bloco de 
função, e arrastaremos essa entrada para a segunda lacuna do operador 
de multiplicação, como vemos a seguir:
Em seguida, substituiremos todas as outras variáveis desse script pelo 
bloco . 
Começaremos deletando essas variáveis arrastando-as para o lado 
esquerdo, como mostra a imagem:
21
Feitas as substituições, teremos o seguinte script:
Agora, precisamos criar um novo bloco para os acessórios da frente. 
Para isso, iremos na seção Meus Blocos e arrastaremos mais uma vez 
o bloco , colocando-o no script que começa com 
. Então, teremos o seguinte:
22
Feito isso, pegaremos a variável , na seção Variáveis, e 
a arrastaremos para a lacuna do bloco que acabamos de adicionar. Por 
último, não podemos esquecer de conectar o restante do código que 
havíamos separado para conseguirmos configurar nossa função, como 
mostra a imagem a seguir.
23
Feito isso, observe a diferença entre as duas funções:
Perceba que a única diferença entre elas é que, em vez de alterar as 
variáveis dos atributos da minha carta, a função acessórios do oponente 
muda as variáveis dos atributos da carta do oponente.
Ao clicar na bandeira verde acima do palco para testar nosso programa, 
podemos perceber que estão sendo somados valores de acordo com 
os acessórios da frente e de trás, tanto na nossa carta como na carta 
do oponente.
 Desafio
24
Nesta aula, utilizamos blocos personalizados para não precisarmos 
ficarmos criando códigos repetidos que possuem os mesmos padrões. 
Sendo assim, criamos dois blocos personalizados para fazer funções 
que alterem os valores dos atributos da nossa carta e da carta do 
oponente. Essas funções recebem valores dos números das fantasias, 
tanto dos atores acessórios frente e acessórios trás, como também das 
variáveis que armazenam o valor das fantasias de seus clones. 
Diante disso, seu desafio será identificar um padrão na criação dos 
clones dos atores cabeça, corpo e pé, e criar um bloco com uma 
função que execute esse padrão em todos os atores.
CLIQUE AQUI PARA AVALIAR ESTE MATERIAL
É esperado que os estudantes identifiquem padrões já utilizados e criem novos blocos personalizados. Ao realizar essa atividade, eles podem 
desenvolver a capacidade de identificar padrões e criar funções para deixar seus códigos mais organizados. Também é esperado que eles per-
cebam que esses três atores, quando começam como um clone, vão para a carta do oponente, mudam a variável que dará um número aleatório, 
mudam a fantasia para o valor dessa variável, esperam o valor da variável “tempo” em segundos e apagam os clones. Então, ao criar um bloco 
personalizado, não há necessidade de adicionar uma entrada para valores, porém, esse bloco deve ser definido com todos os cindo 
blocos do script que começa com “quando eu começar como um clone”. Em seguida, é preciso substituir 
esses blocos pelo bloco personalizado criado.
https://docs.google.com/forms/d/e/1FAIpQLSdj6D4ophEVDczMqZKzLL0_9vCK5C2UoSKSxaMr-1os8-B8-A/viewform

Continue navegando