You are on page 1of 24

Universidade do Minho | Instituto de Educao

Mestrados em Ensino Bsico e Secundrio

Unidade Curricular

Ensino de Programao

Relatrio de implementao de projeto em Scratch


Gato vs Corvo

Docente: Francisco Moura


Discente: Rolando Barradas, pg26077
2013-2014

Universidade do Minho | Instituto de Educao


Mestrados em Ensino - Bsico e Secundrio

Contedo
1. Funcionamento do jogo ............................................................................................................ 3
2. Escolhas tcnicas ....................................................................................................................... 5
2.1 O Stage ................................................................................................................................ 5
2.2 Gerao dos labirintos ........................................................................................................ 6
2.2.1 Labirintos Fixos ............................................................................................................. 6
2.2.2 Labirintos aleatrios ..................................................................................................... 8
2.3 Colocao inicial do Tesouro e das personagens ................................................................ 9
2.3.1 O Tesouro e as estruturas de dados............................................................................. 9
2.3.2 O Gato e o Corvo ........................................................................................................ 11
2.4 Aleatoriedade de aparecimento e colocao ................................................................... 12
2.4.1 Sprite do Co .............................................................................................................. 12
2.4.2 Sprite do pacote de Leite ........................................................................................... 13
2.5 Simulao do movimento das sprites ............................................................................... 14
2.6 Movimento manual da sprite do Gato .............................................................................. 15
2.7.1 Representao do labirinto com Matrizes ................................................................. 15
2.7.2 Progresso automtica............................................................................................... 17
2.8 Dificuldade/velocidade crescente ..................................................................................... 18
2.9 Pausa ................................................................................................................................. 18
2.10 Fim do Nvel..................................................................................................................... 20
2.10.1 Vitria do Gato ......................................................................................................... 20
2.10.2 Vitria do Corvo ....................................................................................................... 20
2.11 Fim do jogo ...................................................................................................................... 21
3. Concluses............................................................................................................................... 22

Gato vs Corvo (implementao em Scratch), Rolando Barradas

Universidade do Minho | Instituto de Educao


Mestrados em Ensino - Bsico e Secundrio

1. Funcionamento do jogo
O jogo desenvolvido desenrola-se num labirinto de 7x7 clulas (ou 15x15, se contarmos
as clulas das paredes). Dependendo do modo de jogo que se escolher, fixo ou auto,
podemos jogar em 20 labirintos diferentes, de igual dificuldade mas com ordem gerada
aleatoriamente, ou em labirintos gerados de forma completamente aleatria.

Figura 1 - Alavanca de seleo do modo de gerao do labirinto

Como personagens (sprites do Scratch) o jogo conta com o Gato, personagem controlada
pelo jogador e o Corvo, personagem controlada pelo computador. Largados no labirinto
competem pelo Tesouro que tambm l se encontra, de valor gerado aleatoriamente entre
1 e 9.

Figura 2 - Sprites do Gato e do Corvo

Como obstculos, o Gato tem pelo caminho um co malvado e imprevisvel (que


consegue saltar por cima das paredes do labirinto e se movimenta aleatoriamente) e que
faz com que, em caso de cruzamento, o valor do Tesouro seja reduzido em 1 ponto.
Por outro lado, h tambm um Pacote de leite que tambm aparece aleatoriamente e que,
caso o Gato o encontre, o prmio cresce 1 ponto, at aos 9 de valor mximo.
Tanto a posio inicial do gato no labirinto, como a posio do tesouro so geradas
aleatoriamente. Do mesmo modo gerada a posio e movimento do co e do pacote de
leite.

Gato vs Corvo (implementao em Scratch), Rolando Barradas

Universidade do Minho | Instituto de Educao


Mestrados em Ensino - Bsico e Secundrio

A frequncia, durao e velocidade de movimento (no caso do co), esto relacionados


com o Nvel em que nos encontramos no jogo sendo que o pacote de leite fica visvel por
mais tempo e o co anda mais lentamente nos nveis mais baixos.

Figura 3 - Sprites do Co, Pacote de Leite e do Tesouro

O objetivo chegarmos ao tesouro antes do Corvo para progredirmos no nvel,


