Upload
internet
View
106
Download
0
Embed Size (px)
Citation preview
Programando em AliceProgramando em AliceTim MargushTim Margush
Department of Computer ScienceDepartment of Computer ScienceUniversity of AkronUniversity of Akron
© 2006© 2006
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 22
Metodologia de ProgramaçãoMetodologia de Programação
Entender o problema e pensar em Entender o problema e pensar em uma solução.uma solução.
Cria um algoritmo para solucionar o Cria um algoritmo para solucionar o problemaproblema– StoryboardsStoryboards são úteis para ajudar a são úteis para ajudar a
entender a animaçãoentender a animação Implementar o algoritmoImplementar o algoritmo Testar e melhorarTestar e melhorar
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 33
Cenário (Problema)Cenário (Problema)
Descrever a animação desejadaDescrever a animação desejada– Cena inicialCena inicial
Objetos, posicionamento, etcObjetos, posicionamento, etc
– Mudanças na cenaMudanças na cenaMovimentação de Objetos, etcMovimentação de Objetos, etc
– Interações com a cenaInterações com a cenaComandos do usuário, eventos na animaçãoComandos do usuário, eventos na animação
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 44
Cenário (Exemplo)Cenário (Exemplo)
Um peixe e um barco estão na agua Um peixe e um barco estão na agua perto de uma pequena ilha. O peixe perto de uma pequena ilha. O peixe da uma volta em torno da ilha, da uma volta em torno da ilha, submerge e salta para frente. O submerge e salta para frente. O barco está a deriva perto da ilha. barco está a deriva perto da ilha. Uma arvore indica que o vento sopra Uma arvore indica que o vento sopra forte na ilha. forte na ilha.
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 55
Cenário (Exemplo) - ObjetosCenário (Exemplo) - Objetos
Uma cena no mar com Uma cena no mar com o ator principal sendo o ator principal sendo o peixe. O peixe nada o peixe. O peixe nada em volta da ilha. Uma em volta da ilha. Uma simples animação sem simples animação sem interação do usuário.interação do usuário.
ObjetosObjetos– Peixe, barco, arvore Peixe, barco, arvore
(animada)(animada)– IlhaIlha– MarMar
O O peixe e o barco estão no mar perto de uma ilha. O peixe circula a ilha, submerge e salta para frente. O barco está a deriva perto da ilha. Uma arvore indica que o vento sopra forte na ilha.
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 66
Cenário (Exemplo)- AçõesCenário (Exemplo)- Ações Peixe circula a ilhaPeixe circula a ilha Peixe submerge e salta Peixe submerge e salta
para frente. para frente. O barco está a deriva perto O barco está a deriva perto
da ilha.da ilha. Os galhos da arvore Os galhos da arvore
balançam balançam O peixe e o barto estão na O peixe e o barto estão na
água perto da ilha. O peixe água perto da ilha. O peixe circulacircula a ilha, a ilha, mergulamergula, , saltasalta para frente. O barco para frente. O barco está a está a derivaderiva. Uma arvore . Uma arvore indicaindica que o vento sopra que o vento sopra forte naforte na
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 77
StoryboardStoryboard
VisualVisual– Ilustra o posicionamento e movimento Ilustra o posicionamento e movimento
dos objetos com uma série de cenas. dos objetos com uma série de cenas. – Com a descrição de cada cena.Com a descrição de cada cena.
TextualTextual– Define as cenas de animaçãoDefine as cenas de animação– Descreve o roteiro das cenas passo a Descreve o roteiro das cenas passo a
passo. passo.
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 88
Visual StoryboardVisual Storyboard
Cena Inicial: Cena Inicial: – Ilha com uma Ilha com uma
arvorearvore– Peixe e barcoPeixe e barco
Ação: Ação: – Arvore balançaArvore balança– Barco a derivaBarco a deriva
Som: Som: – VentoVento
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 99
Visual StoryboardVisual Storyboard Descrição:Descrição:
– Peixe submerge e Peixe submerge e salta para frente.salta para frente.
Ações:Ações:– Peixe submerge e Peixe submerge e
então se prepara para então se prepara para saltar.saltar.
– Peixe salta pra frente.Peixe salta pra frente.– Outras ações e Outras ações e
continuaçãocontinuação SomSom
– VentoVento
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 1010
Textual StoryboardTextual Storyboard
Cena 2: O SaltoCena 2: O Salto Do these in orderDo these in order
– Move fish downMove fish down– Turn fish backTurn fish back– Do these togetherDo these together
Move fish UpMove fish UpTurn fish forwardTurn fish forward
– Faz som de mergulhoFaz som de mergulho
Um Algoritmo(pseudocódigo)
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 1111
AvaliaçãoAvaliação
As cenas se conectam bem?As cenas se conectam bem? O que podemos modificar para fazer O que podemos modificar para fazer
a transição entre cenas mais suave? a transição entre cenas mais suave? Está faltando alguma cena(baseada Está faltando alguma cena(baseada
na especificação original)?na especificação original)? Está faltando alguma descrição na Está faltando alguma descrição na
especificação original?especificação original?
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 1212
ImplementaçãoImplementação
Escolha uma linguagem de Escolha uma linguagem de programação e ambienteprogramação e ambiente– Vamos escolher Alice =)Vamos escolher Alice =)– Escolha de acordo com a disponibilidade Escolha de acordo com a disponibilidade
e capacidade de cada linguageme capacidade de cada linguagem– Nem sempre escolha o que você está Nem sempre escolha o que você está
mais confortávelmais confortável
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 1313
Início da AnimaçãoInício da Animação
Crie um novo Mundo em AliceCrie um novo Mundo em Alice– Escolha o template como ponto de Escolha o template como ponto de
partidapartida– Escolha um nome bem representativo Escolha um nome bem representativo
para o mundo e salve-o numa pastapara o mundo e salve-o numa pasta Crie a Cena InicialCrie a Cena Inicial
– Adicione os objetos de acordo com o Adicione os objetos de acordo com o storyboard. storyboard.
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 1414
ProgramandoProgramando
EditorEditor – A ferramento utilizada para – A ferramento utilizada para escrever o seu programaescrever o seu programa– Use o editor para comandar os objetos Use o editor para comandar os objetos
da sua cenada sua cena Nossa primeira instrução vai ser Nossa primeira instrução vai ser
colocada no métodocolocada no método– world.my_first_method()world.my_first_method()
Objeto ao qual o Método pertence
Nome do Método
Nome complet
o do Método
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 1515
Método InicialMétodo Inicial Quando o mundo inicia, Quando o mundo inicia,
um um metodometodo específico é específico é executadoexecutado– Isso é mostrado na parte Isso é mostrado na parte
de eventosde eventos– Nesse exemplo, Nesse exemplo,
world.my_first_method()world.my_first_method()
As intruções para o método é inserida na aba de As intruções para o método é inserida na aba de código no Editorcódigo no Editor– Alice usa drag-n-drop para reduzir os erros de sintaxeAlice usa drag-n-drop para reduzir os erros de sintaxe
Erro de sintaxe é um erro “gramatical” na estrutura de Erro de sintaxe é um erro “gramatical” na estrutura de instruções: pontuação, erro de digitação, ordem errada de instruções: pontuação, erro de digitação, ordem errada de palavras, etcpalavras, etc
O editor de Alice te ajuda a não errar na sintaxeO editor de Alice te ajuda a não errar na sintaxe
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 1616
Storyboard to CodeStoryboard to Code
Instruções em Alice normalmente Instruções em Alice normalmente afetam um objeto. afetam um objeto.
A sintaxe de uma instrução que A sintaxe de uma instrução que chama uma ação de um objeto é:chama uma ação de um objeto é:– object_name.method_name() object_name.method_name()
pode existir coisas dentro do parenteses pode existir coisas dentro do parenteses chamadas chamadas argumentosargumentos
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 1717
Estruturas de ControleEstruturas de Controle
Palavras reservadas são utilizadas Palavras reservadas são utilizadas em linguagens de programação para em linguagens de programação para determinar a ordem(fluxo) de determinar a ordem(fluxo) de instruções. instruções.
Alice fornece essas palavras na parte Alice fornece essas palavras na parte inferior da janela do editor inferior da janela do editor
Sequencia e Execução paralela
Seleção e Repetição
Instruções Especiais
Comentário e Documentação
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 1818
Criando uma Estrutura de Criando uma Estrutura de ControleControle
Arraste o comando Arraste o comando para o editorpara o editor
Solte-o no local Solte-o no local corretocorretocontorno verde indica contorno verde indica legal, não legal, não corretocorreto
A estrutura do bloco é A estrutura do bloco é criadacriada
Note as chaves que Note as chaves que encerram cada bloco encerram cada bloco
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 1919
Adicionando AçõesAdicionando Ações
Cena 2: O SaltoCena 2: O Salto Do these in orderDo these in order
– Move fish downMove fish down– Turn fish backTurn fish back– Do these togetherDo these together
Move fish forwardMove fish forward Turn fish forwardTurn fish forward
– Faz som de mergulhoFaz som de mergulho
Arraste o peixe para o
bloco
Escolha os parametros do método
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 2020
Chamada do MétodoChamada do Método
O objeto lilfish se O objeto lilfish se moverámoverá– Argumentos para Argumentos para
“move” significam:“move” significam: Direção: downDireção: down Distância: .5 mDistância: .5 m Outros??? (more…)Outros??? (more…)
Clique Play para Clique Play para ver o que acontecever o que acontece
O objeto é “lilfish”
O método é “move”
Os argumentos são: “DOWN” e
“0.5m”
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 2121
Mais AçõesMais Ações
Cena 2: O SaltoCena 2: O Salto Do these in orderDo these in order
– Move fish downMove fish down– Turn fish backTurn fish back– Do these togetherDo these together
Move fish forwardMove fish forward Turn fish forwardTurn fish forward
– Make splash soundMake splash sound
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 2222
Mais DetalhesMais Detalhes
Dow
n 0
.5m
O Quão alto o peixe vai?
Turn Back
0.25 rev
Together: Forward 1 Turn Front .25
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 2323
Analizando o Caminho do Analizando o Caminho do PeixePeixe
C = 2 * PI * r
4 = 2 * PI * r
2/PI = r
0.63 = r
O peixe sobe 0.63, então termina 0.13m
acima da água.1 metro pra
frente (forward 1m)
Ângulo de 90 graus(turn 0.25)
r
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 2424
Um Salto melhorUm Salto melhor
C = 2 * PI * r
C = 2 * PI * 1.5
C = 9.42
Metade do circulo é 4.71
Alcança 1m de altura
Ângulo de 180 graus (turn 0.5)
r = 1.5mComeçou 0.5m abaixo da superfície
Do Together: Forward 4.71 Turn forward 0.5
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 2525
Aninhando Estruturas de Aninhando Estruturas de ControleControle
Cada estrutura de Cada estrutura de controle consiste controle consiste de um de um blocobloco
Adicionando uma Adicionando uma estrutura de estrutura de controle dentro de controle dentro de outra é chamado outra é chamado aninhamento aninhamento (nesting)(nesting) Os colchetes indicam os blocos
Blocos não se sobrepõe
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 2626
DocumentaçãoDocumentação
Todos os programas merecem uma boa Todos os programas merecem uma boa documentaçãodocumentação– ComentáriosComentários são incluidos no código para são incluidos no código para
indicar o comportamento desejadoindicar o comportamento desejado– Em Alice comentários são adicionados Em Alice comentários são adicionados
arrastando o controle de comentário para o arrastando o controle de comentário para o editoreditor
Inserindo comentário
Terminado o comentário
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 2727
Método Orient ToMétodo Orient To
obj.orientTo(<asSeenBy>)obj.orientTo(<asSeenBy>) Use esse método para copiar a orientação Use esse método para copiar a orientação
de outro objeto (front, right and up)de outro objeto (front, right and up)– O centro do objeto não é alteradoO centro do objeto não é alterado
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 2828
Turn To FaceTurn To Face
obj.turnToFace(<alvo>)obj.turnToFace(<alvo>) Use esse método para que Use esse método para que
a frente dele fique a frente dele fique direcionada para o alvo (a direcionada para o alvo (a orientação horizontal não é orientação horizontal não é alterada)alterada)
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 2929
Point AtPoint At
obj.pointAt(<alvo>)obj.pointAt(<alvo>) O objeto é apontado em direção ao O objeto é apontado em direção ao
centro do alvo (a frente do objeto é centro do alvo (a frente do objeto é apontada em direção ao centro do apontada em direção ao centro do alvo e seu eixo horizontal é alterado)alvo e seu eixo horizontal é alterado)– Mover para frente depois de Mover para frente depois de
obj.pointAt(alvo) irá fazer com que o obj.pointAt(alvo) irá fazer com que o objeto passe pelo centro do alvoobjeto passe pelo centro do alvo
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 3030
Propriedade VehiclePropriedade Vehicle
Escolha a propriedade Escolha a propriedade vehiclevehicle de um objeto para de um objeto para fazê-lo se movimentar junto fazê-lo se movimentar junto com o veículocom o veículo
Mover o barco fará o macaco se mover com eleMas mover o macaco não irá mover o barco, a menos que a propriedade vehicle do barco seja definida como macado, porém isso é ilegal!
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 3131
Argumentos Adicionais de Argumentos Adicionais de MovimentoMovimento
duraçãoduração– Padrão é 1 secondPadrão é 1 second
stylestyle– Como uma sequência de movimentos Como uma sequência de movimentos
interageinterage asSeenByasSeenBy
– Controla os movimentos do objeto com Controla os movimentos do objeto com o ponto de vista de um objeto o ponto de vista de um objeto diferente(outro objeto)diferente(outro objeto)
Programming in AliceProgramming in Alice © 2006 Dr. Tim Margush© 2006 Dr. Tim Margush 3232
As Seen ByAs Seen By
obj.move(UP,1m) define pra cima em obj.move(UP,1m) define pra cima em relação a orientação do chãorelação a orientação do chão
obj.turn(LEFT,.25rev); asSeenBy(island) obj.turn(LEFT,.25rev); asSeenBy(island) roda o objeto ao redor da ilha ao invés de roda o objeto ao redor da ilha ao invés de rodar em torno de si mesmorodar em torno de si mesmo
sun.turn(RIGHT,0.25 revolutions); asSeenBy(smiley)