O que são estruturas de repetição - Parte 3
Explorando os recursos de repetições
Para explorar os recursos de repetições iremos utilizar blocos de várias categorias diferentes e técnicas de produção de games, nosso primeiro exemplo tem como objetivo fazer nosso ator/objeto, denominado sprite, percorrer um quadrado.
Um sprite é um objeto gráfico bi ou tridimensional que se move em uma tela sem deixar traços de sua passagem.
Os sprites foram inventados originalmente como um método rápido de animação de várias imagens agrupadas numa tela.
Pseudocódigo:
Observe a animação ao lado, e analise os movimentos produzidos.
- precisamos posicionar nosso sprite no canto superior esquerdo do diplay;
- ao pressionar Botão A;
- repetir 4 vezes:
- mova o sprite quatro LED´s para direita;
- vire a direita por 90º;
Na animação abaixo, você pode acompanhar toda a etapa de construção do código, observe que não criamos uma variável, como fizemos em exemplos anteriores. Esta é uma funcionalidade do makecode bem interessante. No momento que adicionamos o bloco sprite mover por …, automaticamente foi criada a variável sprite, pois o makecode já “entendeu” que usaríamos ela no código. Bastou então apenas definir ela dentro do bloco no iniciar.
Câmera Lenta
Durante o uso do simulador você deve ter percebido que não é possível visualizar o movimento do sprite, pois o movimento é muito rápido. O makecode oferece uma opção muito útil que é a câmera lenta ou “slo-mo“. Ela pode ser ativada clicando no ícone do caracol no próprio simulador. A nova versão do makecode teve uma pequena mudança no acesso a esta funcionalidade, primeiro é necessário ativar o modo debug, em seguida é apresentado o ícone do caracol. Os dois exemplos estão apresentados abaixo.
Com esta opção ativada você consegue visualizar as diferentes linhas do seu código destacadas à medida que o programa é executado. Para visualizar novamente na velocidade regular, basta clicar novamente no ícone do caracol.
Controlando o tempo
Para que possamos ver o sprite se mover mesmo no modo “regular”, podemos adicionar um bloco para controlar o tempo entre um deslocamento e outro, na categoria Básico, mova um bloco pausa logo após cada vez que o sprite se move, dentro do bloco repetir … vezes. Isso dará aos nossos olhos a chance de vê-lo se mover.
Seu programa final deve ficar como na imagem ao lado.
Explore a possibilidade de usar repetições ou laços aninhados, que tal envolver o repetir … vezes já existente, por outro, como na figura ao lado… teremos a animação de percorrer quatro vezes o quadrado. É fundamental experimentar e testar várias possibilidades ampliar o uso dos blocos de programação.
Sprite viajante
Você já deve ter percebido que estamos a cada lição acumulando conhecimento de cada vez mais blocos e seus usos. O próximo exercício é a construção de programa que fará nosso sprite viajar por todo o display, da esquerda para a direita, isso aí, vamos fazer uma luz de LED se mover por toda a tela.
Os 25 LEDs na face do módulo micro:bit permitem formar a exibição de imagens, rolar texto… em vários níveis de brilho. Cada linha do LED (eixo x) e coluna (eixo y) é numerada de 0 a 4, para que cada LED possa ser identificado individualmente.
Conforme foi descrito, para realizar a ação de mover a luz por toda a tela da esquerda para a direita teremos o seguinte pseudocódigo:
ligar led x:0 y:0
pausa
desligar led x:0 y:0
pausa
ligar led x:1 y:0
pausa
desligar led x:1 y:0
pausa
ligar led x:2 y:0
pausa
desligar led x:2 y:0
pausa
ligar led x:3 y:0
pausa
desligar led x:3 y:0
pausa
ligar led x:4 y:0
pausa
desligar led x:4 y:0
pausa
adicione 1 ao valor de y
Observe que a maioria das instruções são as mesas, muita repetição, perfeito para utilizar um laço.
Neste trecho de código, qual a única variável que está mudando? A variável X, correto!
Quanto o valor da coordenada X muda de cada vez? 1!
O intervalo para a coordenada X é quatro.
Estamos quase lá, com a programação acima, nosso sprite percorre o eixo X da linha 0, agora precisamos adicionar mais alguns blocos para o deslocamento do eixo y.
Caso queira analisar, testar, remixar o código que fizemos aqui no HacKids Labs, estamos compartilhando logo abaixo. Seja curioso e divirta-se!!!