terminando no nvel 20 com mais pontuao que o Corvo. Caso seja o Corvo a chegar
primeiro, os pontos do tesouro passam para ele e recomea novo jogo, no mesmo labirinto
e nvel.
A dificuldade do jogo torna-se acrescida medida que os nveis aumentam, uma vez que
tanto a velocidade de progresso do Corvo como a do Co malvado tambm aumentam.
possvel no ecr inicial do jogo escolher em que dificuldade queremos comear o jogo...
Fcil (nvel 1), Mdio (Nvel 10) e Difcil (Nvel 15).

Figura 4 - Seletor de dificuldade do jogo

Caso seja o Corvo a ganhar 3 jogos seguidos, h, para o Gato uma penalizao de 2
pontos, que passam para o Corvo.
A Tecla de Espao serve para pausar o jogo. Carregando novamente no Espao, iniciado
um contador de 3 segundos, ao fim do qual o jogo recomea.

Figura 5 - Sinal de recomeo do jogo, com contagem decrescente.

Gato vs Corvo (implementao em Scratch), Rolando Barradas

Universidade do Minho | Instituto de Educao


Mestrados em Ensino - Bsico e Secundrio

Para auxiliar o jogador a perceber o jogo, h um ecr de ajuda, acessvel atravs do


do ecr inicial.

Figura 6 - Ecr de instrues

2. Escolhas tcnicas
2.1 O Stage
O Stage composto, neste jogo, por quatro backdrops (fundos).
Esses fundos vo sendo substitudos, medida que o jogador progride dentro do jogo.
Comea pelo menu inicial, depois, h um outro que a imagem de fundo para os labirintos
fixos, tambm para o ecr de instrues e um para quando o jogador consegue ganhar o
nvel 20 e termina o jogo.

Figura 7 - Exemplos de Backdrops do Stage

Gato vs Corvo (implementao em Scratch), Rolando Barradas

Universidade do Minho | Instituto de Educao


Mestrados em Ensino - Bsico e Secundrio

Para alm da funo de servir de fundo, o objeto Stage tambm utilizado como objeto
de inicializao de algumas das estruturas de dados do jogo. atravs das suas Scripts
que o jogo inicia, entra e sai de pausa (descrito adiante) e que termina. Para alm destas
funes, tambm no programa de inicializao do Stage que gerada a ordem aleatria
dos labirintos, a ser utilizada se usarmos o modo de jogo Fixo.

Figura 8 - Excerto do programa do Stage

2.2 Gerao dos labirintos


2.2.1 Labirintos Fixos
Os labirintos fixos foram a minha primeira escolha.
Jogos como o Pac-Man foram sucessos durante muitos anos, sempre com o mesmo labirinto
Para no me limitar a um s desenho, optei por gerar, externamente ao Scratch, vinte labirintos
diferentes, mas sempre com o mesmo nmero de clulas, para que o algoritmo de
movimentao da sprite do Corvo (descrito mais adiante) no tivesse que sofrer alteraes.

Gato vs Corvo (implementao em Scratch), Rolando Barradas

Universidade do Minho | Instituto de Educao


Mestrados em Ensino - Bsico e Secundrio

Figura 9 - Exemplo de labirinto pr-gerado.

Como j anteriormente foi referido, apesar de o desenho dos labirintos ser fixo, o jogo
dispe de vinte desenhos diferentes que so aleatoriamente colocados em cada um dos
vinte nveis do jogo. De forma a garantir que durante um jogo nenhum desenho seria
repetido, foi utilizada uma lista de nmeros aleatrios entre um e vinte e os desenhos so
colocados no ecr seguindo essa lista.
O Stage o responsvel pela criao inicial da lista que ser utilizada posteriormente pela
sprite Labirinto. Essa lista, com vinte posies (para os vinte nveis do jogo), conter o
nmero do labirinto que corresponde a esse nvel.
Numero do labirinto a utilizar = Labirinto[nvel]

Figura 10 - Excerto do programa do Stage que gera a lista de valores aleatrios, sem repeties

Gato vs Corvo (implementao em Scratch), Rolando Barradas

Universidade do Minho | Instituto de Educao


Mestrados em Ensino - Bsico e Secundrio

A sprite Labirinto foi criada com vinte costumes que so, nada mais que, os vinte labirintos
diferentes que o jogo dispe. Quando recebe um sinal de que houve uma mudana de nvel, a
sprite executa o programa que faz com que o seu costume tenha o nmero que consta da lista
aleatria anteriormente gerada.

Figura 11 - Programa da sprite Labirinto, responsvel pela mudana do desenho, sempre que h uma mudana de
nvel no jogo

