Programando em Alice
Tim Margush
Department of Computer Science
University of Akron
© 2006
Metodologia de Programação
 Entender
o problema e pensar em
uma solução.
 Cria um algoritmo para solucionar o
problema
– Storyboards são úteis para ajudar a
entender a animação
 Implementar
o algoritmo
 Testar e melhorar
Programming in Alice
© 2006 Dr. Tim Margush
2
Cenário (Problema)
 Descrever
a animação desejada
– Cena inicial
 Objetos,
posicionamento, etc
– Mudanças na cena
 Movimentação
de Objetos, etc
– Interações com a cena
 Comandos
Programming in Alice
do usuário, eventos na animação
© 2006 Dr. Tim Margush
3
Cenário (Exemplo)
 Um
peixe e um barco estão na agua
perto de uma pequena ilha. O peixe
da uma volta em torno da 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 Alice
© 2006 Dr. Tim Margush
4
Cenário (Exemplo) - Objetos


Uma cena no mar com
o ator principal sendo
o peixe. O peixe nada
em volta da ilha. Uma
simples animação sem
interação do usuário.
Objetos
– Peixe, barco, arvore
(animada)
– Ilha
– Mar
Programming in Alice

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.
© 2006 Dr. Tim Margush
5
Cenário (Exemplo)- Ações





Peixe circula a ilha
Peixe submerge e salta
para frente.
O barco está a deriva perto
da ilha.
Os galhos da arvore
balançam
O peixe e o barto estão na
água perto da ilha. O peixe
circula a ilha, mergula,
salta para frente. O barco
está a deriva. Uma arvore
indica que o vento sopra
forte na
Programming in Alice
© 2006 Dr. Tim Margush
6
Storyboard
 Visual
– Ilustra o posicionamento e movimento
dos objetos com uma série de cenas.
– Com a descrição de cada cena.
 Textual
– Define as cenas de animação
– Descreve o roteiro das cenas passo a
passo.
Programming in Alice
© 2006 Dr. Tim Margush
7
Visual Storyboard

Cena Inicial:
– Ilha com uma
arvore
– Peixe e barco

Ação:
– Arvore balança
– Barco a deriva

Som:
– Vento
Programming in Alice
© 2006 Dr. Tim Margush
8
Visual Storyboard

Descrição:
– Peixe submerge e salta
para frente.

Ações:
– Peixe submerge e
então se prepara para
saltar.
– Peixe salta pra frente.
– Outras ações e
continuação

Som
– Vento
Programming in Alice
© 2006 Dr. Tim Margush
9
Textual Storyboard
 Cena
2: O Salto
 Do these in order
– Move fish down
– Turn fish back
– Do these together
Um Algoritmo
(pseudocódigo)
 Move
fish Up
 Turn fish forward
– Faz som de mergulho
Programming in Alice
© 2006 Dr. Tim Margush
10
Avaliação
 As
cenas se conectam bem?
 O que podemos modificar para fazer
a transição entre cenas mais suave?
 Está faltando alguma cena(baseada
na especificação original)?
 Está faltando alguma descrição na
especificação original?
Programming in Alice
© 2006 Dr. Tim Margush
11
Implementação
 Escolha
uma linguagem de
programação e ambiente
– Vamos escolher Alice =)
– Escolha de acordo com a disponibilidade
e capacidade de cada linguagem
– Nem sempre escolha o que você está
mais confortável
Programming in Alice
© 2006 Dr. Tim Margush
12
Início da Animação
 Crie
um novo Mundo em Alice
– Escolha o template como ponto de
partida
– Escolha um nome bem representativo
para o mundo e salve-o numa pasta
 Crie
a Cena Inicial
– Adicione os objetos de acordo com o
storyboard.
Programming in Alice
© 2006 Dr. Tim Margush
13
Programando
 Editor
– A ferramento utilizada para
escrever o seu programa
– Use o editor para comandar os objetos
da sua cena
 Nossa
primeira instrução vai ser
colocada no método
Nome
– world.my_first_method()
Objeto ao qual
o Método
pertence
Programming in Alice
complet
o do
Método
Nome do
Método
© 2006 Dr. Tim Margush
14
Método Inicial

Quando o mundo inicia,
um metodo específico é
executado
– Isso é mostrado na parte
de eventos
– Nesse exemplo,
world.my_first_method()

As intruções para o método é inserida na aba de
código no Editor
– Alice usa drag-n-drop para reduzir os erros de sintaxe


Erro de sintaxe é um erro “gramatical” na estrutura de
instruções: pontuação, erro de digitação, ordem errada de
palavras, etc
O editor de Alice te ajuda a não errar na sintaxe
Programming in Alice
© 2006 Dr. Tim Margush
15
Storyboard to Code
 Instruções
em Alice normalmente
afetam um objeto.
 A sintaxe de uma instrução que
chama uma ação de um objeto é:
– object_name.method_name()
 pode
existir coisas dentro do parenteses
chamadas argumentos
Programming in Alice
© 2006 Dr. Tim Margush
16
Estruturas de Controle
 Palavras