2.2.2 Labirintos aleatrios


Os labirintos aleatrios foram s mais tarde colocados no projeto.
No foi particularmente complicado, uma vez que h vrios algoritmos de gerao de labirintos
disponveis para consulta nos exemplos do Scratch. A maior dificuldade surgiu na adaptao
desses algoritmos e sprites associadas dimenso do resto do jogo. Como as clulas dos
labirintos que criei eram retangulares e no quadradas como em todos os algoritmos
encontrados, o trabalho de adaptao foi mais complicado e, apesar da aleatoriedade acrescida,
graficamente o resultado final no foi to apelativo.
O facto de a Pen no Scratch ser de formato circular e no quadrada dificultou um pouco essa
adaptao.
O resultado final , de qualquer forma, jogvel e est a ser utilizado todo o resto do motor de
jogo implementado para os labirintos fixos.

Gato vs Corvo (implementao em Scratch), Rolando Barradas

Universidade do Minho | Instituto de Educao


Mestrados em Ensino - Bsico e Secundrio

Figura 12 - Exemplo de labirinto gerado automaticamente.

Em termos de funcionamento, o programa de gerao de labirintos automticos


composto por dois ciclos que percorrem as 49 clulas do labirinto e, aleatoriamente
escolhe uma direo a percorer. Para tal, utilizado um costume que contm um labirinto
com as clulas todas fechadas que impresso no fundo. Posteriormente, uma outra sprite
de criao do labirinto percorre essa imagem, limpando paredes medida que o faz. Dessa
forma, quando so completados os 49 ciclos, o labirinto fica concludo.

2.3 Colocao inicial do Tesouro e das personagens


2.3.1 O Tesouro e as estruturas de dados
Todo o funcionamento do jogo assenta no envio de sinais de umas sprites para as outras
atravs dos broadcasts que o Scratch disponibiliza.
Utilizando essa funcionalidade, o Stage envia um sinal que recebido pela sprite do
labirinto e que, por sua vez, quando o labirinto est pronto, envia o sinal labOK, recebido
pela sprite do Tesouro.
A utilizao dos brodcasts permite sequenciar algumas partes do programa.
Especificamente no caso do Tesouro, sempre que h uma gerao de um novo labirinto,
a sprite do Tesouro recebe, ento, o sinal de que o labirinto est pronto e executa o cdigo
abaixo.
Gato vs Corvo (implementao em Scratch), Rolando Barradas

Universidade do Minho | Instituto de Educao


Mestrados em Ensino - Bsico e Secundrio

Figura 13 - Excerto do cdigo da sprite Tesouro, responsvel pela colocao aleatria no labirinto

A primeira coisa que o cdigo faz escolher aleatoriamente o valor do Tesouro para
aquela jogada. A sprite do Tesouro tem nove costumes diferentes que representam os
nove valores que o tesouro pode ter pelo que, a operao seguinte ser atribuir sprite o
costume correspondente ao valor do Tesouro.
De seguida necessrio colocar o Tesouro no Labirinto. De forma simplificada, o
processo gera aleatoriamente uma linha e uma coluna, armazenadas em variveis, fazendo
sempre uma verificao, para garantir que o Tesouro no fica por cima de uma das
paredes do labirinto. Caso essas coordenadas o coloquem por cima de uma parede, so
geradas novas coordenadas, at que seja colocado numa zona acessvel.
tambm a sprite do Tesouro a responsvel por criar a estrutura de dados que, mais tarde,
ser utilizada pelo Corvo para tentar encontrar o Tesouro. Utilizando as listas que o
Scratch disponibiliza, a sprite cria quinze listas, cada uma representando uma coluna do
labirinto (paredes e tuneis) com o valor absoluto da distncia, em posies, daquela
posio posio do Tesouro. As clulas em que possivelmente estejam paredes so
preenchidas com o valor zero, cabendo depois ao Corvo, descobrir se so paredes ou no.
Gato vs Corvo (implementao em Scratch), Rolando Barradas

10

Universidade do Minho | Instituto de Educao


Mestrados em Ensino - Bsico e Secundrio

Figura 14 - Excerto do programa do Tesouro, responsvel pelo preenchimento das estruturas de dados de orientao
no labirinto

2.3.2 O Gato e o Corvo


A colocao das sprites do Gato e do Corvo , de certo modo semelhante.
A do Gato a mais simples, uma vez que os seus movimentos so controlados pelo
utilizador que tudo v e o consegue guiar, somente necessrio gerar aleatoriamente umas
coordenadas e garantir que o gato no fica em cima de nenhuma parede. Adicionalmente,
tambm colocada a garantia que a distncia da sprite do Gato do tesouro no inferior
a 250 pontos, por forma a no facilitar em demasia o jogo.

Figura 15 - Programa de colocao da sprite do Gato

Gato vs Corvo (implementao em Scratch), Rolando Barradas

11

Universidade do Minho | Instituto de Educao


Mestrados em Ensino - Bsico e Secundrio

O programa de colocao da sprite do Corvo ligeiramente mais complexo, uma vez que
necessrio, para o sistema de navegao implementado para esta sprite, saber as
coordenadas de localizao em termos de clulas (15x15). Para isso, semelhana do
programa de colocao da sprite do tesouro, os valores gerados aleatoriamente so entre
um e sete, uma vez que, nestes labirintos s h sete linhas e sete coluna navegveis. Tal
como na sprite do Gato, feita uma verificao para garantir que o Corvo no fica em
cima de nenhuma parede e que a distncia mnima ao Tesouro tambm garantida.

Figura 16 - Programa de colocao da sprite do Corvo no labirinto

2.4 Aleatoriedade de aparecimento e colocao


2.4.1 Sprite do Co
O movimento da sprite do Co feito de forma diferente do das outras sprites. Em termos gerais,
a sprite est visvel por um tempo aleatrio, indexado ao nvel em que o jogo se encontra. Nesse
tempo em que est visvel, a sprite desloca-se em direes aleatrias at encontrar um local em
que no toque nas paredes do labirinto. A velocidade do seu movimento tambm indexada ao
nvel do jogo o que faz com que em nveis mais altos se desloque mais rapidamente. Para que o
seu movimento seja visvel, utilizada no cdigo a funo glide.

Gato vs Corvo (implementao em Scratch), Rolando Barradas

12

Universidade do Minho | Instituto de Educao


Mestrados em Ensino - Bsico e Secundrio

Figura 17 - Cdigo responsvel pelo aparecimento e movimento da sprite do Co

2.4.2 Sprite do pacote de Leite


Ligeiramente diferente da sprite do Co, a sprite do Pacote de Leite, apesar de tambm
ser colocada aleatoriamente no espao, tem a particulariedade de lhe ser exigido que
esteja a uma certa distncia da sprite do Tesouro. Tambm o tempo que est visvel e a
frequncia com que aparece no jogo so gerados aleatoriamente e indexados ao nvel em
que o jogo se encontra.

Figura 18 - Cdigo responsvel pelo aparecimento da sprite do Pacote de Leite

Gato vs Corvo (implementao em Scratch), Rolando Barradas

13

Universidade do Minho | Instituto de Educao


Mestrados em Ensino - Bsico e Secundrio

2.5 Simulao do movimento das sprites


O movimento das sprites do Gato, do Corvo e do Co simulado atravs da utilizao de vrios
costumes em cada uma dessas sprites.

Figura 19 Alguns costumes da sprite do Gato

Os programas responsveis pela simulao do movimento das sprites do Co e do Corvo so


praticamente iguais, tratando-se somente de um ciclo que altera o costume de tempos a
tempos, sendo esse tempo indexado ao nvel do jogo, para dar a sensao de uma velocidade
tanto mais acelerada quanto mais alto for o nvel.

Figura 20 - Cdigo que cria o bater de asas da sprite Corvo.

O programa que simula o movimento da sprite do Gato ligeiramente diferente, uma vez que o
Gato s se pode movimentar quando o utilizador carrega numa qualquer seta. Tendo em conta
esse facto e, de forma a minimizar a quantidade de cdigo, sempre que o utilizador carrega
numa seta, para alm das verificaes abaixo descritas, enviado um broadcast, recebido pela
prpria sprite, que, a sim, faz a alterao do costume. Para tornar um pouco mais realista o
movimento do Gato, foram criados dois programas, um para os movimentos para o lado
esquerdo e outro para todos os restantes.

Gato vs Corvo (implementao em Scratch), Rolando Barradas

14

Universidade do Minho | Instituto de Educao


Mestrados em Ensino - Bsico e Secundrio

Figura 21 - Cdigo que simula o movimento da sprite do Gato

2.6 Movimento manual da sprite do Gato