reservadas são utilizadas
em linguagens de programação para
determinar a ordem(fluxo) de
instruções.
 Alice fornece essas palavras na parte
inferior da janela do editor
Seleção e Repetição
Sequencia e
Execução paralela
Programming in Alice
Instruções
Especiais
© 2006 Dr.
Tim Margush
Comentário e
Documentação
17
Criando uma Estrutura de
Controle




Arraste o comando
para o editor
Solte-o no local
correto
contorno verde indica
legal, não correto
A estrutura do bloco é
criada
Note as chaves que
encerram cada bloco
Programming in Alice
© 2006 Dr. Tim Margush
18
Adicionando Ações
Arraste o
peixe para o
bloco
Cena 2: O Salto
 Do these in order

– Move fish down
– Turn fish back
– Do these together
 Move
fish forward
 Turn fish forward
– Faz som de mergulho
Escolha os
parametros
do método
Programming in Alice
© 2006 Dr. Tim Margush
19
Chamada do Método

O objeto lilfish se
moverá
– Argumentos para
“move” significam:
Os argumentos
são: “DOWN” e
“0.5m”
O método é
“move”

 Direção:
down
 Distância: .5 m
 Outros??? (more…)
Clique Play para
ver o que acontece
O objeto é
“lilfish”
Programming in Alice
© 2006 Dr. Tim Margush
20
Mais Ações
Cena 2: O Salto
 Do these in order

– Move fish down
– Turn fish back
– Do these together
 Move
fish forward
 Turn fish forward
– Make splash sound
Programming in Alice
© 2006 Dr. Tim Margush
21
Mais Detalhes
O Quão alto o
peixe vai?
Down 0.5m
Turn
Back
0.25 rev
Programming in Alice
Together:
Forward 1
Turn Front .25
© 2006 Dr. Tim Margush
22
Analizando o Caminho do
Peixe
1 metro pra
frente
(forward 1m)
O peixe sobe 0.63,
então termina 0.13m
acima da água.
r
C = 2 * PI * r
4 = 2 * PI * r
2/PI = r
Ângulo de 90
graus(turn 0.25)
Programming in Alice
0.63 = r
© 2006 Dr. Tim Margush
23
Um Salto melhor
Alcança 1m
de altura
r = 1.5m
Começou 0.5m
abaixo da
superfície
Ângulo de 180
graus (turn 0.5)
C = 2 * PI * r
Do Together:
Forward 4.71
Turn forward 0.5
C = 2 * PI * 1.5
C = 9.42
Metade do circulo é 4.71
Programming in Alice
© 2006 Dr. Tim Margush
24
Aninhando Estruturas de
Controle
Cada estrutura de
controle consiste
de um bloco
 Adicionando uma
estrutura de
controle dentro de
outra é chamado
aninhamento
(nesting)

Programming in Alice
Os colchetes indicam os blocos
Blocos não se sobrepõe
© 2006 Dr. Tim Margush
25
Documentação

Todos os programas merecem uma boa
documentação
– Comentários são incluidos no código para
indicar o comportamento desejado
– Em Alice comentários são adicionados
arrastando o controle de comentário para o
editor
Inserindo
comentário
Terminado o
comentário
Programming in Alice
© 2006 Dr. Tim Margush
26
Método Orient To
obj.orientTo(<asSeenBy>)
 Use esse método para copiar a orientação
de outro objeto (front, right and up)

– O centro do objeto não é alterado
Programming in Alice
© 2006 Dr. Tim Margush
27
Turn To Face
obj.turnToFace(<alvo>)
 Use esse método para que
a frente dele fique
direcionada para o alvo (a
orientação horizontal não é
alterada)

Programming in Alice
© 2006 Dr. Tim Margush
28
Point At
 obj.pointAt(<alvo>)
O
objeto é apontado em direção ao
centro do alvo (a frente do objeto é
apontada em direção ao centro do
alvo e seu eixo horizontal é alterado)
– Mover para frente depois de
obj.pointAt(alvo) irá fazer com que o
objeto passe pelo centro do alvo
Programming in Alice
© 2006 Dr. Tim Margush
29
Propriedade Vehicle

Escolha a propriedade
vehicle de um objeto para
fazê-lo se movimentar junto
com o veículo
Mover o barco fará o macaco se mover
com ele
Mas 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 Alice
© 2006 Dr. Tim Margush
30
Argumentos Adicionais de
Movimento
 duração
– Padrão é 1 second
 style
– Como uma sequência de movimentos
interage
 asSeenBy
– Controla os movimentos do objeto com
o ponto de vista de um objeto
diferente(outro objeto)
Programming in Alice
© 2006 Dr. Tim Margush
31
As Seen By
obj.move(UP,1m) define pra cima em
relação a orientação do chão
 obj.turn(LEFT,.25rev); asSeenBy(island)
roda o objeto ao redor da ilha ao invés de
rodar em torno de si mesmo

sun.turn(RIGHT,0.25 revolutions); asSeenBy(smiley)
Programming in Alice
© 2006 Dr. Tim Margush
32
Download

Programming in Alice