O movimento da sprite do Gato feito utilizando eventos que so iniciados sempre que
o utilizador carrega nas teclas de direo. Sempre que uma tecla carregada, feito um
movimento da sprite na direo da seta carregada. Se houver contacto da sprite com a cor
azul (cor em que o labirinto est desenhado), significa que o gato encontrou uma parede.
Nesse caso, feito um movimento no sentido contrrio, retornando o Gato posio em
que estava.
Todos os programas que controlam o movimento tm em conta o estado da varivel
Pausa, de modo que no haja qualquer movimento quando o programa est em pausa.
De notar que o broadcast emitido quando o Gato se desloca para a esquerda diferente
dos restantes, para que a representao do movimento do Gato seja diferente, como j
atrs referido.

Figura 22 - Programa da sprite do Gato que reage ao premir das teclas de direo

2.7 Movimento automtico da sprite do Corvo


2.7.1 Representao do labirinto com Matrizes
A progresso da sprite do Corvo feita utilizando uma matriz de caminhos pesados.
Uma vez que o Scratch no dispe de nenhuma estrutura de dados semelhante a uma
matriz, o sistema de movimentao foi implementado simulando uma matriz atravs da
Gato vs Corvo (implementao em Scratch), Rolando Barradas

15

Universidade do Minho | Instituto de Educao


Mestrados em Ensino - Bsico e Secundrio

utilizao de vrias listas (quinze, na prtica, uma para cada coluna da matriz do
labirinto). Em cada clula, est armazenada a distncia daquela clula ao Tesouro.
Para facilitar o trabalho com a matriz, foram criados dois procedimentos no Scratch, um
que permite obter o valor armazenado numa determinada posio e outro que permite
atribuir um valor ou incrementar uma determinada posio.
Os contedos iniciais da matriz so preenchidos pela sprite do Tesouro da forma j
descrita anteriormente.

Figura 23 - Extrato do procedimento alteraMatriz implementado para trabalhar com matrizes. Utilizado pela sprite
Corvo na sua descoberta do labirinto.

Figura 24 - Extrato do procedimento valorMatriz implementado para trabalhar com matrizes. Utilizado pela sprite
Corvo na sua descoberta do labirinto.

Gato vs Corvo (implementao em Scratch), Rolando Barradas

16

Universidade do Minho | Instituto de Educao


Mestrados em Ensino - Bsico e Secundrio

2.7.2 Progresso automtica


A progresso do Corvo no labirinto feita atravs da navegao na matriz atrs referida.
Os pesos de cada uma das clulas livres est j preenchido mas as clulas em que poder
haver paredes so detetadas medida que o Corvo vai progredindo no labirinto. Com base
nessas ponderaes e no caminho j percorrido, o Corvo vai fazendo as suas decises de
caminhos...
Em termos da progresso automtica do Corvo, o algoritmo poder ser mais otimizado
futuramente. Neste momento h situaes em que o Corvo est relativamente perto do
Prmio e acaba por voltar atrs e s mais tarde l chegar...

Figura 25 - Excerto do cdigo do movimento da sprite do Corvo

Utilizando sinalizaes (broadcasts) de forma a permitir agrupar blocos de cdigo, a


sprite do Corvo progride analisando as clulas adjacentes e calculando o caminho mnimo
para o destino. Quando descobre as paredes sua volta e o caminho com menor peso,
desloca-se para essa posio.
Este processo repetido at encontrar a sprite do Tesouro ou, em alternativa, at a sprite
do Gato o fazer.

Gato vs Corvo (implementao em Scratch), Rolando Barradas

17

Universidade do Minho | Instituto de Educao


Mestrados em Ensino - Bsico e Secundrio

Figura 26 - Programas que encontram o caminho mais curto e alteram as coordenadas da sprite do Corvo

2.8 Dificuldade/velocidade crescente


De forma relativamente simples, as sprites que lutam contra a personagem do Gato tm o seu
movimento condicionado de modo que, quanto mais elevado for o nvel, mais rapidamente se
movimentem. Isso conseguido adicionando uma pausa, de tempo inversamente proporcional
ao nvel do jogo.

Figura 27 - Excerto de cdigo que indexa os movimentos das sprites ao nvel do jogo

2.9 Pausa
A ordem de pausa no jogo recebida pelo Stage. Sempre que a tecla de espao recebida, o
contedo da varivel Pausa alterado para o valor um e emitido um broadcast de Pausa. Se a
tecla de espao for premida novamente, o valor da varivel passa novamente a zero e emitido
o broadcast de Fim de Pausa.

Gato vs Corvo (implementao em Scratch), Rolando Barradas

18

Universidade do Minho | Instituto de Educao


Mestrados em Ensino - Bsico e Secundrio

Figura 28 - Programa do Stage que recebe tecla de pausa

Quando a sprite que contm a imagem da pausa recebe o sinal de que foi iniciado um processo
de Pausa, altera o seu costume para uma imagem que tem o sinal de pausa ( || ). Uma vez
recebido o sinal de Fim de Pausa, h uma contagem decrescente, mostrada ao utilizador atravs
da mudana de costume da mesma sprite.

Figura 29 - Cdigo da sprite de Pausa

Todo o movimento das sprites do jogo est condicionado ao contedo da varivel Pausa. S
quando o seu contedo igual a zero (significa que o jogo no est em pausa) que os
movimentos das sprites so efetuados.

Figura 30 - Excerto do cdigo de movimento da sprite do Gato e a utilizao da varivel Pausa

Gato vs Corvo (implementao em Scratch), Rolando Barradas

19

Universidade do Minho | Instituto de Educao


Mestrados em Ensino - Bsico e Secundrio

2.10 Fim do Nvel


2.10.1 Vitria do Gato
Logo que se inicia o jogo, a sprite do Gato entra num ciclo infinito que controla o encontro com
a sprite do Tesouro. Caso encontre o Tesouro, os Pontos do nvel so somados aos Pontos Totais
do Gato. Para alm disso, a varivel que conta o nmero de vitrias consecutivas do Corvo
azerada e o nvel do jogo aumentado. De seguida emitido um broadcast de mudana de nvel
para gerao de um novo labirinto.

Figura 31 - Programa da sprite do Gato responsvel por controlar o toque na sprite do Tesouro

2.10.2 Vitria do Corvo


De forma semelhante ao programa do Gato, o programa da sprite do Corvo que controla o
encontrar do Tesouro, emite um broadcast a dizer que o Corvo ganhou esta jogada sempre
que a sprite encontra o Tesouro primeiro que a sprite do Gato. No caso de isto acontecer, os
pontos do tesouro so somados ao total de pontos do Corvo e a varivel de nmero de vitrias
consecutivas do Corvo incrementado. Caso estejamos a jogar com labirintos fixos, e uma vez
que no mudamos de nvel, o labirinto no mudado mas feita uma nova colocao das sprites
do Tesouro, Gato e Corvo. Se estivermos a jogar com labirintos gerados automaticamente,
gerado um novo labirinto, apesar de nos mantermos no mesmo nvel. Como penalizao para o
jogador, se o nmero de vitrias consecutivas do Corvo chegar s trs, dois pontos do jogador
passam para a conta do Corvo.

Gato vs Corvo (implementao em Scratch), Rolando Barradas

20

Universidade do Minho | Instituto de Educao


Mestrados em Ensino - Bsico e Secundrio

Figura 32 - Excerto do programa da sprite do Corvo, reponsvel pelo controlo do toque na sprite do Tesouro

2.11 Fim do jogo


O fim do jogo determinado quando o jogador vence o nvel 20.
Quando a sprite do Gato, a jogar no nvel 20, consegue alcanar o Tesouro, o valor da varivel
nvel passa para 21 e emitido um broadcast de mudana de nvel que vai ser recebido pela
sprite do Labirinto. Se o nvel for naquele momento o 21, emitido um broadcast de Fim de
Jogo.

Figura 33 - Programa da sprite Labirinto que gere a mudana de nvel e o fim do jogo

Gato vs Corvo (implementao em Scratch), Rolando Barradas

21

Universidade do Minho | Instituto de Educao


Mestrados em Ensino - Bsico e Secundrio

Esse broadcast recebido pelo Stage que altera o seu backdrop para uma imagem de fim de
jogo e para todos os programas em funcionamento.

Figura 34 - Programa do Stage que recebe o sinal de Fim de Jogo e para o programa

Figura 35 - Backdrop do Stage que indica o fim do jogo

3. Concluses
Concluses
Apesar de ser uma ferramenta de simples utilizao, o Scratch est longe de ser a ferramenta
ideal para a implementao deste gnero de projetos.
A falta de estruturas de dados convenientes e limitaes do gnero do formato da pen acrescem
dificuldades a um projeto desde logo relativamente complexo.
No deixa de ser, no entanto, uma ferramenta visual simples, fcil de utilizar e com a qual se
conseguem resultados rapidamente.

Gato vs Corvo (implementao em Scratch), Rolando Barradas

22

Universidade do Minho | Instituto de Educao


Mestrados em Ensino - Bsico e Secundrio

ndice de Figuras
Figura 1 - Alavanca de seleo do modo de gerao do labirinto ................................................ 3
Figura 2 - Sprites do Gato e do Corvo ........................................................................................... 3
Figura 3 - Sprites do Co, Pacote de Leite e do Tesouro ............................................................... 4
Figura 4 - Seletor de dificuldade do jogo ...................................................................................... 4
Figura 5 - Sinal de recomeo do jogo, com contagem decrescente. ............................................ 4
Figura 6 - Ecr de instrues ......................................................................................................... 5
Figura 7 - Exemplos de Backdrops do Stage.................................................................................. 5
Figura 8 - Excerto do programa do Stage ...................................................................................... 6
Figura 9 - Exemplo de labirinto pr-gerado. ................................................................................. 7
Figura 10 - Excerto do programa do Stage que gera a lista de valores aleatrios, sem
repeties...................................................................................................................................... 7
Figura 11 - Programa da sprite Labirinto, responsvel pela mudana do desenho, sempre que
h uma mudana de nvel no jogo ................................................................................................ 8
Figura 12 - Exemplo de labirinto gerado automaticamente. ........................................................ 9
Figura 13 - Excerto do cdigo da sprite Tesouro, responsvel pela colocao aleatria no
labirinto ....................................................................................................................................... 10
Figura 14 - Excerto do programa do Tesouro, responsvel pelo preenchimento das estruturas
de dados de orientao no labirinto ........................................................................................... 11
Figura 15 - Programa de colocao da sprite do Gato ................................................................ 11
Figura 16 - Programa de colocao da sprite do Corvo no labirinto........................................... 12
Figura 17 - Cdigo responsvel pelo aparecimento e movimento da sprite do Co .................. 13
Figura 18 - Cdigo responsvel pelo aparecimento da sprite do Pacote de Leite ...................... 13
Figura 19 Alguns costumes da sprite do Gato .......................................................................... 14
Figura 20 - Cdigo que cria o bater de asas da sprite Corvo. .................................................. 14
Figura 21 - Cdigo que simula o movimento da sprite do Gato ................................................. 15
Figura 22 - Programa da sprite do Gato que reage ao premir das teclas de direo ................. 15
Figura 23 - Extrato do procedimento alteraMatriz implementado para trabalhar com matrizes.
Utilizado pela sprite Corvo na sua descoberta do labirinto. ....................................................... 16
Figura 24 - Extrato do procedimento valorMatriz implementado para trabalhar com matrizes.
Utilizado pela sprite Corvo na sua descoberta do labirinto. ....................................................... 16
Figura 25 - Excerto do cdigo do movimento da sprite do Corvo .............................................. 17
Figura 26 - Programas que encontram o caminho mais curto e alteram as coordenadas da
sprite do Corvo ............................................................................................................................ 18
Figura 27 - Excerto de cdigo que indexa os movimentos das sprites ao nvel do jogo ............. 18
Figura 28 - Programa do Stage que recebe tecla de pausa ......................................................... 19
Figura 29 - Cdigo da sprite de Pausa ......................................................................................... 19
Figura 30 - Excerto do cdigo de movimento da sprite do Gato e a utilizao da varivel Pausa
..................................................................................................................................................... 19
Figura 31 - Programa da sprite do Gato responsvel por controlar o toque na sprite do Tesouro
..................................................................................................................................................... 20
Figura 32 - Excerto do programa da sprite do Corvo, reponsvel pelo controlo do toque na
sprite do Tesouro ........................................................................................................................ 21
Figura 33 - Programa da sprite Labirinto que gere a mudana de nvel e o fim do jogo ............ 21
Figura 34 - Programa do Stage que recebe o sinal de Fim de Jogo e para o programa .............. 22
Figura 35 - Backdrop do Stage que indica o fim do jogo ............................................................. 22
Gato vs Corvo (implementao em Scratch), Rolando Barradas

23

Universidade do Minho | Instituto de Educao


Mestrados em Ensino - Bsico e Secundrio

Gato vs Corvo (implementao em Scratch), Rolando Barradas

24

You might also like